从原理上理解Win11环境下WSL2如何配置pytorch环境并调用NVIDIA GPU

↵如果要在Windows上部署深度学习开发环境,一般来讲比在Ubuntu等环境上要复杂很多。但Win11大幅加强了WSL2的能力,因此基于WSL2,我们可以实现非常简洁的部署流程。大体的操作流程是:

  1. 安装WSL2,这部分网上教程很多,不赘述。

  2. 在WSL2中依次安装cuda和NVIDIA container toolkit,这部分参考NVIDIA官方教程,不要看网上的二手教程,因为很多教程是错的。

  3. 安装docker,这步也建议参考官方教程,网上很多教程也是错的。

  4. 安装好后修改 daemon.json,设置default runtime为nvidia,具体格式直接问deepseek。

  5. 建议换docker国内镜像,具体操作问deepseek,目前好用的国内镜像源是 https://docker.xuanyuan.me

  6. 测试WSL2中的 nvidia-smi 和 nvcc ,都能正常使用的话,WSL2中的配置就结束了。

  7. 接下来是关键一步:在Windows上(不是WSL2环境内)安装docker desktop,安装过程中选中"将WSL作为后端"

  8. 在WSL2中安装docker镜像,推荐下面这个镜像,亲测好用。完成这个docker的拉取和container创建后,整个配置流程就结束了。

    docker pull pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime


配置完成后,在Windows的docker desktop中应该可以看到WSL2中的镜像和容器状态


更好的开发体验:

用vscode的remote development插件实现在WSL2中开发,纵享丝滑(不得不说,巨硬在生产力这块是真的厉害)。这部分没什么难度,只要WSL2中的容器是启动的,在vscode上点两下鼠标就行了,建议问deepseek。


接下来讨论一下,为什么在WSL2中使用GPU,需要在Windows中安装docker desktop?

这就要从WSL2的软件架构说起了,与直接在硬件上安装Linux系统不同,所谓"访问GPU",依然是**通过Windows的NVIDIA驱动实现,并不是WSL2直接访问硬件。**这也就是为什么很老版本的NVIDIA驱动无法支持WSL访问GPU。

整体的架构如下图,W SL2 本质是虚拟机,不能直接访问物理硬件,通过层层转发,最终执行由Windows的NVIDIA驱动完成,间接实现了WSL2中的容器访问Windows管理的硬件。

因此,Docker Desktop 是整个链路中的核心"中介",提供了GPU访问的重要功能:

  • Hyper-V 虚拟化层的 PCIe 设备穿透

  • Windows/Linux 驱动模型的转换

  • GPU 时间片分配和隔离

总结一下,WSL2 的 Docker GPU 支持依赖于完整的传递链:

  1. 必需:Windows 主机的 Docker Desktop(WSL2 后端)
  2. 必需:≥465 版本的 NVIDIA Windows 驱动
  3. 必需:WSL2 内核中的 GPU 虚拟化支持
  4. 必需:Linux 端的 NVIDIA Container Toolkit

很可惜的是,当前网上并没有哪个教程强调了这一点,导致很多新手在配置环境时忽略了**"在Windows下安装docker desktop并以WSL作为后端"**这个关键步骤。

本质上还是在于没有从底层原理来理解WSL2。其实学任何技术都一样,如何配置,如何操作,这些其实都是细枝末节,并不本质,本质是底层的技术是如何实现的,理解了它的实现,才能理顺上层的应用,不会去踩那些莫名其妙的坑。

相关推荐
麒羽7607 小时前
PyTorch 实现 CIFAR10 数据集的 CNN 分类实践
pytorch·分类·cnn
Teacher.chenchong10 小时前
PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像问题深度学习优化技术
pytorch·深度学习·分类
yaso_zhang13 小时前
jetpack6.1 的新 pytorch 2.5.1 版本在哪里?下载中心仅提供 pytorch v2.5.0a0。
人工智能·pytorch·python
这儿有一堆花15 小时前
从图像到精准文字:基于PyTorch与CTC的端到端手写文本识别实战
人工智能·pytorch·python
缘友一世17 小时前
PyTorch深度学习实战【12】之基于RNN的自然语言处理入门
pytorch·rnn·深度学习
青春不败 177-3266-052017 小时前
基于PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像问题深度学习优化实践技术应用
人工智能·pytorch·深度学习·目标检测·生态学·遥感
诸葛箫声17 小时前
基于PyTorch的CIFAR-10图像分类项目总结
人工智能·pytorch·分类
拾贰_C20 小时前
【anaconda】anaconda安装配置,git安装配置以及pytorch安装
人工智能·pytorch·git
Francek Chen21 小时前
【深度学习计算机视觉】07:单发多框检测(SSD)
人工智能·pytorch·深度学习·计算机视觉·单发多框检测
没有梦想的咸鱼185-1037-16631 天前
【遥感技术】从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类
pytorch·python·深度学习·机器学习·数据分析·cnn·transformer