WSL,即Windows Subsystem for Linux(Windows下的Linux子系统),可以免去双系统安装的复杂性,使Linux系统依附于Windows运行。最新的WSL2支持了GPU加速运算,对搞深度学习的是件不错的事。
一、wsl的安装
1.首先去windows官网查看安装方法
管理员模式进入命令行,运行下面命令:
wsl --install -d <Distribution Name> # 将<Distribution Name>更换成想要的版本,例如:Ubuntu-18.04
命令很简单,当然前提是保证windows内核版本符合要求,我的是19044,要求是>=19041。目前有说法是需要Inside Preview版本,即加入windows预览体验计划,并更新系统,但是当前(2022.01.14)我只有Release Preview通道开放,CUDA同样可以正常在wsl中使用,因此见仁见智,可以更新20xxx版本的可以更新一下,不能更新的19044也可以。
注:若想安装多个版本的系统,随后可以去windows store,搜索Ubuntu即可找到其他WSL所支持的版本,点击安装即可。
安装完毕并重启系统,设置好Ubuntu用户后,使用命令:
wsl -l --all -v
查看已安装的系统、状态、使用的wsl版本。
2. 移动wsl目录(可选)
由于wsl默认安装目录为C盘,因此C盘空间较少的话,我们需要将它移动到其他磁盘。
导出系统:
wsl --export Ubuntu-18.04 D:\wsl-ubuntu-18.04.tar # 即 wsl --export <系统名> <导出目录>
删除系统:
wsl --unregister Ubuntu-18.04
再次导入系统:
wsl --import Ubuntu-18.04 D:\wsl-ubuntu D:\wsl-ubuntu-18.04.tar --version 2 # 即 wsl --import <系统名> <安装位置> <tar文件目录> WSL版本号
修改默认登录用户(之前安装完毕后自己设置的):
ubuntu1804.exe config --default-user <Username>
3. 管理wsl系统
可参考第一条的网址,比如设置默认系统等,若第一次安装没有指定Ubuntu版本的话,他会默认安装,并设定该安装的版本为默认启动,可以根据需要进行卸载、设置默认等操作。
以及进入WSL后,进行更新和升级:
sudo apt update && sudo apt upgrade
4. WSL与Windows的文件传输
在Windows资源管理器地址输入:
\\wsl$
可以查看以及操作WSL内的文件。
而在WSL中,进入目录
mnt/
即可查看和操作Windows中的系统目录
二、NVIDIA Driver
1. 驱动下载
首先去
下载支持WSL的NVIDIA最新驱动,首先查看自己的显卡是否支持,我的是GTX960m,因此下载Geforce Driver,右边的是Quadro Driver,根据自己需求下载。如果是Tesla显卡,因为官方文档说还不支持,因此就无法继续安装了。
2. 安装驱动
注意,此步骤是在Windows里进行的,不需要在WSL中安装驱动!
在这里我为了以防万一是首先删除了原先装的驱动460,随后再安装该510驱动。(按照正常情况来说可以直接覆盖安装。不过毕竟这些步骤还挺繁琐的,错一步就得重新搞半天,不如一开始就稍微麻烦下)
安装步骤与其他驱动一样,运行、安装即可完成,之后可以进入WSL或者CMD输入:
nvidia-smi
查看是否有显示,并且Driver版本号为所安装的最新版本,我的是510。
三、CUDA与Pytorch安装
注:WSL只有CUDA 11.x版本支持
首先贴出官方文档,英文的,很全,希望自己琢磨的可以看这个自行进行安装,比如如何使用自己早就在Windows安装好的CUDA 11.x等等,我在这里只会提到我用到的CUDA Toolkit的新安装方法。
1. 下载并安装CUDA Toolkit
使用WSL命令进入Ubuntu-18.04系统,输入下面的命令,安装用于Ubuntu18.04版本的CUDA Toolkit 11.4:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-ubuntu1804-11-4-local_11.4.0-470.42.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-4-local_11.4.0-470.42.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-4-local/7fa2af80.pub
sudo apt-get update
该命令可以只安装CUDA Toolkit,而不会附带安装NVIDIA Driver,等待完成即可。
2. 下载并安装Anaconda3
可以去官网下包,通过 \\wsl$ 将包可以直接下载到Ubuntu目录,后面的正常按照Linux中Anaconda的安装步骤进行即可。
3. 下载并安装Pytorch
我们可以看到Pytorch官网最新的显示只支持到CUDA 11.3,而我们安装的是CUDA 11.4,其实不影响,按照CUDA 11.3的方式安装即可:
pip3 install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
推荐使用pip方式安装,conda会自动安装CUDA Toolkit 11.3。
等待完成,输入命令运行并查看是否成功:
以上是所有的配置步骤,作为记录,以备日后使用,未来的Win11不需要加入体验计划,即可使用这项功能,因此会是个趋势。
四、开发环境的配置
推荐使用VSCode,轻量、速度快,内部包含海量的插件,使代码敲起来更舒服。
进入VSCode后,选择这个图标:
依次搜索并安装:
Chinese # VSCode汉化包
Python # Python预言支持
Remote-SSH # 远程代码编辑神器
安装完Remote-SSH后,左下角会出现一个绿色的标志:
点一下,选择:
现在就可以打开并查看WSL中的文件了,打开的文件夹会被自动识别为VSCode当前的工作区:
随后再点击小插件搜索界面,会发现已安装插件下面多出来了一个按钮:
点一下,就可以在服务器端(WSL)进行安装,就可以使用VSCode的调试功能调试WSL的代码了。
点击这里,切换虚拟环境:
F5调试程序,大功告成,正常运行: