wsl2使用nvdia显卡-20251222
wsl2使用nvdia显卡-20251222
作者:风中一匹狼
链接:https://www.zhihu.com/question/350529856/answer/1983507544178710336
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
在 Windows 11 上进行 AI 开发,最痛苦的莫过于配置环境。传统的虚拟机(VMware/Hyper-V)显卡直通极其复杂且性能损耗大,而双系统又在文件交互上非常麻烦。
经过一番折腾,我总结了目前的最佳实践方案:使用 WSL2 (Windows Subsystem for Linux 2)。它不仅能让 Ubuntu 像原生软件一样运行在 Windows 上,还能直接调用宿主机的显卡进行训练,性能几乎零损耗。最终可以让我们同时享受win系统的软件生态以及linux系统的便捷开发
本文将手把手教你:
- 从零安装 WSL 版 Ubuntu。
- 将系统“搬家”到 D 盘(防止 C 盘爆炸)。
- 配置 Python 环境并验证显卡调用。
一、 为什么选择 WSL2?
- 官方支持 GPU: NVIDIA 驱动直接透传,无需在 Linux 内重新安装驱动。
- 文件互通: Windows 和 Linux 文件系统无缝集成。
- 轻量化: 相比传统虚拟机,资源占用极低,启动只需一秒。
二、此方案适用范围
操作系统要求
- Windows 11: 全版本支持(推荐,体验最好,支持 GUI 程序直通)。
- Windows 10: 版本必须高于 21H2 (内部版本 19044) 或更高。太老的 Win10 内核不支持 GPU 直通。
显卡要求:
- 必须是 NVIDIA 的独立显卡
- 最低门槛: NVIDIA Pascal 架构及以后(即 GTX 10 系列,如 GTX 1060, 1070, 1080)。
- 推荐配置: RTX 20 系列、30 系列、40 系列。
- 不推荐: GTX 9 系列及更老的卡(太老了,新版 PyTorch/CUDA 可能不再支持),以及所有的 AMD 显卡(跑 AI 配置极其麻烦且生态不好)。
三、 安装 WSL2 (Ubuntu 20.04)
在 Windows 11 下,安装过程已经被简化成了一条命令。
- 打开终端:右键点击“开始”菜单,选择 “终端 (管理员)” 或 “PowerShell (管理员)”。
- 执行安装命令:这里安装的是 Ubuntu 20.04 LTS 版本,稳定性好,兼容性强。
wsl --install -d Ubuntu-20.04
- 等待安装完成
- 初始化账号:根据提示输入你的 UNIX 用户名 和 密码(注意:输入密码时屏幕不会显示,输完回车即可)。
- 当看到绿色的
username@你的电脑名:~$提示符时,说明安装成功了! - 可以输入下面这个命令来确认一下版本和 WSL 状态:
wsl.exe -l -v
如果显示如下内容,就大功告成了:
NAME STATE VERSION
* Ubuntu-20.04 Running 2
(只要 VERSION 是 2,说明你的linux子系统可以直接调用宿主机的显卡)
- 要退出Ubuntu系统只需按
Ctrl+D或者执行下面的命令
exit
- 要重新进入Ubuntu系统可以通过在windows终端的下拉箭头菜单里直接进入

四、 将 Linux 系统迁移到 D 盘(关键步骤)
WSL 默认安装在 C 盘,随着 AI 数据集和模型的下载,C 盘很容易爆满。我们最好在刚装好时就把它迁移到空间更大的 D 盘。
1. 停止 WSL 服务
在 PowerShell 中执行:
wsl --shutdown
2. 导出系统备份
将当前的纯净系统打包成一个文件(假设暂时存在 D 盘):
wsl --export Ubuntu-20.04 D:\ubuntu-backup.tar
3. 注销原系统
这会删除 C 盘中的旧系统:
wsl --unregister Ubuntu-20.04
4. 导入到新位置
在 D 盘创建一个存放系统的文件夹(这里我们的文件夹路径为 D:\WSL\Ubuntu2004),然后执行导入:
wsl --import Ubuntu-20.04 D:\WSL\Ubuntu2004 D:\ubuntu-backup.tar
此时,你的系统实体文件 ext4.vhdx 就已经在 D 盘安家了。千万不要直接修改这个文件,这会导致ubuntu系统崩溃,访问Ubuntu系统中的文件可以在windows资源管理器地址栏中输入:
\\wsl$\Ubuntu-20.04\home\tony(将 tony 替换为你的用户名),这样就可以非常方便的直接操作Ubuntu系统中的文件了
5. 修复默认用户(重要!)
导入后的系统默认会变成 root 用户登录(也就是命令行提示符以root开头,如:root@DESKTOP-xxxxxx:), 这不太安全也不方便。我们需要改回之前的普通用户。
进入 Ubuntu 终端,输入:
nano /etc/wsl.conf
在文件中添加以下内容(将 tony 替换为你的用户名):
[user]
default=tony
[interop]
enabled=true
appendWindowsPath=true
(注:下方 [interop] 是为了防止迁移后 explorer.exe 等 Windows 命令失效)
按 Ctrl+O (英文字母O)保存,Ctrl+X 退出。然后在 PowerShell 中再次 wsl --shutdown 重启即可。
五、 配置 AI 环境与显卡测试
WSL2 最强大的地方在于:你不需要在 Linux 里安装 NVIDIA 驱动! 只要宿主机 Windows 装了驱动,Linux 就能直接用。
1. 验证显卡识别
在 Ubuntu 终端输入:
nvidia-smi
如果能看到你的显卡型号(如 GeForce RTX 4070 Super)和 CUDA 版本,说明底层已通。
Miniconda 和 PyTorch">2. 安装 Miniconda 和 PyTorch
推荐使用 Miniconda 管理环境:
# 安装 Miniconda
# 1. 创建个目录放下载文件(保持整洁)
mkdir -p ~/miniconda3
# 2. 下载最新的 Linux 版 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
# 3. 运行安装脚本 (-b 表示后台静默安装,-u 表示更新,-p 指定安装路径)
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
# 4. 删除安装脚本(安装完了就没用了)
rm -rf ~/miniconda3/miniconda.sh
# 5.安装完后,你需要告诉你的终端“conda 在哪里”:
~/miniconda3/bin/conda init bash
关闭当前的终端窗口,重新开一个。你会发现命令行最前面多了一个 (base),这就说明安装成功了!
安装 PyTorch (此处是 CUDA 12.4 版本):
# 1. 创建一个叫 ailab 的环境,指定 python 版本
conda create -n ailab python=3.10
# 2. 激活环境
conda activate ailab
# 3. 安装12.4版本的Pytorch(要求你的CUDA版本≥12.4)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
3. 跑个代码测试一下
安装完成后,输入 python 进入交互模式,然后输入以下代码验证:
import torch
print(torch.cuda.is_available()) # 应该输出 True
print(torch.cuda.get_device_name(0)) # 应该输出显卡名字
恭喜你,环境搭建完美成功!