完成一和二,可用VS Code连接WSL,进行开发(train的速度略快于Widnows)

完成一和三,可用VS Code连接WSL,在Docker中开发或运行别人的代码(一般运行别人代码,或基于镜像进行二次开发) 

一、Windows11安装WSL2

1.1 启用3个Windows功能

打开控制面板,找到下图,点击“程序”

点击“启用或关闭Windows功能”

启用3个Windows功能,如下图

启用以上三个Windows功能,若没有Hyper-V,则根据以下步骤添加

1.2 添加Hyper-V【可选】

在桌面新建一个文本文件,将下面的程序复制进去,之后修改文件后缀名为.bat

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

最终效果如下图,双击运行即可。

1.3 安装Ubuntu

打开Microsoft Store,搜索Ubuntu,安装即可。

之后启动刚才下载的ubuntu

若出现报错0x800701bc

则点击下面的链接,下载WSL更新包

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

下完后双击运行wsl_update_x64.msi即可。

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

之后再次运行Ubuntu,按照要求输入用户名和密码即可(密码不会显示,别误认为自己输错了)

二、安装NVIDIA驱动,CUDA

我的显卡是GeForce GTX 1050 Ti,电脑自带CUDA驱动版本是11.1。如下图

建议升级到新版驱动,这样的话,就无需在WSL中安装NVIDIA驱动,直接就能使用。升级驱动后,如下图

2.1 安装/升级 NVIDIA驱动

进入下載 GeForce Experience | NVIDIA

下载GeForce Experience,之后下载可用的最新的驱动

之后打开windows的cmd,执行nvidia-smi查看当前CUDA驱动版本

nvidia-smi

打开WSL,执行nvidia-smi。WSL中应该也能看到相同的结果。

2.2 更新Linux的软件列表

在WSL中执行如下命令(主要是安装gcc,否则下一步的安装无法进行)

sudo apt-get update                    #更新软件列表
sudo apt-get install build-essential   #安装必备的工具包

2.3 安装CUDA Toolkit

进入CUDA Toolkit 12.3 Update 2 Downloads | NVIDIA Developer

下载CUDA ToolKit,要与上面的CUDA Version对应,历史版本见下图

找到正确的版本后,在WSL中,输入命令即可

命令1:下载.sh文件

命令2:运行sh文件(都按照默认设置安装即可)

第一个界面输入accept

第二个界面找install

执行如下指令,添加环境变量。注意要修改为自己安装的cuda版本,我这里是cuda-12.3

(建议将这2条加入linux系统环境变量,否则系统重启后,环境变量就没了,上网搜索即可。若加入系统变量,要先重启,才会生效)

export PATH="/usr/local/cuda-12.3/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-12.3/lib64:$LD_LIBRARY_PATH"

执行nvcc -V,得到如下结果,则成功

2.4 安装anaconda

在官网找到下载链接,用wget下载.sh文件

wget 下载链接

之后运行.sh文件,安装anaconda

2.5 conda创建虚拟环境,安装pytorch+cu116

在conda prompt中执行如下命令,创建虚拟环境

conda create -n torch_gpu python=3.9

在pytorch官网找到对应命令,在虚拟环境下执行即可(根据自己的需要,找版本,安装的cuda版本不能高于机器中CUDA Version。我的机器CUDA Version是12.3,所以安装的cu116(cuda 11.6)没毛病)

三、在Docker中获取镜像(与我们本地相同的)

以本地环境为基础,找到Docker镜像,从而创建一个独立的环境。

3.1 安装Docker

直接下载Docker Desktop并安装。

有问题参考这篇即可解决在Windows11上新安装的Docker Desktop一直显示"starting the Docker Engine"登录不上去的问题 - 知乎 (zhihu.com)

3.2 Docker需要的配置

配置1:

配置2:

3.3 从Docker中拉取镜像

前面我们看到了我们的CUDA Version为12.3版本。

进入https://hub.docker.com/r/nvidia/cuda/tags/

输入CUDA Version

找到对应的镜像,复制命令,在WSL中执行。

在WSL中执行

安装好后,用sudo docker images查看刚才拉取的镜像

sudo docker images

3.4 以镜像为基础,创建开发/运行环境

上面的镜像已经有了基础驱动,我们只需要自己安装python环境即可

步骤:

  1. 以镜像为模板,创建容器
  2. 在容器内
    1. 安装anaconda
    2. 创建新的虚拟环境torch_gpu
    3. 在虚拟环境torch_gpu中安装pytorch(从pytorch官网找安装命令,建议用pip)

参考资料

旧版 WSL 的手动安装步骤 | Microsoft Learn

1. NVIDIA GPU Accelerated Computing on WSL 2 — CUDA on WSL 12.3 documentation

Docker Desktop WSL 2 backend on Windows | Docker Docs在WSL 2中配置Cuda以及gpu版本的pytorch(2022最新版) - 知乎

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐