最正确的姿势安装cudnn,⽹上⼤多数教程都太坑了
为什么需要安装cudnn
cuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经⽹络(Deep Neural Networks)中的基础操作⽽设计基于GPU的加速库。cuDNN为深度神经⽹络中的标准流程提供了⾼度优化的实现⽅式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
各深度学习框架安装cuDNN需知
基本上所有的深度学习框架都⽀持cuDNN这⼀加速⼯具,例如:Caffe、Caffe2、TensorFlow、Torch、Pytorch、Theano 等。
Caffe可以通过修改fig中的相应选项来修改是否在编译Caffe的过程中编译cuDNN,如果没有编译cuDNN的话,执⾏⼀些基于Caffe这⼀深度学习框架的程序速度上要慢3-5倍(Caffe官⽹上说不差多少,明明差很多嘛)。Caffe对cuDNN 的版本不是很严格,只要⼤于cuDNN 4就可以。
TensorFlow⽬前的版本r1.2,强⾏要求装cuDNN,⽽且对版本也有相应的限制(cuDNN 5.1)。不过就官⽅说明
看,TensorFlow将在下⼀个版本r1.3中加⼊对cuDNN 6.0的⽀持。
Torch通过LuaJit可以⾃动检测⽬前系统中的cuDNN版本来进⾏相应的编译(如没有cuDNN,也可在进⾏Torch的安装)。
如何安装cudnn
⾸先说⼀下⽹上⼤多数中⽂安装cuDNN教程的错误⽅式,这种⽅式真的坑⼈⽆数。
tensorflow版本选择简单地说⽹上的⼤多错误的安装cuDNN的⽅式都是将下载后的cuDNN压缩包解压。然后再将cudnn的头⽂件(cuda/include ⽬录下的.h⽂件)复制到cuda安装路径的include路径下,将cudnn的库⽂件(cuda/lib64⽬录下的所有⽂件)复制到cuda安装路径的lib64路径下。这种⽅法如果不重置cuDNN相应的符号链接的话是不能成功的安装cuDNN的。
下⾯我们说⼀下正确的安装cuDNN⽅式,其实跟着官⽅安装说明进⾏安装就可以了。
2、如果这个压缩包不是.tgz格式的,把这个压缩包重命名为.tgz格式。解压当前的.tgz格式的软件包到系统中的任意路径(这个路径很重要,以下将该路径的绝对路径简称为/your/path/to/cudnn),解压后的⽂件夹名为cuda,⽂件夹中包含两个⽂件夹:⼀个为include,另⼀个为lib64。
例如:我将这个压缩包解压在了/usr/local⽬录下,那么该⽂件的绝对路径为/usr/local/cuda
tar -zvxf archive_ -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/
查看cudnn版本的⽅法:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论