cuDNN 是基于 CUDA 的深度学习 GPU 加速库
NVIDIA cuDNN
是用于深度神经网络的 GPU
加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN
可以集成到更高级别的机器学习框架中,如谷歌的 TensorFlow
、加州大学伯克利分校的流行 caffe
软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在 GPU
上实现高性能现代并行计算。
- 首先,我们需要查看当前系统的
cudnn
和cuda
版本,来确认下对应的cuda
版本(我们要往那个版本更新),以及默认安装的cudnn
版本。
# 查看CUDA版本
$ cat /usr/local/cuda/version.txt
# 查看CUDNN版本
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
- 一般情况下,我们系统中只会存在一个
cuda
版本,但是对于版本共存的情况下,则会出现如下所示的多个cuda
版本,这是就需要我们确定需要更新的cudnn
对于那个版本。然后,下载对应版本的更新,来做更新。
$ ll /usr/local/
lrwxrwxrwx 1 root root 21 12月 30 15:58 cuda -> /usr/local/cuda-10.1/
drwxr-xr-x 19 root root 4096 12月 21 14:56 cuda-10.0/
drwxr-xr-x 14 root root 4096 12月 30 15:58 cuda-10.1/
- 升级
cudnn
版本,需要登录英伟达的官网才可以下载对应的cudnn
版本。我们在选择版本的时候,尽量选择tgz
格式的通用版本进行安装和更新,因为其比较通用且操作也不麻烦。咳咳咳,比deb
格式的好用。
- 安装更新操作,如下所示:
# 解压并替换
$ tar -xvf cudnn-10.0-linux-x64-v7.6.4.38.tgz
$ sudo cp cuda/* /usr/local/cuda-10.0
- 建立软链接,以及运行动态链接库管理命令。
# 建立软链接
$ cd /usr/local/cuda-10.0/lib64/
$ sudo ln -sf libcudnn.so.7.6.4 libcudnn.so.7
# 动态链接库
$ sudo ldconfig
# 完整配置
$ ls -h libcudnn.so libcudnn.so.*
lrwxrwxrwx 1 root root 13 Mar 30 16:11 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx 1 root root 17 Mar 30 16:50 libcudnn.so.7 -> libcudnn.so.7.6.4*
-rwxr-xr-x 1 root root 356012392 Jul 25 2019 libcudnn.so.7.5.0*
-rwxr-xr-x 1 root root 392852264 Mar 30 16:11 libcudnn.so.7.6.4*
- 验证,更新的版本是否是正确的。
$ cat /usr/local/cuda-10.0/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 4
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"