在WSL2上配置深度学习环境

目标

硬件:x86cpu,3060显卡
软件:Win10,WSL2
需要配置:C++和python环境,Anaconda,11.1版本Cuda(适配3060显卡),gcc,g++(都要求10以下版本,兼容cuda-11.1),torch-1.8.0-cu111。

安装WSL2

不要使用wsl --install,会变得不幸!如果你已经不幸,在程序管理里找到wsl,卸载,在注册表里找到wsl,删除,然后在命令行重装。

管理员模式启动win10的powershell。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
wsl --list --online

然后选择版本,深度学习建议ubuntu

wsl.exe --install ubuntu

安装完毕后会自动启动,以后也可以直接输入wsl启动。

WSL默认将ubuntu安装在系统盘,但提供了快捷的导出和迁移功能。建议迁移出来,方便windows访问linux的文件系统。

依次输入以下命令,从而依次执行: 1. 关闭当前子系统,2. 将当前发行版导出到 D:\ubuntu.tar,3. 删除原始系统,4. 将D:\ubuntu.tar导入到新的目录 D:\Ubuntu 。至此完成迁移。

wsl --shutdown   
wsl --export Ubuntu D:\ubuntu.tar
wsl --unregister Ubuntu
wsl --import Ubuntu D:\Ubuntu D:\ubuntu.tar

配置通过主机的代理通道

vim ~/.bashrc
function set_proxy() {
 # 查询宿主机的IP地址
 proxy_server=`cat /etc/resolv.conf|grep nameserver|awk '{print $2}'`
 # http_proxy (改成你的局域网端口号)
 proxy_port=1080
 export http_proxy=http://$proxy_server:$proxy_port
 export HTTP_PROXY=$http_proxy
 export https_proxy=$http_proxy
 export HTTPS_PROXY=$http_proxy
}

依次按ESC,:,w, q,enter键保存并退出。然后配置win10上的代理软件允许来自局域网的链接。然后

source ~/.bashrc 
set_proxy

这样WSL就基本配置好了。

配置conda

这里找到你想要的版本,下载运行

wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
sudo bash Anaconda3-2023.09-0-Linux-x86_64.sh

根据提示一路yes,注意回车不要按过头,最后一个问你要不要初始化也yes。

然后创建环境,myenv改成你想要的名字。

conda create -n myenv python=3.8

这里注意,请先安装cuda,再安装pytorch!我选择torch 1.8.0和cuda111的搭配,具体搭配参考这里

配置g++和gcc

WSL好像是自带或者我自己装了g++-11和gcc-11,需要降级到10才能兼容cu111。

sudo apt-get install gcc-10     # 安装GCC 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
gcc --version

sudo apt-get install g++-10     # 安装G++ 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100
g++ --version

配置cuda(一堆坑)

这里找到你要的版本,下载,安装。理论上因为配置了低版本g++,所以官网提供的所有方法都可以用。但我没试过,但不配置低版本g++是会编译失败的。还是推荐deb local安装。


注意选WSL-ubuntu

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

注意!如果你之前装了高版本的cuda,要降级,请不要使用deb法!会有依赖自动安装高级的版本然后不兼容!硬要装,卸载,autoremove,然后在/var里找到并手动安装重复的依赖,再apt-get install。(踩坑踩了一晚上)

修改环境变量again

vim ~/.bashrc

选择你要的cuda版本,以后切换版本改这里就行,所有的cuda都安装在/usr/local

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}}

使环境生效。

source ~/.bashrc
nvcc -V

配置torch

然后就是一切顺利得进入环境,在conda环境下安装编译你的各种库了。先配torch,在这里找到合适的指令。

conda activate myenv
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge

再随手试试pip好不好使:

pip install open3d
pip install timm
pip install termcolor
pip install Bio
pip install MDAnalysis

到这里就算是配好基本环境了,再根据项目需求安装需要的库。

posted @ 2023-12-02 22:39  溡沭  阅读(747)  评论(0编辑  收藏  举报