文章目录
- 一、安装显卡驱动
- 二、安装CUDA
- 三、安装cuDNN
- 四、更换cuDNN版本
- 参考资料
一、安装显卡驱动
1. 终端中输入以下命令获取显卡和驱动信息:
ubuntu-drivers devices
以我自己的机器为例,显示结果如下:
2. 我这里选择recommended的驱动版本进行安装:
sudo apt install nvidia-driver-515
安装完成后输入nvidia-smi进行测试,若显示如下就代表安装成功。
二、安装CUDA
1. 在官网(https://developer.nvidia.com/cuda-toolkit-archive)下载cuda,版本根据自己需求选择即可,但是不要超过显卡支持的最高版本。
2. 然后选择runfile的方式安装(因为只用输入两行命令,懒…)
3. 下载完成后终端输入sudo sh cuda_11.6.2_510.47.03_linux.run,按照红框标注的进行选择即可:
4. 这里有一点需要注意一下,因为之前已经安装过显卡驱动了,所以这里需要取消Driver(光标移动到Driver,然后按enter即可取消,不取消会导致安装终止),然后移动光标到Install,按enter执行安装。
5. 配置环境变量
安装完成后会显示配置环境变量的说明,如下:
按照说明配置即可:
vim ~/.bashrc
添加以下内容:
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
最后:
source ~/.bashrc
nvcc -V
显示以下内容表明安装成功
三、安装cuDNN
1. 下载CUDA版本对应的cuDNN版本:https://developer.nvidia.com/rdp/cudnn-archive#a-collapse805-111
2. 参照官方文档进行安装:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux-tar
$ tar -xvf cudnn-linux-$arch-8.x.x.x_cudaX.Y-archive.tar.xz
$ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
$ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
3. 验证
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
出现以下信息说明安装成功,由于安装的cuDNN版本是8.5.0,所以MAJOR、MINOR、PATCHLEVEL依次是8、5、0
四、更换cuDNN版本
- 下载需要更换的cuDNN,我这里想更换的版本是cuDNN8.4.1,然后下载了cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz
- 删除已安装的cuDNN文件
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
- 解压准备更换的安装包,并将相关文件复制到cuda目录下对应的文件夹
tar -xvf cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz
sudo cp include/cudnn*.h /usr/local/cuda/include
sudo cp lib64/lib* /usr/local/cuda/lib64/
- 更新软链接
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.8.4.1
sudo ln -sf libcudnn.so.8.4.1 libcudnn.so.8
sudo ln -sf libcudnn.so.8 libcudnn.so
sudo ln -sf libcudnn_adv_train.so.8.4.1 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_adv_infer.so.8.4.1 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_ops_train.so.8.4.1 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_ops_infer.so.8.4.1 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.4.1 libcudnn_cnn_infer.so.8
sudo ln -sf libcudnn_cnn_train.so.8.4.1 libcudnn_cnn_train.so.8
sudo ldconfig # 检查是否存在可共享的动态链接库
- 检查版本
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2