CMake工程找不到相应的cuDNN版本的问题

(1) 去官网下载相应的版本,因为电脑之前安装的是 CUDA8.0 ,找跟 CUDA 版本兼容的 cuDNN 下载即可。

我选择的是 cuDNN v7.1.4 Runtime Library for Ubuntu16.04(Deb) 和  cuDNN v7.1.4 Developer Library for Ubuntu 16.04 (Deb) 

注意这里下载安装包時需要帐号登陆才可以。

(2) 根据教程安装,主要步骤摘录如下

(3) 不过到这里先别着急,还需要后续操作一下,可以参考博客最后一部分

这是才算安装完成。

(4) 然后再编译还是找不到 libcudnn.so.7.1.4 ,怎么办?

之前好像跟 CUDA 连体安装的是 libcudnn.so.5.1.10 

cv@cv : /usr/local/cuda-8.0/include$ locate libcudnn.so
/usr/lib/x86_64-linux-gnu/libcudnn.so
/usr/lib/x86_64-linux-gnu/libcudnn.so.7
/usr/lib/x86_64-linux-gnu/libcudnn.so.7.1.4
/usr/local/cuda-8.0/lib64/libcudnn.so
/usr/local/cuda-8.0/lib64/libcudnn.so.5
/usr/local/cuda-8.0/lib64/libcudnn.so.5.1.10

 cmake 提示报错表示找不到新的版本

-- Found CUDNN: /usr/local/cuda-8.0/include  
-- Found cuDNN: v5.1.10  (include: /usr/local/cuda-8.0/include, library: /usr/local/cuda-8.0/lib64/libcudnn.so)
CMake Error at libtorch/share/cmake/Caffe2/public/cuda.cmake:159 (message):
  PyTorch requires cuDNN 7 and above.

指向两个地方,下面我们直接对症下药

第一个是将 libcudnn.so 链接向 /usr/lib/x86_64-linux-gnu/libcudnn.so.7.1.4 

第二个是将 /usr/local/cuda-8.0/include 里面的 cudnn.h 改掉因为它是对应 libcudnn.so.5.1.10 的,怎么改呢,简单粗暴

cv@cv : /usr/local/cuda-8.0/include $ sudo mv cudnn.h cudnn.h.bak
cv@cv : /usr/local/cuda-8.0/include $ locate cudnn.h
/usr/include/cudnn.h
/usr/local/cuda-8.0/include/cudnn.h
cv@cv : /usr/local/cuda-8.0/include $ sudo cp -fv /usr/include/cudnn.h /usr/local/cuda-8.0/include/

(6) 查看一下内容,上面的是 cudnn 版本5的头文件部分摘录,下面的是 cudnn 版本7的头文件部分摘录。

到此应该可以通过 CMake 编译了,Bingo !

posted @ 2019-07-11 22:49  coffee_tea_or_me  阅读(5815)  评论(2编辑  收藏  举报