前后搞了几天吧,一直无法在 WSL 中成功调用 gpu,官方的 tutorial 都翻烂了。最后的最后在近邻发狂的边缘,看到某位网友说 WIN10 上用 WSL 调用 GPU,系统必须是 21H2 版本。WIN+R 输入 winver 查了一下我的是 20H2,问题发现了。现在回过头想想官方 tutorial 真的屎啊,喊你加入预览者计划,但是不告诉你要手动更新系统版本,我特么就傻傻的研究了好几天。
这里记录一下大概的配置流程
-
去这里 [https://insider.windows.com/en-us/getting-started#register] 注册参加预览者计划;
-
在设置→更新和安全→Windows 更新中,找到并更新系统到 21H2。
-
在 win 系统里下载安装包含 wsl 的 cuda 驱动 [https://developer.nvidia.com/cuda/wsl/download]
-
安装更新 wsl,并升级到版本 2 [https://docs.microsoft.com/en-us/windows/wsl/install-manual]
-
去 Microsoft Store 搜索 Ubuntu,安装好后打开启动一个容器,设置好用户名和密码。
-
在 WIndows PowerShell 里运行,确认 Ubuntu 容器版本为 2。
wsl -l -v
-
在容器内安装 CUDA,注意容器内不需要安装驱动 [https://docs.nvidia.com/cuda/wsl-user-guide/index.html#installing-nvidia-drivers]。从 4.2.6 Building Your Own GPU-accelerated Application on WSL 2 开始就好。
-
添加环境变量
vim ~/.bashrc export CUDA_HOME=/usr/local/cuda export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 export PATH=${CUDA_HOME}/bin:${PATH} source ~/.bashrc
-
这时应该就可以正常使用下面两句命令了。
nvcc --version nvidia-smi
如果上面第二步没有更新系统,nvidia-smi 会提示因为系统限制,无法调用 GPU 设备。