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"