Win11在WSL中怎么调用主机NVIDIA显卡跑CUDA深度学习

雨丽小哥_1288

雨丽小哥_1288

2026-10-20

136人浏览

原创

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

win11在wsl中怎么调用主机nvidia显卡跑cuda深度学习

在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 Kimi Vision
NVIDIA Kimi Vision

通过 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。

相关专题

更多
OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

60

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

40

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

40

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

20

15

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

2026.10.16

20

15

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

2026.10.16

20

15

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

2026.10.15

40

20

MySQL 忘记密码怎么办
MySQL 忘记密码怎么办

MySQL忘记密码专题汇集不同版本与系统下的root密码重置方法,覆盖MySQL 5.7、8.0、Mac、Linux及本地集成环境,并提示恢复权限与重新登录的检查步骤。

2026.10.15

40

18

Vue.js 中 ref 和 reactive 的区别
Vue.js 中 ref 和 reactive 的区别

Vue.js中ref和reactive的区别专题汇集两种响应式API的定义、访问方式、对象解构、侦听与性能取舍等文章,帮助结合实际状态类型选择合适写法。

2026.10.15

20

20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.8万人学习