Ubuntu 14.04 + cudnn8.0

about

聲明: 此文并非原創,我只是個搬運工罷了(盡做些Ctrl+C, Ctrl+V的工作)。作為一個小白,只是為了方便日后學習。如得罪版權,請多多包含。感謝下面大神勞助。

本博文參考了
autocyzUbuntu16.04+cuda8.0+caffe安裝教程
Hungryof linux替換cudnn版本
AbsentM's64位Ubuntu 14.04 LTS + Caffe + CUDA 7.5 + Opencv 3.0 安裝配置實戰
DoralCaffe安裝問題匯總
githubfatal error: caffe/proto/caffe.pb.h: No such file or directory #105

0. Pre-Installation

  • 0.1. 先到NVIDIA官網查看,Compute Capability這項是否達到了3.0,如果不是,那么不用裝了,下面的不用看了。

!Note:

  1. 官網有說明cuDNN Install Guide
PREREQUISITES
    ... a GPU of compute capability 3.0 or higher are required.
  1. 在查看Compute Capability這一項時,請注意,左側的是:..Desktop Products,右側的是Notebook Products, 就是臺式機和筆記本的區別。
    GPU.png
  • 0.2 已裝好了 cuda8.0,可查看教程Ubuntu 14.04安裝CUDA-8.0

  • 0.3到NVIDIA官網注冊填個問卷然后下載對應版本的cudnn(本文選的是cuDNN v5.1 Library for Linux, 下早到的是一個cudnn-8.0-linux-x64-v5.1.tgz文件)

    cuDNN.png

1. Installation

  • 解壓
$ tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
$ cd cuda
$ sudo cp lib64/* /usr/local/cuda/lib64/
$ sudo cp include/cudnn.h /usr/local/cuda/include/ 
  • 更新軟連接:
$ sudo rm -rf libcudnn.so libcudnn.so.5          #刪除原有動態文件
$ sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 
$ sudo ln -s libcudnn.so.5 libcudnn.so

!Note: 可能遇到的問題:

  • 之前安裝了某個cuDNN的版本,想替換為新的: 解決方法是刪除掉原先的,重新裝新的cuDNN
    刪除舊的
$ cd /usr/local/cuda/lib64
$ sudo rm libcudnn*

然后再按照上述方法安裝新的

  • 可用ll命令查看那些軟連接
$ cd /usr/local/cuda/lib64
$ ll | grep libcudnn
lrwxrwxrwx  1 root root        13 12月  1 23:12 libcudnn.so -> libcudnn.so.5*
lrwxrwxrwx  1 root root        17 12月  1 23:11 libcudnn.so.5 -> libcudnn.so.5.1.5*
-rwxr-xr-x  1 root root  79337624 12月  1 23:09 libcudnn.so.5.1.5*
-rw-r--r--  1 root root  69756172 12月  1 23:09 libcudnn_static.a

2 Post-Installation

  • 編譯caffe
    ~/caffe/Makefile.config中,去掉 USE_CUDNN := 1的注釋
    執行
$ make clean # 第一次編譯不用這句,出錯時也可使用這句。
$ make all
$ make test
$ make runtest

!Note: 可能遇到的錯誤

  • 在執行
$ make all

時遇到

error:‘CUDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING’ was not declared in this scope

是因為當前的cuDNN版本過低,請自行下行高版本的,再重新裝一遍。

  • 在執行
$ make runtest

時遇到

error:
./include/caffe/util/cudnn.hpp:8:34: fatal error: caffe/proto/caffe.pb.h: No such file or directory
 #include "caffe/proto/caffe.pb.h"

解決方法:

# 當前目錄為caffe,如不是,執行cd caffe
$ protoc src/caffe/proto/caffe.proto --cpp_out=.      
$ mkdir include/caffe/proto
$ mv src/caffe/proto/caffe.pb.h include/caffe/proto

再重新編譯

$ make clean
$ make all
$ make test
$ make runtest
  • 在執行
$ make runtest

時遇到

error:
.build_release/tools/caffe
make: .build_release/tools/caffe: Command not found
make: *** [runtest] Error 127

那是因為先前沒有執行make all,make test造成的,不要偷懶,在遇到上面的錯誤時,執行

$ make clean
$ make all
$ make test
$ make runtest
  • 在執行
$ make runtest

時遇到

F1202 12:26:03.474925 16455 cudnn_softmax_layer.cpp:15] Check failed: status == CUDNN_STATUS_SUCCESS (6 vs. 0)  CUDNN_STATUS_ARCH_MISMATCH
*** Check failure stack trace: ***
    @     0x2b5817a9cdaa  (unknown)
    @     0x2b5817a9cce4  (unknown)
    @     0x2b5817a9c6e6  (unknown)
    @     0x2b5817a9f687  (unknown)
    @     0x2b581bca72b5  caffe::CuDNNSoftmaxLayer<>::LayerSetUp()
    @     0x2b581bd6b6a7  caffe::SoftmaxWithLossLayer<>::LayerSetUp()
    @     0x2b581bdf870c  caffe::Net<>::Init()
    @     0x2b581bdf9d4b  caffe::Net<>::Net()
    @           0x5ac4a0  caffe::NetTest<>::InitNetFromProtoFileWithState()
    @           0x561c8b  caffe::NetTest<>::InitAllInOneNet()
    @           0x578ad0  caffe::NetTest_TestAllInOneNetVal_Test<>::TestBody()
    @           0x8fd933  testing::internal::HandleExceptionsInMethodIfSupported<>()
    @           0x8f4617  testing::Test::Run()
    @           0x8f46be  testing::TestInfo::Run()
    @           0x8f47c5  testing::TestCase::Run()
    @           0x8f7b08  testing::internal::UnitTestImpl::RunAllTests()
    @           0x8f7d97  testing::UnitTest::Run()
    @           0x46ccff  main
    @     0x2b581ccb0f45  (unknown)
    @           0x474979  (unknown)
    @              (nil)  (unknown)
make: *** [runtest] Aborted (core dumped)

是因為你的N卡的GPU的Compute Capability低于3.0,不符合cuDNN的硬件要求,這時,不用裝cuDNN了,把在~/caffe/Makefile.config中的 USE_CUDNN := 1的注釋加上

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容