2021年4月,wsl2 中配置深度学习环境完全版(windows10 + RTX3090 + wsl2 + ubuntu18.04 + cuda + cudatoolkit11.0 + cudnn11.0 + gnome + anaconda3 + pycharm)
写在前面:
① 加入windows预览体验计划,并将系统升级到特定版本以上
② 打开“适用于Linux的windows子系统”选项
(这两步请参照官网教程 ,系统版本越新越好)
③ 前两步完成后,即可直接在windows的cmd命令行中输入:
wsl --install -d Ubuntu-18.04
④等待安装完成后会自动弹出ubuntu18.04的窗口,之后会要求设置用户名和密码,照做即可。
验证: 到此为止不出错,并且能够正常显示ubuntu命令行即可。如图
① 在官网按照gpu类型选择下载cuda驱动,并傻瓜安装即可。
(注意:这里的驱动是专为wsl设计的,因此整个过程是windows中的操作,不涉及ubuntu)
验证: 在 windows 的cmd命令行中输入 nvidia-smi 有显卡信息说明安装成功。
① 在windows中,下载 VcXsrV 并安装,具体流程参见这个网址 中 “VcXsrc 安装”部分
② 在ubuntu的命令行中,输入下面命令,等待安装完成即可。
sudo apt install ubuntu-desktop
使用方式:(下面的内容参考这里和这里,只需要参考这两个连接中打开gnome的部分)
首先,在 windows 中
a. 打开 XLaunch ,选 One large window,Display number 设为 0
b. 默认 Start on client 即可
c. 额外勾选 Disable access control
d. 继续下一步后即可看到打开的黑屏,放着备用。
之后,在 ubuntu 的命令中输入如下命令:
sudo service dbus restart
sudo DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0 XDG_SESSION_TYPE=x11 gnome-session
最后,刚在打开的黑屏中显示桌面,说明打开成功
注意: 参考网址中关于.bashrc 的修改,可有可无,只是为了操作简便,但是我们用到桌面的机会不多,所以这里不再赘述。
安装第4点之前需要对cuda版本做一个说明,之前被各种版本搞的相当混乱,理解了之后清晰了很多。
具体检查措施:
① 先去pytorch官网查看torch支持的最新的cuda版本(截止到2021年7月27日,torch推荐安装的cuda版本是11.1(当然10.2也行,这里以11.1为例),如下图
② 再在windows命令行里输入nvidia-smi
,查看当前cuda的驱动版本(截图的时候我的电脑是11.3,后来自己升级成11.4了),注意这里的cuda version只要大于torch官网支持的版本(11.1)就没问题。
③ 检查完前两步之后,就可以进行第4步(在ubuntu中安装cuda toolkit)了。注意:第4步中的toolkit版本与torch官网推荐的cuda版本保持一致(以本文为例,第4步中安装cuda toolkit 11.1);同样第5步中也应该下载支持11.1版本的cudnn。后续的版本选择按照这个原则即可。
总的来说:版本关系应该满足两条要求(可以不看):
a) cuda toolkit(第4点),cudnn(第5点)和pytorch官网支持的cuda版本(第7点)保持一致。(本文中是11.1)
b) cuda toolkit的版本小于等于windows中cuda驱动版本。
解释:cuda版本分为“安装时版本”(即在windows命令行中通过nvidia-smi查看到的版本)和“运行时版本”(即在ubuntu命令行中通过nvcc -V查看到的版本)。可以简单地理解为,“安装时版本”是你的gpu能够支持的最大版本,而“运行时版本”则是实际使用时的版本。这样cuda toolkit的版本(运行时版本)小于等于“安装时版本” 是理所应当的。再者torch等实际应用需要和“运行时版本”保持一致也是理所应当的。
① 在ubuntu的命令行中依次输入以下四句命令。(这些命令是官网中“Setting up CUDA Toolkit”部分的教程)
注意:命令中的11-1根据需要版本的不同自行调整(见上面的注意)。例如:安装11.0只需要把后续的11-1改为11-0即可。
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo apt-get update
sudo apt-get install -y cuda-toolkit-11-1
② 第一步完成且没有错误之后,配置环境变量,在ubuntu的命令行中输入,
sudo gedit ~/.bashrc
③ 在打开的文件中,按i进入编辑模式,并在文件最底部添加:
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
④ 保存并退出,回到ubuntu命令行,输入
source ~/.bashrc
验证: 在ubuntu 命令行中输入 nvcc -V
,能够输出 cuda toolkit 信息即可。(如上所述,这里看到的是“运行时版本”)
① 完全按照这里第 4 点的步骤操作即可。(同样要选择和第4步中相同的版本,本文是11.1)
① 在windows中下载anaconda3的安装文件,并把文件放到ubuntu文件系统中。(或者直接在ubuntu可视化桌面中打开浏览器下载即可。)
② 在ubuntu命令行中进入刚刚下载的.sh 文件所在的文件夹,输入:
bash Anaconda3-5.2.0-Linux-x86_64.sh
之后按照要求,enter、yes完成安装。
验证: 在 ubuntu命令行中输入 python,显示 anaconda3 默认的 python版本信息即可。
注意: 可能会出现环境变量没有配置导致python
命令失效,解决办法是配置一下环境变量,详细做法见这里
① sudo gedit ~/.bashrc
② 在打开的文件中末行,添加export PATH="/home/wang/anaconda3/bin:$PATH"
,其中"wang"是你自己的ubuntu 用户名,自行修改(注意这里实际上是anaconda3的安装目录,如果在第6中没有选择默认目录,这里需要填入安装时自定义的目录)
③ source ~/.bashrc
① 官网中选择最适合自己的版本,按照其给出的命令,输入到ubuntu命令行中完成安装。
注意: 这一步可能需要梯子,或者自行百度其他离线安装方法(这一步和在ubuntu中安装pytorch一样,不需要考虑wsl和windows的影响。)
① 安装Pycharm,这就等于安装一个软件,下载安装即可。
② 参照官网教程和这篇博客即可,没有坑,很简单,有需要再细写。
至此,就能够在windows中跑ubuntu+gpu+pytorch环境中编写的代码。
而且代码的编辑和运行都是在windows的pycharm中进行的,日常使用不需要手动打开ubuntu,非常方便。
写在后面: 本文并非完全原创,参考到的博客都在文章标注。