Ubuntu 20.04 系统下(子系统)深度学习环境配置(Pytorch + GPU)
🍀 前序(避坑)
上回我在虚拟机中装的Ubuntu,并安装Nvidia驱动,输入命令ubuntu-drivers devices ,可以看到无推荐安装的驱动,如下所示:
最后使用sudo apt install nvidia-driver-510 安装,后来安装cuda后,用nvcc -V检查,也证明确实安装成功了:
但始终不能解决这个问题:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
后来经过种种资料和事实证明:虚拟机中不支持安装Nvidia驱动,于是我装了 Ubuntu 子系统进行实验,终于成功,希望大家避坑
🍀 安装 Nvidia 驱动
可以看到,出现了很多推荐的驱动,这才正常:
同意安装推荐版本(510),在终端输入如下命令,即可自动安装
sudo ubuntu-drivers autoinstall
安装成功,如图所示:NVIDIA-SMI 510.47.03
安装教训:
- 我之前安装的cuda11.6,直到安装cuDNN才发现没有对应的版本,这也提示我们要安装cuda前,先去看看cuDNN对应的cuda版本。大家如果是初次安装,可以跳过下面的卸载命令
- 不要安装版本不对应的cuDNN,我初次安装cuda11.6版本,而cuDNN最高支持11.5,我安装了,结果验证cuDNN不能使用,所以不要有侥幸心理
sudo /usr/local/cuda-11.6/bin/cuda-uninstaller
sudo rm -rf /usr/local/cuda-11.6/
输入命令进行安装:
wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run
sudo sh cuda_11.5.0_495.29.05_linux.run
具体安装过程: 环境变量:
打开文件,配置环境变量,然后用nvcc -V 查看 cuda 信息,证明 cuda 安装成功
gedit ~/.bashrc
export PATH=/usr/local/cuda-11.5/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
🍀 安装 cuDNN for CUDA 11.5
cuDNN是对CUDA的补充,需要Nvidia账号和密码,注册登录即可下载,本节中我找到CUDA11.5对应版本的cuDNN进行安装,参考了一篇不错的博客: Ubuntu 20.04安装CUDA 11.0、cuDNN 8.0.5、PyTorch 1.7.0
下载成功
解压上图黄色的压缩包到当前文件夹
tar zxvf cudnn-11.5-linux-x64-v8.3.0.98.tgz -C ./
解压后多了一个cuda目录
cuda目录下面有include和lib64两个子目录,将这两个目录下面的所有文件拷贝到CUDA 11.6的安装路径对应的目录下面即可,作为对cuda的补充
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
完成后,删除.tgz 文件和cuda 文件夹,已经没用了
更改usr/local/cuda/ 下的include 和lib64 文件夹的权限,否则会出问题
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
附:常用的修改权限的指令
sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
安装其余三个Deb包
注意:这三个包的安装顺序不要乱
sudo dpkg -i libcudnn8_8.3.0.98-1+cuda11.5_amd64.deb
sudo dpkg -i libcudnn8-dev_8.3.0.98-1+cuda11.5_amd64.deb
sudo dpkg -i libcudnn8-samples_8.3.0.98-1+cuda11.5_amd64.deb
安装第一个Deb包时候,弹出根目录空间剩余0,记得当时设置了25.5G,确实太小,于是我扩容了根目录后,重新进行安装三个包:
验证是否安装成功
cp -r /usr/src/cudnn_samples_v8/ ~
cd ~/cudnn_samples_v8/mnistCUDNN/
make clean && make
./mnistCUDNN
报以下编译错误 fatal error: FreeImage.h
尝试解决
sudo apt-get install libfreeimage3 libfreeimage-dev
无用,即使sudo apt-get update 后再试这条命令:
找了半天,终于有一篇博客拯救我
- 失败原因:各种系统资源安装包等、其挂载的服务器可能是国外的或者此时访问的人数过多导致连接超时后服务器连接失败,致使资源下载失败
- 解决方案:可以把原来的cn.archive.ubuntu.com服务器地址更换成网易163的服务器源,能有效的提高各种资源的下载速度和安装速度
操作如下
1. 找到sources.list文件,用文本编辑器打开
2. 文件全选,替换为如下代码(我的系统是ubuntu 20.04,所以用focal,大家可以用lsb_release -a 查看并相应替换代码中所有的focal,然后整体再替换sources.list)
deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
3. 之后sudo apt-get update 一下,执行sudo apt-get install libfreeimage3 libfreeimage-dev ,不报任何错,至此,我们再验证cuDNN是否安装成功
4. 执行make clean && make ,不报错,再次验证编译错误 fatal error: FreeImage.h 已解决 5. 执行./mnistCUDNN ,最后显示Test Passed! ,激动到哭
换源,首先打开文件:
gedit ~/.condarc
将下面代码进行替换:
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
show_channel_urls: true
刷新路径:
source ~/.bashrc
打开官网: 执行命令:conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch ,输入yes,等待安装完成
🍀 验证 Pytorch + GPU 环境是否搭建成功
python3
import torch
import torchvision
print(torch.cuda.is_available())
输出True,代表环境配置成功
欢迎评论区纠错和讨论!希望自己走的弯路,能让大家避开,更多疑问联系我,QQ:743337163
|