cuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计基于GPU的加速库。
cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
cuDNN只是NVIDIA深度神经网络软件开发包中的其中一种加速库。基本上所有的深度学习框架都支持cuDNN这一加速工具,例如:Caffe、Caffe2、TensorFlow、Torch、Pytorch、Theano等。
下面我们说一下正确的安装cuDNN方式,其实跟着官方安装说明进行安装就可以了。
1、从https://developer.nvidia.com/cudnn上下载cudnn相应版本的压缩包(可能需要注册或登录)。
2、如果这个压缩包不是.tgz格式的,把这个压缩包重命名为.tgz格式。解压当前的.tgz格式的软件包到系统中的任意路径(这个路径很重要,以下将该路径的绝对路径简称为/your/path/to/cudnn),解压后的文件夹名为cuda,文件夹中包含两个文件夹:一个为include,另一个为lib64。
例如:我将这个压缩包解压在了/usr/local目录下,那么该文件的绝对路径为/usr/local/cuda
tar -zvxf archive_name.tar.gz -C /usr/local
3、将解压后的文件中的lib64文件夹关联到环境变量中。这一步很重要。
cd ~
sudo gedit .bashrc
4、在弹出的gedit文档编辑器(.bashrc中)中最后一行加入:
export LD_LIBRARY_PATH=/your/path/to/cuda/lib64:$LD_LIBRARY_PATH
5、其中/your/path/to/cudnn/lib64是指.tgz解压后的文件所在路径中的lib64文件夹。
保存更改的文件后,紧接着:
source .bashrc
6、再重启一下Terminal(终端),该步骤可以成功的配置cuDNN的Lib文件。
配置cuDNN的最后一步就是将解压后的cuDNN文件夹(一般该文件名为cuda)中的include文件夹(/your/path/to/cudnn/include)中的cudnn.h文件拷贝到/usr/local/cuda/include中,由于进入了系统路径,因此执行该操作时需要获取管理员权限。
打开终端,进入/your/path/to/cudnn/include。其中/your/path/to/cudnn/include指的是.tgz解压后的文件所在路径中的include文件夹。例如:
cd /YOUR/PATH/TO/cuda/include
sudo cp *.h /usr/local/cuda/include/
7、其中这里的cuda/include对于我自己的安装来说就是/your/path/to/cudnn/include。因为我将cudnn的.tgz压缩包解压到了home的当前用户的路径下,解压后的文件夹名为cuda。
之后,再重置cudnn.h文件的读写权限:
sudo chmod a+r /usr/local/cuda/include/cudnn.h
至此,cuDNN的配置就全部安装完成了。
另外:
查看cuda版本的方法:
cat /usr/local/cuda/version.txt
查看cudnn版本的方法:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2