在 WSL 里启用 GPU 加速

适用于Windows10, Ubuntu, NVIDIA GeForce MX450

STEP 1: WSL1 升级 WLS2

CUDA 仅支持 WSL2:(
步骤:https://zhuanlan.zhihu.com/p/356397851

Q1sudo apt get wsl - E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/libx/libxml2/libxml2-utils_2.9.10+dfsg-5ubuntu0.20.04.5_amd64.deb 404 Not Found [IP: 91.189.91.38 80]
A1: sudo apt-get update, 注意要加sudo,否则 - E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)

Q2:备份时发现,GitHUb限制文件大小不得超过100MB,且无法 commit repo中repo
A2:放弃它们:)

Q3:安装Hyper-V,重启后界面提示“无法完成功能配置,正在撤销更改”
A3https://blog.csdn.net/qq_43090889/article/details/96007729 按此篇博客操作,然而勾选 Hyper-V 平台后重启仍显示上述错误,于是放弃勾选 Hyper-V 平台,只勾选 Hyper-V 管理工具,也顺利完成了后续步骤

检验方法:在 Ubuntu on Windows 中运行uname -r,显示5.10.16.3-microsoft-standard-WSL2

这步搞了一个下午,看到 WSL2 这几个字的时候别提多高兴了TT

STEP 2: 安装 NVIDIA Driver (on Windows) 和 CUDA Toolkit (on WSL)

这篇官方文档说得很详细,但注意不要安装其中的 CUDA Toolkit 版本(一下简称 CUDA),详见下文 Q2:https://docs.nvidia.com/cuda/wsl-user-guide/index.html

Q1:好奇运行了step2里的wsl.exe --update,发生了“灾难性故障”,WSL直接无法使用
A1:还好重启之后就好了,应该是完成本文 STEP1 就不需要这一步了

Q2:在最后安装 PyTorch 时,非常痛苦地发现 PyTorch 最高仅支持 CUDA11.7
A2:重装一切,首先要清除一切 - 删除包 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#removing-cuda-toolkit-and-driver ,删除 repo 和 key https://unix.stackexchange.com/questions/219341/how-to-apt-delete-repository ,删除一些文件(安装包、/etc/apt/preferences.d/ 和 /usr/share/keyrings/ 里有关 CUDA 的文件)

Q3:续 Q2,重装时出现了The public CUDA GPG key does not appear to be installed的新问题,表现为根据官方给出的命令运行sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/后,再次运行sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb仍提示没有 key
A3:未直接解决,详见 A4

Q4:续 Q2,重装时出现了libcuda.so.1 is not a symbolic link的提示,不确定是否为新出现的错误,不确定是否影响后续进程
A4:尝试了 https://github.com/microsoft/WSL/issues/5548 里高赞的解决方法,未果;最终参考了 https://www.biaodianfu.com/windows-wls2-ubuntu-cuda-cudnn-tensorflow-pytorch.html 里采用的另一种安装方式,由 deb(local) 换成 deb(network),Q3 和 Q4 都未出现,也顺利完成了后续步骤

检验方法

检查NVIDIA Driver:在 Ubuntu on Windows 中运行nvidia-smi,会显示令人非常舒适的表格;特别注意该表格右上角显示的 CUDA Version 并非安装的版本,而是 NVIDIA Driver 可最高适配的版本

检查CUDA Toolkit:在 Ubuntu on Windows 中运行nvcc --version

Q5:安装好 CUDA 后,仍显示nvcc command not found,建议通过一行命令安装 CUDA Toolkit
A5:不要听从建议,有可能覆写 Windows NVIDIA Driver(详见本步骤开头的官方文档),解决方法 https://askubuntu.com/questions/885610/nvcc-version-command-says-nvcc-is-not-installed

STEP 3:安装cuDNN

下载地址:https://developer.nvidia.com/rdp/cudnn-archive
官方文档:https://developer.nvidia.com/rdp/cudnn-archive 参考1.3.2

Q1:最后三个指令会出现E: Version '8.8.1.3-1+cuda12.2' for 'libcudnn8' was not found,此
A1https://forums.developer.nvidia.com/t/e-version-8-3-1-22-1-cuda10-2-for-libcudnn8-was-not-found/200801/18 将等号及后面的版本号删除,执行后发现安装的版本为 8.8.1.3+cuda12.0,后续可顺利运行

(cuDNN 在用 STEP2 A2 里的步骤清除后重装非常顺利)

STEP 4:安装 PyTorch

下载地址:https://pytorch.org/get-started/locally/

Q1:在 conda environment 里运行torch.cuda.is_available()返回False
A1:不要用 conda 安装,用 pip3


折腾了整整一天,发现装错版本且尝试数小时未成功 downgrade 后一度崩溃,解决方法是吃点东西

最后附上胜利王冠:

image

posted @   Maaaaax  阅读(999)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示