其他教程教的做法
从官网下载最新安装包
-
解压缩:会生成cuda/include和cuda/lib64
-
将cuda/include目录中的cudnn.h文件拷贝到/usr/local/cuda-8.0/include/目录下
-
将cuda/lib64目录中的库拷贝到/usr/local/cuda-8.0/lib64/目录下;
-
将/usr/local/cuda-8.0/lib64/目录下的libcudnn库的权限改为777,执行:
sudo chmod 777 libcudnn*
如果直接复制粘贴不了,记得尝试cp命令,我就是不能直接复制粘贴,用的cp命令实现复制。
但是现在官网Ubuntu只能下载deb版本的安装包
所以现在的做法应该是
下载相应的deb
然后安装
sudo dpkg --install libcudnn7_x.x.x.xxxx+cudaxxx_amd64.deb
sudo dpkg --install libcudnn7-dev_x.x.x.xxxx+cudaxxx_amd64.deb
sudo dpkg --install libcudnn7-doc_x.x.x.xxxx+cudaxxx_amd64.deb
若不报错则说明安装成功。
切换到home文件夹下
cd
复制cuDNN sample到当前用户目录下:
cp -rv /usr/src/cudnn_samples_v7 .
进入cuDNN测试样例程序的路径:
cd cudnn_samples_v7/mnistCUDNN
编译测试程序:
make clean
make -j4
运行测试程序:
./mnistCUDNN
若cuDNN安装正确会出现:
Test passed!
但到这一步,运行theano调用cudnn仍然会显示
Can not use cuDNN on context None: cannot compile with cuDNN. We got this error:
代码某一行: fatal error: cudnn.h: No such file or directory.
Compilation terminated.
仍需要将cudnn.h和相关库复制到cuda文件夹下
首先找到cudnn.h的文件路径
locate cudnn.h
然后拷贝到/usr/local/cuda/
文件夹下,我的cuda是10.1版本的,所以是/usr/local/cuda-10.1/
sudo cp cudnn.h所在路径/cudnn.h /usr/local/cuda-10.1/include/
然后找到libcudnn.so.*
拷贝
sudo cp /home/usrname/anaconda3/lib/libcudnn.so /usr/local/cuda-10.1/lib64/
sudo cp /home/usrname/anaconda3/lib/libcudnn.so.7 /usr/local/cuda-10.1/lib64/
sudo cp /home/usrname/anaconda3/lib/libcudnn.so.7.6.0 /usr/local/cuda-10.1/lib64/
将/usr/local/cuda-10.1/lib64/
目录下的libcudnn
依赖的权限改为777,执行:
sudo chmod 777 libcudnn*