1. 程式人生 > >Ubuntu14.04配置OpenCL版本caffe (AMD顯示卡)---- 問題總結(持續更新)

Ubuntu14.04配置OpenCL版本caffe (AMD顯示卡)---- 問題總結(持續更新)

開始安裝AMDAPPSDK之前,確保你已經安裝好AMD閉源顯示卡驅動! 首先,建議大家閱讀下面這篇部落格,裡面提到了一種完成的caffe-opencl配置方法,大家先參照著這篇博文做: http://blog.csdn.net/legendluo/article/details/51635346 如果你在配置過程中遇到一下問題,可以嘗試一下我的解決方法: (1)在root模式下安裝完AMDAPPSDK之後,發現在/etc/profile和~/.bashrc檔案中沒有所說的環境變數: 這個時候你需要手動地新增環境變數,具體來說: sudo gedit ~/.bashrc 此時你在root許可權下打開了bashrc這個檔案(這樣你編輯完畢之後才有許可權儲存),然後再檔案末尾新增AMDAPPSDKROOT=/opt/AMDAPPSDKXXX(這部分替換為具體的目錄名),然後ctrl+s儲存。然後source ~/.bashrc使編輯後的bashrc生效。你可以選擇在上述的2個檔案之一中新增環境變數(都新增好像也沒問題),具體區別大家可以參考下面這篇文章: http://blog.csdn.net/chenchong08/article/details/7833242 (2)按照我推薦的那篇文章用小程式進行測試,在編譯的時候會提示說找不到CL/cl.h: 這可能就跟上面環境變量出問題有關係。下面我們理清思路來解決這個問題: (大家可以在Ubuntu的軟體中心中下載安裝QtCreator,這是一個IDE,或者說你可以把它當成一個簡單的文件編輯器,方便建立各種格式的文件,比如建立測試檔案時用到的.cpp檔案和.cl檔案) 首先我們要搞清楚這一條編譯指令的具體含義是什麼。 g++ hello_world.cpp -o hello_world -I $AMDAPPSDKROOT/include -L $AMDAPPSDKROOT/lib/x86_64 -lOpenCL 參照下面這篇博文,你可以大致瞭解這條指令的含義。重點說明的是,出問題的一般都是-I 和-L後面的路徑出了錯。你可以把$AMDAPPSDKROOT換成你安裝AMDAPPSDK的路徑,比如/opt/AMDAPPSDK-3.0,再分別加上後面的/include和/lib/x86_64就構成完整的路徑,而這個路徑用於說明連結編譯需要用到的標頭檔案(在include目錄下面你就可以找到CL/cl.h了,在lib那個目錄裡面你可以找到libOpenCL.so這個動態連結庫)。
如果接下來再次編譯成功了,說明應該是可以編譯OpenCL程式了。 (3)配置clBLAS出現問題 如果是這部分出現了問題,建議大家去這個網站看看官方推薦的配置步驟: https://github.com/clMathLibraries/clBLAS/wiki/Build 如果是安裝boost加速庫的問題,大家參照這個網站進行配置: http://blog.chinaunix.net/uid-12226757-id-3427282.html 如果是安裝google test的問題,目前來看推薦大家直接安裝libgtest-dev,具體可以參照下面這篇文章進行安裝: http://blog.csdn.net/officercat/article/details/39299553 如果是安裝ACML/CBLAS的問題,注意ACML和CBLAS是二選一的,顯然安裝CBLAS是更加方便的,直接sudo apt-get install libblas-dev 重點來了,如果你是按照官方的CMAKE方法編譯安裝clBLAS的話,可能會遇到這些問題: (如果是有些依賴包沒安裝的話,你按照要求安裝上依賴包就行) <1>cmake的時候提示在系統中找不到可用的OpenCL 輸入ccmake . ,你會進入cmake的配置介面,然後按照cmake那條指令對應地配置相應項,然後依然將OpenCL-。。。-DIR那一項配置配置為/opt/AMDAPPSDK-3.0/include那個地址,然後儲存退出,然後再多嘗試編譯幾次。如果是使用cmake的話,可以在存有makefile的目錄下輸入ccmake .(注意,命令包括ccmake、一個空格和一個點.),然後再具體配置opencl的路徑(就是在AMDAPPSDK下面的include)。 <2>提示說找不到Fortran-Compiler 需要安裝fortran包,執行sudo
apt-get install gfortran即可安裝完畢。 <3>sudo make提示warning說很多檔案找不到,然後出現2個error

如果遇到了這個問題,我選擇放棄官方的編譯方法,轉投我給出的那篇用於安裝參考的部落格裡面提到的方法,就是另外找一個clBLAS包,使用travis的編譯方法進行編譯。我使用這種編譯方法能夠成功編譯出packsge壓縮包。之前你所安裝的那些依賴項依然有效,另外還需要注意下面幾個問題:

---最好還是先安裝一下travis,方法是: sudo apt-get install travis(其實我感覺裝不裝都一樣)

---後續在caffe目錄下改Makefile的時候,注意:如果你是單獨編譯的opencv,那麼需要注意那個libcodecs那個東西;如果你是libopencv-dev,就別亂改,不然後面會報錯。

---編譯完成之後,把得到的那個壓縮包解壓然後放到你要放的clBLAS目錄,然後再去caffe下面改Makefile裡面那個clBLAS的目錄引數。

目前來看,大部分的訓練樣例都是可以跑的,只是在make runtest的時候我這裡會提示大約11個測試沒有通過,不知道怎麼解決。。。。。

(這篇部落格是持續更新的,如果大家也遇到問題,可以提出來一起解決)