linux(WSL)配置pytorh-gpu运行环境及常见问题
0,为什么要配置linux下的pytorch-gpu运行环境
- 最大的好处莫过于设置num_workers再也不会因为多进程而报错了!训练时效率的提升不是一点,是好几倍!
1,环境配置
- python3安装
sudo apt-get update
sudo apt-get upgrade
sudo apt install python3
- pip3安装
sudo apt install python3-pip
sudo pip3 install --upgrade pip #pip3更新
- pytorch环境安装
- pytorch官网 主要涉及的驱动和cuda Toolkit是跟着pytorch一键安装的(也就是说cuda和cudnn都不需要单独安装)。
- 除了利用pip3安装,可以利用浏览器在 https://download.pytorch.org/whl/cu113/torch_stable.html 中将.whl包下载下来,然后本地安装。
pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
- 若在安装过程中出现pillow安装不成功的问题
- pip3版本太低,升级pip3
-
python3 -m pip install --upgrade pip python3 -m pip install --upgrade Pillow
- 若在安装过程中出现报错 ERROR: Cannot uninstall 'xxx'. It is a distutils installed project and thus we cannot accurately
报错 Cannot uninstall 'abcd',那就 pip install --ignore-installed abcd,比如pyyaml
pip3 install --ignore-installed pyyaml
#Successfully installed pyyaml-5.3.1
'安装完成后,再下载自己想要下载的包'
pip3 install serial
#Successfully installed iso8601-0.1.12 serial-0.0.97
- 22-5-4-貌似只有最新版本的cu113的cuda环境是跟着pytorch一键安装的,使用其他版本的cuda安装下来的都只是cpu版本的,还是需要自己搭建环境
- 0-准备
- 1-cuda安装
- Windows10/11 WSL2 安装nvidia-cuda驱动
- CUDA Toolkit Archive
- 安装报错:Install of 440.33.01 failed, quitting安装过显卡驱动(只要安装了Windows的显卡驱动即可,WSL不需要单独安装),在安装cuda时第一个不勾选。(否则驱动重复安装而报错)
- 安装cuda完成后,配置环境变量
vi ~/.bashrc //10.*改为自己下载的版本 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64 export PATH=$PATH:/usr/local/cuda-10.2/bin export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.2 //11.*改为自己下载的版本 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
- 2-cudnn安装
- 以下两个都有相关流程
- cudnn-archive
- 命令
//解压 xz -d ***.tar.xz tar -xvf ***.tar tar zxvf ***.tgz -C ./ //sudo cp 解压后的cudnn位置 CUDA的位置 sudo cp cudnn-linux-x86_64-8.3.3.40_cuda10.2-archive/include/* /usr/local/cuda-10.2/include/ sudo cp cudnn-linux-x86_64-8.3.3.40_cuda10.2-archive/lib/* /usr/local/cuda-10.2/lib64/ //查看cudnn版本 cat /usr/local/cuda-10.2/include/cudnn.h
- 3-pytorch安装
2,wsl使用matplotlib绘图不显示
- 安装
- 在 plt.show() 之后并没有图像被画出来,是因为 wsl 上 matplotlib 默认的后端是 Agg,这是一个哑后端,即 plt.show() 之后什么都不会发生,需要安装一个 XWindows 协议的终端应用,我安装了 VcXsrv,安装时都使用默认设置。
- Now double-check firewall: Windows Security -> Firewall & network protection -> Allow an app through firewall -> make sure VcXsrv has both public and private checked. (When Launching xlaunch first time, you might get a prompt to allow through firewall. This works too. Also, if VcXsrv is not in list of apps, you can manually add it, eg from 'C:\program files\vcxsrv\vcxsrv.exe')
- 以下命令在wsl环境下输入
sudo apt-get update sudo apt-get install python3.6-tk pip3 install matplotlib
- 运行:
- 以下命令在wsl环境下输入
export DISPLAY=`grep -oP "(?<=nameserver ).+" /etc/resolv.conf`:0.0
- Launch VcXsrv with "Disable access control" ticked
- 参考链接
3,出现CUBLAS_STATUS_INTERNAL_ERROR报错
- 删除掉nvidia缓存
sudo rm -rf ~/.nv
- 固定所用的gpu
import torch
torch.cuda.set_device(0)
4,Linux多CUDA版本共存并切换使用
行动是治愈恐惧的良药,而犹豫拖延将不断滋养恐惧。