0%

在 Ubuntu 上安装 CUDA 及 cuDNN

记录一次痛苦安装 CUDA 及 cuDNN,希望以后不幸需要再装时能轻松些。

安装 nVidia 显卡驱动

首先需要确保安装了 nVidia 的驱动,安装方法在此不赘述。
如果安装了可以在终端中查看显卡信息,包括支持的 CUDA 最大版本

1
nvidia-smi

安装 CUDA

在 nVidia 官网选择需要下载的版本,为了兼容 PyTorch 我选择了11.7:
https://developer.nvidia.com/cuda-11-7-0-download-archive
Ubuntu 版官方给出了三种安装方式,我使用的是第一种。直接按照步骤执行就没问题。

1
2
3
4
5
6
7
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-ubuntu2004-11-7-local_11.7.0-515.43.04-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-7-local_11.7.0-515.43.04-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

更新:直接用第三种吧,省事,而且最重要的是可以不安装配套版本驱动,少点问题,第一种会自动替换驱动版本

检测 CUDA 安装

终端中输入

1
nvcc -V

如果正常显示 CUDA 版本等信息则说明安装成功

安装 cuDNN

在如下链接可以下载历史版本的 cuDNN,需要登录 nVidia账号:
https://developer.nvidia.com/rdp/cudnn-archive
安装方法可以参考官方的文档:
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

1.下载所需版本的 Deb 文件

2.使用 dpkg 安装所得 Deb文件

1
sudo dpkg -i cudnn-local-repo-${distro}-8.x.x.x_1.0-1_amd64.deb

3.前往/var/cudnn-local-repo-${distro}-8.x.x.x/目录,安装相关库文件

1
2
3
sudo dpkg -i libcudnn8_8.x.x.x-1+cudaX.Y_amd64.deb 
sudo dpkg -i libcudnn8-dev_8.x.x.x-1+cudaX.Y_amd64.deb
sudo dpkg -i libcudnn8-samples_8.x.x.x-1+cudaX.Y_amd64.deb

测试 cuDNN 安装

1
2
3
4
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN

在 make 时可能会存在库缺失的报错,这不一定是 cuDNN 的问题。

例如我在验证时报错:

1
2
3
4
5
test.c:1:10: fatal error: FreeImage.h: 没有那个文件或目录
1 | #include "FreeImage.h"
| ^~~~~~~~~~~~~
compilation terminated.
>>> WARNING - FreeImage is not set up correctly. Please ensure FreeImage is set up correctly. <<<

解决方案是安装 FreeImage 库就行

1
2
sudo apt-get update
sudo apt-get install libfreeimage-dev

如果成果安装 cuDNN,最后运行 mnistCUDNN 时最后一行输出

1
Test passed!