前言
系列(九)提到的caffe segnet(https://github.com/alexgkendall/caffe-segnet)所基於的cudnn版本很舊,爲2.0。但是Alex推薦另外一個開源項目(https://github.com/TimoSaemann/caffe-segnet-cudnn5),它的cudnn版本爲5.1。這裏就介紹後面這個項目如何在一個較新的ubuntu平臺上且cudnn enable情況下編譯安裝成功。
編譯
本人平臺及cuda,cudnn版本情況如右所示:ubuntu18.0.4 CUDA9.1 CUDNN7.0.1。
1)enable cudnn
vi Makefile.config and uncomment the below line
USE_CUDNN := 1
2) 然後make clean and make all -j8 這時會遇到下面的編譯錯誤
cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor
3)分析,還是cudnn版本不兼容的問題。 畢竟我的版本要比cudnn5.1新不少。 網上有很多說是安裝cudnn5.1版本,個人覺得比較麻煩。於是採用下面升級cudnn源代碼的辦法。 即將另外一個已經在本人平臺編譯通過caffe裏面cudnn代碼全部拷到caffe-segnet相對應的目錄下。
scp [email protected]:/xxx/caffe/include/caffe/util/cudnn.hpp xx/caffe-segnet-cudnn5/include/caffe/util/cudnn.hpp
scp [email protected]:/xxx/caffe/src/caffe/util/cudnn.cpp xx/caffe-segnet-cudnn5/src/caffe/util/cudnn.cpp
scp [email protected]:/xxx/caffe/src/caffe/layers/cudnn* xx/caffe-segnet-cudnn5/src/caffe/layers/
4)這時 再make clean and make all -j8 以及 make pycaffe -j8就能成功編譯通過。 當然如果遇到其它caffe的問題,可以參考上一篇文章(系列九)