caffe 加入 cudnn編譯

2021-07-02 00:52:57 字數 2096 閱讀 9262

首先要使用cudnn v2,

all platforms

extract the cudnn archive to a directory of your choice, referred to below as .

then follow the platform-specific instructions as follows.

linux

cd export ld_library_path=`pwd`:$ld_library_path

add to your build and link process by adding -ito your compile

line and -l-lcudnn to your link line.

注意的是

在makefile中新添的語句要在之前的前面

ldflags += -l/home/research/sunmeng/software/cudnn-6.5-linux-x64-v2 -lcudnn

ldflags += $(foreach librarydir,$(library_dirs),-l$(librarydir)) $(pkg_config) \

$(foreach library,$(libraries),-l$(library))

遇到的乙個問題是把caffe編譯為乙個動態鏈結庫,其他程式呼叫caffe.so時,也需要載入cudnn.so,則編譯選項新增 -l/usr/local/cuda/lib64 -l/home/***xx/cudnn-6.5-linux-x64-v2/ 

一直提示是undefined reference to `cudnngetconvolutionforwardworkspacesize' 之類的錯誤,這是因為在動態鏈結庫中找不到相應的函式實現

這是因為之前在 /usr/local/cuda/lib64目錄下拷貝了乙個老版本的cudnn.so, 而我們想要使用的是新版本的/home/***xx/cudnn-6.5-linux-x64-v2,g++先在lib64找,找到了就不在後面的目錄找了,解決這個問題很簡單,就是把兩個目錄的順序調換即可

所以安裝共享庫後要注意共享庫路徑設定問題, 如下:

1) 如果共享庫檔案安裝到了/lib或/usr/lib目錄下, 那麼需執行一下ldconfig命令

ldconfig命令的用途, 主要是在預設搜尋目錄(/lib和/usr/lib)以及動態庫配置檔案/etc/ld.so.conf內所列的目錄下, 搜尋出可共享的動態鏈結庫(格式如lib*.so*), 進而建立出動態裝入程式(ld.so)所需的連線和快取檔案. 快取檔案預設為/etc/ld.so.cache, 此檔案儲存已排好序的動態鏈結庫名字列表. 

2) 如果共享庫檔案安裝到了/usr/local/lib(很多開源的共享庫都會安裝到該目錄下)或其它"非/lib或/usr/lib"目錄下, 那麼在執行ldconfig命令前, 還要把新共享庫目錄加入到共享庫配置檔案/etc/ld.so.conf中, 如下:

# cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

# echo "/usr/local/lib" >> /etc/ld.so.conf

#ldconfig

3) 如果共享庫檔案安裝到了其它"非/lib或/usr/lib" 目錄下,  但是又不想在/etc/ld.so.conf中加路徑(或者是沒有許可權加路徑). 那可以export乙個全域性變數ld_library_path, 然後執行程式的時候就會去這個目錄中找共享庫. 

ld_library_path的意思是告訴loader在哪些目錄中可以找到共享庫. 可以設定多個搜尋目錄, 這些目錄之間用冒號分隔開. 比如安裝了乙個mysql到/usr/local/mysql目錄下, 其中有一大堆庫檔案在/usr/local/mysql/lib下面, 則可以在.bashrc或.bash_profile或shell裡加入以下語句即可:

export ld_library_path=/usr/local/mysql/lib:$ld_library_path    

一般來講這只是一種臨時的解決方案, 在沒有許可權或臨時需要的時候使用.

-wl,-rpath,/home/***x/cudnn-6.5-linux-x64-v2:/usr/local/cuda/lib64:

caffe錯誤cudnn版本問題

在編譯caffe時出現錯誤 這是因為當前版本的caffe的cudnn實現與系統所安裝的cudnn的版本不一致引起的。解決辦法 1.將.include caffe util cudnn.hpp 換成最新版的caffe裡的cudnn的實現,即相應的cudnn.hpp.2.將.include caffe ...

caffe安裝中元件cuda和cudnn配置方法

首先解除安裝已經安裝的cuda sudo yum remove usr local cuda 7.5檢視資訊1 lspci grep i nvidia檢視資訊2 uname m cat etc release檢視資訊3 gcc version檢視資訊4 uname r查詢cuda版本 yum sea...

微軟Caffe編譯

3 使用vs2013開啟caffe.sln編譯自動安裝第三方庫。安裝過程中可能出現的錯誤 e nugetpackages boost.1.59.0.0 lib native include boost format alt sstream impl.hpp error c2220 警告被視為錯誤 沒...