1. 程式人生 > >叢集管理——(6)caffe多片gpu nccl配置

叢集管理——(6)caffe多片gpu nccl配置

NCCL是Nvidia Collective multi-GPU Communication Library的簡稱,它是一個實現多GPU的collective communication通訊(all-gather, reduce, broadcast)庫,Nvidia做了很多優化,以在PCIe、Nvlink、InfiniBand上實現較高的通訊速度。
之前我們使用digits5的時候可以採用多片卡協同工作,但是後來發現那個並沒有多大的使用價值(除了演示),於是自己配置我們的caffe.我們採用了八片NVIDIA顯示卡,是支援NCCL的型別(中低端顯示卡不支援這個,NVIDIA官網列出來的),之前在編譯CAFFE的時候並沒有開通USE_NCCL=1的選項,現在我開始配置NCCL來充分利用多塊顯示卡的優勢。
網上資料並不全,需要自己慢慢摸索:

一:準備上手nccl2(最好cuda9.0以上!!!)
nvidia官方說明:http://docs.nvidia.com/deeplearning/sdk/nccl-install-guide/index.html#down
nvidia官方nccl下載地址:https://developer.nvidia.com/nccl/nccl-download
其中兩個deb檔案和一個txz檔案都需要登入NVIDIA並且填寫反饋表才能下載。。。。。
不想填寫的話就從百度網盤下吧:
http://pan.baidu.com/s/1i5aO0qL h2sc
把三個檔案都下載到電腦,然後解壓sudo dpkg -i xxxx.deb\xxx.deb
更新 # sudo apt update
安裝 libnccl-dev的 包:
#sudo apt-get install libnccl2 libnccl-dev
把txz檔案移動到/usr/local下解壓
# cd /usr/local
#tar xvf nccl.xxxxxxx.txz
然而發現我的cuda是8.0的不支援這個nccl2,果斷棄坑

二:安裝nccl(1)
特別注意:還有如果gcc版本太低,會出現編譯錯誤,gcc需要最低版本4.8。
我就是從4.7升級到了4.8:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
gcc –version
g++ –version
還是老老實實的安裝nccl1,支援cuda6.5以上版本(本機使用的是cuda8.0+cudnn v6)。
1.首先下載nccl:
cd /usr/local
wget

https://github.com/NVIDIA/nccl/archive/master.zip
2.解壓:
sudo unzip master.zip
cd nccl-master/
3.安裝:
sudo make CUDA_HOME=/usr/local/cuda-8.0/ test (按照自己的cuda地址)
make install (加sudo的話報錯了,不加的話連結正常)

重新make caffe吧,然後就可以開啟並行訓練了!!!!
只需要在Makefile.comfig檔案中把use_nccl=1的註釋去掉,然後在/caffe/目錄下

sudo make clean  
make all -j20  
make pycaffe -j20  
make test -j20

sudo make -j20 runtest # take long time
sudo make py
sudo make distribute

然後就可以正常使用了。