本文中记录的操作时间:2025年7月
WSL2 CUDA 安装前准备
微软官方文档 中写道
Windows 11 及更高版本的 Windows 10 更新支持运行现有 ML 工具、库和常用框架,这些框架在适用于 Linux 的 Windows 子系统(WSL)实例内使用 NVIDIA CUDA 进行 GPU 硬件加速。
请确保你的软硬件支持和已经安装了:
- Nvidia GPU
- Windows 11 或 Windows 10 版本 21H2 及以上
- Windows 的 Nvidia GPU 驱动程序
- WSL2
Windows Nvidia GPU 驱动程序安装
首先建议保持Windows GPU 驱动在最新版本,如果你的电脑上已经有了 Nvidia APP:

在图形界面点击更新到最新驱动就可以了。
如果没有,可以在 Nvidia 官网驱动程序下载列表中查询下载 Windows 版本的GPU
WSL2 的安装
请参考微软官方提供的 WSL2 安装指导。
安装建议选择 Ubuntu 发行版。后续安装多命令都是 Debian 系列的 apt 包管理命令。
如有将 WSL 安装到非 C 盘空间的需求,可以参考知乎文章:自定义WSL的安装位置,别再装到C盘啦
注意事项
Windows 上安装了 Nvidia GPU 程序即可,请不要在 WSL Linux 中安装任何显示驱动。
Nvidia 官方提示:
This is the only driver you need to install. Do not install any Linux display driver in WSL.
原理:
当在 Windows 主机上安装了 NVIDIA Windows GPU 驱动后,该驱动会完全支持 WSL 2。在 WSL 2 内部,CUDA驱动会以libcuda.so的形式被映射(stubbed),这意味着它可以在WSL环境中使用,而无需单独在Linux中安装。
在 WSL 上安装 CUDA
确定支持的 CUDA 版本
首先在你的 Windows 命令行环境中查看当前支持的 CUDA 版本。
打开终端。
nvidia-smi

查看当前支持的最高的 CUDA 版本。以我这里为例子,是 12.9,也就是说,我可以安装版本号小于 12.9 的 CUDA Toolkit。
注意事项
如果你要在后续安装 PyTorch TensorFlow 等深度学习框架,请在后面选择这些框架推荐的版本。
例如,PyTorch 官方网站上提供的下载中,CUDA 版本有 11.8、12.6、12.8

所以我选择的是 12.8
虽然 CUDA 是部分版本向下兼容的,但是不保证一定不会遇到兼容性问题,所以最好还是选择推荐的版本。
安装 CUDA
来到 Nvidia CUDA 历史版本存档 页面。

点击选择一个合适你的版本。
这里以 12.8 为例。

依次点击 Linux -> x86-64 -> WSL-ubuntu
下面提供了三种安装途径:本地安装、网络安装、脚本安装。

可以根据自己的喜好和条件选择,这里以 deb(local) 为例,点击后下面会有一系列 shell 命令。
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
把这些命令依次粘贴运行到你的 WSL 命令行中即可。运行完成后,CUDA 已经被安装到了你的 WSL 环境中,可以删除下载的 .deb 软件包。
rm cuda-repo-wsl-*
配置 CUDA 环境变量
要想命令行能正常调用 CUDA 并验证安装,需要将 CUDA 添加到你的 WSL 命令行的 PATH 中。
我使用的是 zsh 作为 shell,所以编辑 ~/.zshrc。如果你没有更改过 WSL 的 shell 使用的是默认配置,请编辑 ~/.bashrc。在其中添加:
export CUDA_HOME=/usr/local/cuda-12.8 # 请将这里的版本换成你暗转固定版本
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/extras/CUPTI/lib64
然后刷新
source ~/.zshrc # zsh
source ~/.bashrc # bash
调用 nvmm --version 和 nvidia-smi 验证安装

可以看到 WSL 已经正确识别了 GPU 信息并且 CUDA 已经处于可用状态
可选: cuDNN安装
cuDNN 全称是 CUDA 深度神经网络库 (CUDA Deep Neural Network library)。它是 NVIDIA 专门为深度学习应用设计的 GPU 加速库。
如果你要使用 GPU 加速深度学习,cuDNN几乎必须安装

选择适用于你的 CUDA 版本的 cuDNN,这里以 最新版本 的 9.2.0 为例。

依次展开 Linux -> x86-64 -> Ubuntu -> 【你的Ubuntu发行版】
这里也选择 deb(local) 安装方式,下面依旧提供了 shell 安装命令
wget https://developer.download.nvidia.com/compute/cudnn/9.2.0/local_installers/cudnn-local-repo-ubuntu2004-9.2.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2004-9.2.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2004-9.2.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn
依次粘贴这些命令到你的 WSL 命令行中运行即可。完成后也可以删除 .deb 软件包。
rm cudnn-*.deb
到这里 WSL 上的 CUDA 支持工作已经完成了。
WSL 使用 CUDA 的优势
第一方支持
过去,在 Windows 主力系统上进行 Linux 深度学习开发通常需要安装双系统或使用虚拟机,而现在,微软和 NVIDIA 官方携手,为 WSL 2 提供了原生且深度的 GPU 支持。
经过长时间开发,现在官方的支持使得安装过程大大简化。只需要在 Windows 上安装最新的 NVIDIA GPU 驱动,并在 WSL 2 中安装 CUDA 工具包(无需在 WSL 2 内部安装 Linux GPU 驱动),即可让 WSL 2 中的 Linux 环境直接访问 Windows 主机的 GPU。这避免了复杂的驱动兼容性问题和手动配置。
Hyper-V 虚拟化性能优势
WSL2 通过 DDA (Discrete Device Assignment) 和 GPU Paravirtualization 等技术,实现了极低开销的 GPU 访问。这意味着 WSL2 中的 Linux 应用可以几乎达到原生 Linux 系统的 GPU 性能,充分利用 NVIDIA GPU 的计算能力进行 CUDA 加速。
开发部署环境统一
作为 WSL2 最大的卖点之一,WSL 极大地弥合了 Windows 桌面环境与 Linux 服务器环境之间的鸿沟。它无缝衔接 Linux 生态、带来本地化开发体验。
WSL的劣势
-
WSL2 的网络是 NAT(网络地址转换)模式,尽管如今微软官方为其带来了正式的网络 Mirror 镜像功能,但是在具体的环境部署和开发过程中还是有很多要自己摸索踩的坑。
-
WSL2 在中文社区的开发经历还是有限,能查到资料也很有限,需要使用者的资料查找能力和自己解决问题的能力。
269





