Caffe安裝以及GPU服務器設置並行

Caffe安裝以及GPU服務器設置並行


本人新手,在學習GPU服務器的使用,歡迎大家一起交流。這篇博客主要講的是之前安裝的CPU版本的caffe後,進行修改爲gpu的版本。

目錄

caffe的安裝(非GPU)

這個很簡單,在網上就有很多的安裝教程,但我這裏也稍微講下吧。我這裏用的是Ubuntu的系統。

首先登陸root賬號

下載依賴包:
apt-get install git
apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
apt-get install –no-install-recommends libboost-all-dev
apt-get install libatlas-base-dev
apt-get install python-dev
apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

下載Caffe源碼:
git clone https://github.com/bvlc/caffe.git
cd caffe/
mv Makefile.config.example Makefile.config

修改Makefile.config:
vi Makefile.config
如果電腦上沒有gpu,需要把其中的CPU_ONLY打開,就是去掉註釋。
下面這個是vi的一些操作指令,本人新手,所以想新手都可能會用到。
http://www.cnblogs.com/88999660/articles/1581524.html

編譯Caffe:
make -j
對了,本人一開始用的電腦比較舊多線程貌似不支持,編譯就用的是
make all

如果只是在CPU上運行,到這裏就結束了,下面是我自己遇到的一些問題和解決

nccl安裝

有很多教程是在caffe安裝之前做這部的,但是我說了,我之前的caffe是已經裝好的CPU版的,所以之後想改,就自己找了資料,進行修改了。因爲用的是多GPU的服務器,肯定要並行運算啊,不然要那麼多GPU幹嘛?所以要並行就要安裝nccl,不然是不行的。
安裝步驟:

git clone https://github.com/NVIDIA/nccl.git
cd nccl
sudo make install -j4
NCCL 庫和文件頭將安裝在 /usr/local/lib 和 /usr/local/include 中。

重新編譯caffe

之前說了,很多教程是在編譯caffe之前安裝nccl的,爲什麼呢,因爲修改了Makefile.config啊!!
因爲要進行並行使用,所以在Makefile.config中要把USE_NCCL=1前面的註釋去掉,同樣使用vi命令啦。
usenccl具體的位置
這樣修改保存後,接下來就是重新編譯caffe了。
首先,是將之前的clean掉了,輸入:
make clean
然後,重新編譯:
make -j

並行計算和調試錯誤

到這裏之後,我就試着使用:
./build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt -gpu all

進行測試啦,結果果然出錯了。。。。。
具體的錯誤就是:
error while loading shared libraries: libnccl.so.1: cannot open shared object file: No such file or directory
說是沒有這個文件,我又開始搜啊搜。。。
結果是在一篇博客找到解決方案:
具體的原因說是:但執行需要調用該共享庫的程序的時候, 程序按照默認共享庫路徑找不到該共享庫文件。
方法很簡單,就是用root賬戶執行下:
ldconfig
這個命令,就好了,對了,第一個是L的小寫,不是i的大寫哦。
對了,這個博客地址是:
http://www.cnblogs.com/Anker/p/3209876.html
有興趣可以看看的。

我解決好這個問題後又開心的執行上面的:
./build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt -gpu all
結果就是又出錯了啊!!!錯誤就是下面這個:

Check failed: result == ncclSuccess (1 vs. 0) unhandled cuda error

大概看了一下,意思就是nccl沒有成功,我沒有再上網亂搜,而是想起來之前看的GPU服務器的介紹,想起來我這臺服務器上有9塊GPU,但實際上只有8塊是真的能使用的,另一塊是服務器自己的用來顯示什麼的一些其他功能的,所以我就想是不是那塊的原因,於是我就修改了下命令:
./build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt -gpu 0,1,2

這裏寫圖片描述
這次終於沒有出錯,開始了它該做的事情。
(所以大家做事要耐心。。。)

隨便說些

其實我就是個新手,就是蒐集了些資料,想方便自己,也方便別人看看,如果有人看得到的話。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章