需确保windows驱动、wsl2内核、cuda toolkit三者严格匹配:先用nvidia-smi查宿主驱动支持的最高cuda版本,再据此安装对应cuda toolkit和pytorch,驱动必须为wsl专用版且重启生效。

在Win11的WSL2环境中直接调用主机NVIDIA显卡运行CUDA深度学习任务,避免双系统重启和虚拟机性能损耗,需确保Windows端驱动、WSL2内核、CUDA Toolkit三者严格匹配且路径配置无误。
确认硬件与系统前提
打开PowerShell(管理员),执行 wsl --list --verbose,确认当前发行版为 WSL2(不是WSL1);若显示VERSION为1,必须先执行 wsl --set-version <distro-name> 2</distro-name> 升级。
运行 nvidia-smi 查看Windows端驱动版本——这是决定WSL内可装CUDA最高版本的唯一依据。例如显示 CUDA Version: 12.4,则WSL中只能安装 ≤12.4 的CUDA Toolkit,【强行安装更高版本将导致nvcc编译通过但torch.cuda.is_available()返回False】。
访问 NVIDIA WSL官方要求页,核对你的Windows版本是否 ≥22H2(21H2已停止CUDA 12.x支持),并确认BIOS中已开启Intel VT-x或AMD-V虚拟化。
安装WSL专用NVIDIA驱动
这一步不能跳过,也不能用普通Game Ready驱动替代:访问 NVIDIA CUDA on WSL下载页,下载标有 “Windows Subsystem for Linux” 字样的最新驱动(非GeForce Experience自动推送版)。
双击安装,全程默认选项,安装完成后必须重启Windows——不重启会导致WSL内 nvidia-smi 命令无法识别GPU。
重启后,在WSL终端中直接运行 nvidia-smi。如果看到GPU型号、温度、进程列表,说明直通成功;若报错 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver,大概率是驱动未重启或Hyper-V服务异常,需回退检查第一步。
在WSL中安装匹配的CUDA Toolkit
进入Ubuntu等发行版终端,按顺序执行:
第一步:添加NVIDIA包仓库密钥与源
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/jammy/3bf863cc.pub
echo "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/jammy/ /" | sudo tee /etc/apt/sources.list.d/cuda.list
第二步:更新索引并安装CUDA Toolkit(以CUDA 12.2为例,版本号必须≤第一步查得的nvidia-smi显示值)
sudo apt update && sudo apt install -y cuda-toolkit-12-2
通过 NVIDIA NIM API 调用 Kimi K2.5 视觉模型分析图像,非常适合为 MiniMax M2.5、GLM-5 等非视觉模型赋予视觉能力。
第三步:写入环境变量(仅对当前用户生效,避免影响系统级命令)
echo 'export PATH=/usr/local/cuda-12.2/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
验证:运行 nvcc -V 应输出对应版本;运行 cat /usr/local/cuda/version.txt 应与之完全一致。若 nvcc 找不到命令,检查 /usr/local/ 下是否存在 cuda-12.2 目录——不存在说明安装失败,常见原因是网络中断导致apt下载不全,需清理缓存重试:sudo apt clean && sudo apt update。
安装cuDNN与PyTorch GPU版
方法一:使用conda(推荐,自动解决依赖)
先安装Miniconda:wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh -b
创建独立环境:conda create -n torch-gpu python=3.9
激活后安装:conda activate torch-gpu && conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia(此处12.1需与你安装的CUDA Toolkit主版本一致)
方法二:使用pip(需手动匹配cuDNN)
去 cuDNN归档页 下载对应CUDA版本的 Local Installer for Ubuntu (Debian) 包(如 cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb),上传到WSL后执行:sudo dpkg -i cudnn-local-*.deb && sudo apt update && sudo apt install -y libcudnn8
最后安装PyTorch:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121(cu121表示CUDA 12.1,务必与前面一致)
验证最终效果:python3 -c "import torch; print(torch.cuda.is_available(), torch.cuda.device_count(), torch.__version__)"。输出应为 True 1 x.x.x+cu121。










