如何实现在WSL2中搭建Python深度学习环境_配置CUDA与驱动透传

夜宇小哥_4171

夜宇小哥_4171

2026-04-20

355人浏览

原创

必须执行wsl --shutdown才能使cuda透传生效;其依赖windows驱动+wsl2内核+用户空间库三者协同,版本错配会导致torch.cuda.is_available()返回false、nvidia-smi找不到设备或驱动版本不足等错误。

如何实现在wsl2中搭建python深度学习环境_配置cuda与驱动透传

wsl --shutdown 是每次改完配置后必须执行的操作,否则 CUDA 透传不会生效。 WSL2 的 GPU 支持不是“装了就能用”,而是依赖 Windows 主机驱动 + WSL2 内核 + 用户空间库三者协同。很多报错如 torch.cuda.is_available() 返回 False、nvidia-smi 在 WSL2 中找不到设备、或 PyTorch 报 CUDA driver version is insufficient,根源几乎都出在这三层的版本错配或漏配。

确认 Windows 主机已安装兼容的 NVIDIA 驱动

WSL2 不自己装驱动,它复用 Windows 上的 NVIDIA GPU Driver(不是 CUDA Toolkit)。必须使用支持 WSL2 GPU 加速的驱动版本:

  • Windows 11:需 515.65.01 或更高(截至 2026 年 4 月,推荐 535.98 或 550.54)
  • Windows 10:需 470.94 或更高,但仅限 Build 19041+;建议直接升到 Win11
  • 驱动必须从 NVIDIA 官网 下载“Game Ready”或“Studio Driver”,不能用 OEM 厂商定制版(如 Dell、Lenovo 预装驱动常禁用 WSL 支持)

验证方式:在 Windows PowerShell 中运行 nvidia-smi,看到 GPU 列表和驱动版本即表示主机层就绪。

检查 WSL2 是否启用 GPU 支持并识别设备

进入 WSL2 终端(如 Ubuntu 24.04),先确认内核已加载 NVIDIA 模块:

ls /dev | grep nvidia

应看到 nvidia0、nvidiactl、nvidia-uvm 等设备节点。若无输出,说明驱动未透传 —— 此时不要急着装 CUDA,先回 Windows 执行 wsl --shutdown,再重启 WSL2。

接着运行:

nvidia-smi -L

如果报 command not found,说明 WSL2 内没装 nvidia-cuda-toolkit(注意:这是 Linux 侧的用户态工具包,和 Windows 上的 CUDA Toolkit 无关);如果报 No devices were found,说明驱动透传失败或版本不匹配。

Forge — Python Developer
Forge — Python Developer

Python开发助手 — 自动化脚本、API封装、命令行工具、数据管道、网页爬虫。经过测试的代码,包含错误处理和文档。当你需要...

下载

在 WSL2 中安装 CUDA Toolkit(Linux 版)与 PyTorch GPU 版

Ubuntu 24.04 官方源里的 nvidia-cuda-toolkit 版本较旧(如 12.2),而 PyTorch 2.4+ 推荐 CUDA 12.4。更稳妥的方式是用 NVIDIA 官方 APT 源:

  • 导入密钥和源:curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/jammy/nvidia-machine-learning.key | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-ml-archive-keyring.gpg
  • 添加源:echo "deb [arch=amd64 signed-by=/usr/share/keyrings/nvidia-ml-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/jammy/ /" | sudo tee /etc/apt/sources.list.d/nvidia-ml.list
  • 安装:sudo apt update && sudo apt install -y cuda-toolkit-12-4

然后安装 PyTorch(务必选 cu124 构建):

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

验证:python3 -c "import torch; print(torch.cuda.is_available(), torch.version.cuda)" 应输出 True 12.4。

LD_LIBRARY_PATH 和 /usr/lib/wsl/lib 是绕不开的坑

WSL2 的 CUDA 库路径和原生 Linux 不同。NVIDIA 将 Windows 驱动暴露的底层接口映射到 /usr/lib/wsl/lib,但 PyTorch 默认不查这个路径。必须显式添加:

  • 编辑 ~/.bashrc 或 ~/.zshrc,追加:export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
  • 执行 source ~/.bashrc,再测试 python3 -c "import torch; print(torch.cuda.device_count())"

漏掉这行,torch.cuda.is_available() 会稳定返回 False,且无明确错误提示 —— 这是最隐蔽也最常被忽略的一环。

CUDA 透传本身不涉及 WSL2 内部编译,但所有路径、环境变量、驱动版本都必须对齐。一旦某个环节版本跳档(比如 Windows 驱动太旧、WSL2 内 CUDA Toolkit 太新、或 LD_LIBRARY_PATH 没设),PyTorch 就会静默降级到 CPU 模式,很难定位。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关文章

驱动精灵
驱动精灵

驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前有效的驱动软件,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

python

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

2023.07.20

1731

4

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

2023.07.25

4424

7

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.31

1709

3

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

2023.08.03

25977

23

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3147

5

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3167

5

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1183

5

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.10

596

4

python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2463

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习