Ubuntu20.04安装CUDA11.3与CUDNN8

2022年深度学习环境搭建

Ubuntu20.04安装CUDA11.3与CUDNN8

2022年,较为流行的深度学习框架如PyTorch与TensorFlow依旧依赖NVIDIA GPGPU运算环境(PyTorch对AMD GPU的支持依旧处于beta阶段)。尽管PyTorch或者TensorFlow的安装可以通过一条命令完成,可惜它们所依赖的GPU运算环境却依旧需要花费一些时间与精力。这篇文章记录了在Ubuntu 20.04操作系统下CUDA与cuDNN的安装过程。

准备工作

在终端输入如下命令,确认GPU已经正确安装。

lspci | grep -i nvidia

输出中应当显示GPU的具体型号

01:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX 980 Ti] (rev a1)
输出示例

版本匹配

当前TensorFlow最新发行版本为2.8.0。从官方网站提供的兼容性列表来看,其对应CUDA版本应当为11.2。当前PyTorch的稳定版本为1.10.2,支持的最新CUDA版本为11.3。本着就高不就低原则,本次安装选择CUDA 11.3版本。

PyTorch安装方式

安装CUDA

2022年安装CUDA已经没有以前那么复杂。大致上可以分为三步:获取安装文件,安装,验证。

获取安装文件

首先访问CUDA官网获取安装文件与说明。

CUDA Toolkit Archive
Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production drivers appropriate for your hardware confi…
💡
请注意官网默认给出的下载链接为当前最新版本。你需要选择 Archive of Previous CUDA Releases 来找到已归档的11.3版本。

找到对应版本后,依次选择操作系统、计算架构、Linux发行分支、版本,最终出现三种安装方式:deb (local)、deb (network)与runfile (local)。

三种安装方式

这三种方式大致分两大类:在线安装 (network) 与离线安装 (local)。如果你对CUDA版本没有要求,希望一直使用最新版本,可以使用在线安装方式。如果你希望固定CUDA版本,或者部署环境网络环境糟糕,可以选择离线安装。注意离线安装又细分了两种方式:deb与runfile。deb的方式下载后为一个deb包,可以借助Ubuntu的包管理工具自动解决依赖关系,适合新手。runfile更适合熟悉Ubuntu系统、有定制需求的玩家。

⚠️
如果选择离线安装,请在两种方式中选择一种并在今后保持一致。同时安装两种离线包会造成驱动不匹配的错误。

使用Deb文件离线安装

在这里我选择离线deb安装方式。点击 deb (local) 按钮后,网页下方显示出了具体的安装过程。

离线安装CUDA

接下来,将说明中的指令逐条复制并粘贴在终端中,即可完成安装。其中的 wget 命令是用来下载deb包的。你可以使用其它下载工具将对应的deb文件下载到本地。

整个安装过程持续大约10分钟。安装完成后需要重新启动计算机。

验证安装结果

待计算机启动完成,在终端中输入如下指令验证CUDA安装结果。

nvidia-smi

输出类似:

Wed Feb  9 08:44:07 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 465.19.01    Driver Version: 465.19.01    CUDA Version: 11.3     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0  On |                  N/A |
| 22%   52C    P8    15W / 250W |     32MiB /  6081MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1127      G   /usr/lib/xorg/Xorg                 21MiB |
|    0   N/A  N/A      1199      G   /usr/bin/gnome-shell                7MiB |
+-----------------------------------------------------------------------------+

至此CUDA安装结束。

安装cuDNN

cuDNN的安装过程与CUDA类似:下载安装文件,安装。

获取安装文件

官方cuDNN链接如下:

NVIDIA cuDNN
NVIDIA cuDNN The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. Deep learn…
💡
下载cuDNN需要注册NVIDIA开发者账号并登录。

cuDNN同样提供了多种安装方式。这里与CUDA一样选择deb方式。注意cuDNN的版本需要与CUDA版本匹配。如果你需要编译TensorFlow或者PyTorch,安装开发时库,否则安装运行时库即可。

获取cuDNN安装文件

安装

在终端中使用如下命令安装

sudo dpkg -i libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb

输出类似

Selecting previously unselected package libcudnn8.
(Reading database ... 105039 files and directories currently installed.)
Preparing to unpack libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb ...
Unpacking libcudnn8 (8.2.1.32-1+cuda11.3) ...
Setting up libcudnn8 (8.2.1.32-1+cuda11.3) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...

代表安装成功。无需重启系统。

结束

至此,CUDA与cuDNN安装完成。由于采用了deb包安装方式,该版本CUDA对应的驱动也已经自动安装完成。接下来的文章中将介绍PyTorch与TensorFlow的安装过程。

可选项

使用deb方式安装CUDA会自动安装gnome组件,对于无图形界面的服务器来说这些组件是多余的,可以通过以下命令删除。

sudo apt remove --purge gnome-*
sudo apt autoremove --purge
删除多余的图形组件

然后重新启动即可。