OpenMMLab 贡献者成长体系教程
  • OpenMMLab 贡献者成长地图
  • 活动
    • 超级视客营
    • MMSIG任务领取指南
  • 通用贡献者教程(建设中)
    • 开源协议学习(建设中)
    • 环境配置(建设中)
      • Windows 环境配置
      • Github Codespaces 云 Linux 环境
      • Windows WSL 环境配置
      • Ubuntu 20.04 环境配置(建设中 2)
      • ubuntu docker 环境配置
    • 熟悉 GitHub/Git(建设中)
    • 代码规范
    • 文档类贡献指南(建设中)
      • MMSIG 文档贡献指南 (建设中)
      • 算法库文档贡献指南 (建设中)
    • Type Hints 贡献指南(建设中)
    • 单元测试贡献指南(建设中)
    • 源码阅读及调试技巧(建设中)
  • 算法库贡献者教程(建设中)
    • Playground(建设中)
    • MMEngine(建设中)
      • 新 Config 适配贡献指南
    • MMCV(建设中)
      • Transform 数据增强贡献指南
      • 算子贡献指南(建设中)
    • MMPreTrain(建设中)
      • 骨干网络贡献指南(建设中)
      • 自监督算法贡献指南(建设中)
    • MMDetection(建设中)
    • MMYOLO(建设中)
    • MMDetection3D(建设中)
    • MMOCR (建设中)
    • MMSegmentation(建设中)
      • 贡献一个标准格式的数据集
      • 贡献一个数据集加载方式(建设中)
    • MMPose (建设中)
    • MMEditing(建设中)
    • MMDeploy (建设中)
由 GitBook 提供支持
在本页
  • 1. Win10 升级最新版本和 Win10 安装英伟达对 Linux 子系统的显卡驱动
  • 更新 Win10 系统
  • Win10 系统下安装英伟达对 Linux 子系统的显卡驱动
  • 2. WSL2 和 Ubuntu-22.04 Linux 子系统的下载安装
  • 下载并安装 WSL2 的 Linux 内核包
  • Win10 下安装 Linux 子系统
  • WSL2 的位置迁移
  • 进行 WSL2 的 root 和普通用户的切换:
  • 3. VScode 远程连接 Ubuntu-22.04 Linux 子系统 :
  • 4. WSL2 的 Miniconda 配置
  • 5. 下载 torch==1.9.1+cu111 和 torchvision==0.10.1+cu111
  • 6. WSL2 的 cuda toolkit 配置(说明:如果需要使用到 nvcc,即要使用到源码编译,执行 WSL2 的 cuda toolkit 配置,如果只需要进行预编译,请忽略该步骤)
  • 7. 有关一些问题的解决思路
  • 7.1 解决:nvcc: command not found (首先看自己有没有输入错误,比如将 nvcc 打错成 ncvv 等)
  • 7.2 解决:查看显卡使用情况 nvidia-smi 报错:command not found(首先看自己有没有输入错误,比如将 nvidia-smi 打错成 nvidia-sim 等)
  • 7.3 解决:下载完 anaconda 之后仍然报错:conda: command not found
  • 7.4 解决:su: Authentication failure
  • 7.5 解决:系统找不到指定的文件。

这有帮助吗?

在GitHub上编辑
  1. 通用贡献者教程(建设中)
  2. 环境配置(建设中)

Windows WSL 环境配置

上一页Github Codespaces 云 Linux 环境下一页Ubuntu 20.04 环境配置(建设中 2)

最后更新于1年前

这有帮助吗?

本教程由社区同学 @geoffreyfan 贡献~

1. Win10 升级最新版本和 Win10 安装英伟达对 Linux 子系统的显卡驱动

1、Win10 系统一定要升级到最新版,否则是无法在 Linux 子系统里加载出显卡驱动的,那么就无法进行深度学习!

2、Linux 子系统不需要配置显卡。因为它是调用 Win10 系统下的显卡驱动进行深度学习的,这就意味着不需要在 Linux 子系统下载安装显卡驱动!

大家可能会有这样的疑问:不是安装 WSL2 的显卡驱动吗?为什么会装 Win10 系统上的显卡驱动?其实,官网文档上说明了,带有 WSL2 的官方 NVIDIA 驱动是整个过程唯一要装的 GPU 驱动!所以后面关于 Linux 上的 cuda toolkit 的配置就要求不勾选 Driver!

更新 Win10 系统

微软 Microsoft 官网下载:https://www.microsoft.com/zh-cn/software-download/windows10。

点击立即更新,会下载一个微软软件,按照提示更新即可,装完需要重启,网速快的话整个过程大约一个小时。(请确保您的网络能够正常访问)。

另一种方式更新 Win10 系统:

PS:查询系统版本方法:Win+R 输入 winver 回车:

Win10 系统下安装英伟达对 Linux 子系统的显卡驱动

下载驱动(下载GEFORCE的那个):http://www.nvidia.com/Download/index.aspx

注意,该是安装 Win10 驱动,而不是安装 Linux 驱动,在 Win10 下安装驱动后,会自动将驱动以 libcuda.so 的形式集成至 WSL2 中,因此切勿在 WSL Linux 中重复安装驱动。

根据自己显卡的型号选择驱动,Notebooks 代表笔记本,我是台式电脑 3080 显卡,所以选择 GeForce RX 30 Series 下的 GeForce RX 3080。

在 Ubuntu-22.04.exe 程序中输入以下指令,验证驱动是否安装成功:

nvidia-smi -pm 1
lspci | grep NVIDIA
nvidia-smi

2. WSL2 和 Ubuntu-22.04 Linux 子系统的下载安装

下载并安装 WSL2 的 Linux 内核包

下载链接:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

下载完点击安装即可,安装中不停地点击next就可以。

打开 powershell:

启动 WSL2 ,在 powershell 中输入下面指令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

启用“虚拟机平台”,在 powershell 中输入下面指令:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

将 WSL2 设置为默认版本,在 powershell 中输入下面指令:

wsl --set-default-version 2

Win10 下安装 Linux 子系统

网站地址:https://www.microsoft.com/zh-cn/

搜索 ubuntu,选择 22.04 版本安装:

进入控制面板的 “程序和功能” 里边的设置,勾选 “ Hyper-V ” 和 “适用于 Linux 的 Windows 子系统” :

下载完打开 Ubuntu-22.04 Linux 子系统:

WSL2 的位置迁移

在 PowerShell 中运行下面命令显示所有发行版的详细信息:

wsl --list --verbose

终止正在运行的 wsl:

wsl --shutdown

将需要迁移的 Ubuntu-22.04 Linux 子系统,进行导出:

wsl --export Ubuntu-22.04 E:/export.tar

导出完成之后,就需要将原有的进行卸载:

wsl --unregister Ubuntu-22.04

注销完后:

然后将导出的文件放到需要保存的地方,进行导入即可:

wsl --import Ubuntu-22.04 E:\export\ E:\export.tar --version 2

如果后面想要重装 Ubuntu-22.04 Linux 子系统,删除之前的版本,在执行了 wsl --shutdown 指令后,直接删除 ext4.vhdx 文件即可。

进行 WSL2 的 root 和普通用户的切换:

在 cmd 里面输入下面指令,切换到根目录:

ubuntu2204 config --default-user root

打开 Ubuntu-22.04.exe 程序,此时就进入根目录了,输入 passwd 用户名,并设置密码:

在 cmd 里面输入下面指令,切换到普通用户:

ubuntu2204 config --default-user geoffreyfan(这里填写你自己的用户名字) 

打开 Ubuntu-22.04.exe 程序,此时就进入普通用户界面了:

3. VScode 远程连接 Ubuntu-22.04 Linux 子系统 :

下载 WSL 远程连接 Ubuntu-22.04 Linux 子系统的插件:

快捷指令远程连接,用 VScode 打开 Ubuntu-22.04 Linux 子系统:

code .

手动远程连接,用 VScode 打开 Ubuntu-22.04 Linux 子系统:

关闭远程连接, Powershell 输入下面指令(重装系统卸载 Ubuntu-22.04 Linux 子系统也需要先输入下面指令):

wsl --shutdown

点击打开 Ubuntu-22.04.exe 程序:

重新进行远程连接:

打开 Ubuntu-22.04 Linux 子系统里面的文件:open Folder , 点击 OK :

Ubuntu-22.04 Linux 子系统里面的 /home/geoffreyfan (这里是你自己的用户名字) / 路径下的文档就被打开了:

可以通过拖拉 Win10 里面的文件,方便地上传文件到 Ubuntu-22.04 Linux 子系统的这个路径下面:

4. WSL2 的 Miniconda 配置

安装 Miconda 地址: https://docs.conda.io/en/latest/miniconda.html

浏览器下载下完后,拖入到 Ubuntu-22.04 Linux 子系统里面:

输入指令:bash Miniconda3-latest-Linux-x86_64.sh 安装:

安装过程中,刚开始要按回车键很多次(大概一直按住5秒这样),之后两三个地方会让你输入 yes/no ,全输入 yes 。有提示输入回车的,就按回车。

安装完成之后,在 .bashrc 文件中最后一行加上:PATH=/home/user/miniconda3/bin:$PATH ,并保存:

创建一个 project.py 文件,配置 miniconda 路径下的 python 解释器,并在终端执行该 python 文件,如果前面有 (base) 这个标志,那么说明 miniconda 配置成功:

用 miniconda 创建虚拟环境, 并激活该虚拟环境(根据自己的需求来,这里我们选择配置 3.9 版本的 python 环境):

conda create -n pytorch python=3.9 -y
conda activate pytorch

配置好虚拟环境后,我们配置 miniconda 下我们创建的虚拟环境下的解释器:

配置好后,我们在终端运行我们创建的python文件,会发现 (base) 标志变成了我们的虚拟环境的名称 (pytorch) :

5. 下载 torch==1.9.1+cu111 和 torchvision==0.10.1+cu111

如果用以下指令下载很慢:

pip install torch==1.9.1+cu110 torchvision==0.10.1+cu110 -f https://download.pytorch.org/whl/torch_stable.html

直接手动去官网下载.whl文件,然后拖到 Ubuntu-22.04 Linux 子系统里面,官网地址:https://download.pytorch.org/whl/torch_stable.html

蓝色小横线消失了,就上传完了:

上传完之后,Ubuntu-22.04 Linux 子系统的 /home/geoffreyfan (这里是你自己的用户名字) / 路径下的文件中会有两个相应的安装包:

创建一个 project.py 文件,输入下面的代码,并配置之前我们创建的 miniconda 的虚拟环境的 python 的解释器:

import torch
import torchvision
device = torch.device('cuda')
print(torch.cuda.is_available())
print(torch.__version__)
print(torchvision.__version__)

在终端执行以下指令:

pip install torch-1.9.1+cu111-cp39-cp39-linux_x86_64.whl
pip install torchvision-0.10.1+cu111-cp39-cp39-linux_x86_64.whl

然后运行我们刚才创建的 project.py 文件:

6. WSL2 的 cuda toolkit 配置(说明:如果需要使用到 nvcc,即要使用到源码编译,执行 WSL2 的 cuda toolkit 配置,如果只需要进行预编译,请忽略该步骤)

注意:不要使用 sudo apt install nvidia-cuda-toolkit 进行配置,会默认配置一个低版本的 cuda toolkit 。

没有配置 cuda toolkit 之前:

去英伟达的官网:https://developer.nvidia.com/cuda-downloads

下载往期版本:

下载 cu111 版本(注意, Win10 系统上的显卡驱动的版本可以不用与这里的 cuda 版本一致,比如我下载的 Win10 系统上的显卡驱动版本为 12.1 ,显卡驱动是向下兼容的):

进行选择,下方会出现相应的指令(可以勾选 “runfile(local)” ,操作步骤同理):

打开 Ubuntu-22.04.exe :输入下面指令:

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-1-local/7fa2af80.pub (这条指令可能会随着时间被官网更新,请每次都到官网获取新的指令)
sudo apt-get update
sudo apt-get -y install cuda

小知识:在执行了 wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb 指令后,Ubuntu-22.04 Linux 子系统的 /home/geoffreyfan (这里是你自己的用户名字) / 路径下会出现相应的安装包,后面重新安装,直接执行 sudo dpkg -i cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb 就可以了,不用再反复下载安装包:

注意:在 sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-1-local/7fa2af80.pub 指令之后,安装的过程中不要勾选 Driver 否则会下载失败:

在 .bashrc 文件中添加下面两条代码指令,并保存:

export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin

安装完了后,输入下面指令进行验证:

nvcc -V

7. 有关一些问题的解决思路

7.1 解决:nvcc: command not found (首先看自己有没有输入错误,比如将 nvcc 打错成 ncvv 等)

nvcc 是 The main wrapper for the NVIDIA CUDA Compiler suite. Used to compile and link both host and gpu code. ( NVIDIA CUDA 编译器套件的主要包装器,用于编译和链接主机和 gpu 代码)。一般使用 nvcc -V 查看CUDA版本。

输入下面指令,查看 cuda toolkit 的 bin 目录下是否有 nvcc:

cd /usr/local/cuda/bin

如果存在(如果不存在,请参考WSL2的cuda配置,进行重新配置):

直接将 cuda toolkit 的路径加入系统路径(即将下面指令加入 .bashrc 文件)即可:

export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin

保存:

退出 Ubuntu-22.04.exe 程序,然后再开启,再次执行 nvcc -V 就可以看到相应 cuda 版本了:

解释说明:

Ubuntu-22.04 Linux 里面的 Cuda toolkit api 使用 nvcc -V 显示

Win10 系统里面的 Driver api, 使用 nvidia-smi 显示

如果报错的命令是 RuntimeError ,那就使用 nvcc -V 命令查看是否是版本不匹配。

7.2 解决:查看显卡使用情况 nvidia-smi 报错:command not found(首先看自己有没有输入错误,比如将 nvidia-smi 打错成 nvidia-sim 等)

gpu 重启以后,是默认关闭的,在 Ubuntu-22.04.exe 下执行:

nvidia-smi -pm 1
lspci | grep NVIDIA
nvidia-smi

7.3 解决:下载完 anaconda 之后仍然报错:conda: command not found

将以下添加到 Ubuntu-22.04 Linux 子系统的 /home/geoffreyfan (这里是你自己的用户名字) / 路径下的 .bashrc 文件里面:

PATH=/home/user/anaconda3/bin:$PATH

在终端运行 project.py 文件,前面有 (base) 这个标示符就表示成功了:

7.4 解决:su: Authentication failure

su 命令不能切换 root ,提示 su: Authentication failure,只要你 sudo passwd root 过一次之后,下次再 su 的时候只要输入密码就可以成功登录了。

7.5 解决:系统找不到指定的文件。

系统卸载没有卸载干净,导致重新安装后出现该问题。

第一步,查询当前已安装的系统:

wsl.exe --list --all

第二步,注销当前注册的系统:

wsl.exe --unregister Ubuntu-22.04 (第一步查询出来需要注销的系统名称)

第三步,重新启动 unbuntu 系统,系统会重新初始化,效果如下: