(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 !