2025年了,怎么在WSL2中安装使用CUDA

部署运行你感兴趣的模型镜像

本文中记录的操作时间: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:

Nvida APP 中更新GPU驱动

在图形界面点击更新到最新驱动就可以了。

如果没有,可以在 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

nvidia-smi WIndows验证

查看当前支持的最高的 CUDA 版本。以我这里为例子,是 12.9,也就是说,我可以安装版本号小于 12.9 的 CUDA Toolkit。

注意事项

如果你要在后续安装 PyTorch TensorFlow 等深度学习框架,请在后面选择这些框架推荐的版本。

例如,PyTorch 官方网站上提供的下载中,CUDA 版本有 11.8、12.6、12.8

PyTorch建议的CUDA版本

所以我选择的是 12.8

虽然 CUDA 是部分版本向下兼容的,但是不保证一定不会遇到兼容性问题,所以最好还是选择推荐的版本。

安装 CUDA

来到 Nvidia CUDA 历史版本存档 页面。

CUDA Archive

点击选择一个合适你的版本。

这里以 12.8 为例。

CUDA Release Installation

依次点击 Linux -> x86-64 -> WSL-ubuntu

下面提供了三种安装途径:本地安装、网络安装、脚本安装。

CUDA Install Type

可以根据自己的喜好和条件选择,这里以 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 --versionnvidia-smi 验证安装
Verificate Installation of CUDA in WSL
可以看到 WSL 已经正确识别了 GPU 信息并且 CUDA 已经处于可用状态

可选: cuDNN安装

cuDNN 全称是 CUDA 深度神经网络库 (CUDA Deep Neural Network library)。它是 NVIDIA 专门为深度学习应用设计的 GPU 加速库。

如果你要使用 GPU 加速深度学习,cuDNN几乎必须安装

来到 Nvidia cuDNN 历史版本库

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

cuDNN install
依次展开 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 在中文社区的开发经历还是有限,能查到资料也很有限,需要使用者的资料查找能力和自己解决问题的能力。

您可能感兴趣的与本文相关的镜像

PyTorch 2.7

PyTorch 2.7

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值