最新的caffe,增加了一个nccl的模块,用于支持多个GPU的运行。只需要在终端的 -gpu 参数加入0,1,2,3
配置环境:Ubuntu14.04 Mate + CUDA8.0 +NVIDIA1080Ti (X2) + matlab2015a +caffe(最新版)
需要安装NCCL
$ git clone https://github.com/NVIDIA/nccl.git
$ cd nccl
$ sudo make install -j4
只需要然后在caffe 的config文件中注释去掉USE_NCCL := 1即可编译。
如果中途出现一些问题,可能原因可以去NCCL的github论坛里面找,还有如果gcc版本太低,也会出现编译错误,gcc需要最低版本4.8。
官方的多GPU的caffe编译成功。
接下来是做分割的Segnet网络的多GPU编译及其使用。
首先原来剑桥大学源码Segnet,https://github.com/alexgkendall
不支持多个GPU训练,很坑爹,batchsize只能设置为4,(480x360)。
然后下载https://github.com/developmentseed/caffe/tree/segnet-multi-gpu
接下来就是编译,其他按照标准的caffe教程安装。
如有想了解中间修改过程的可以参考:
https://github.com/developmentseed/caffe/commits/segnet-multi-gpu
由于protobuf最近更新至3.x版本,所以更新过protobuf版本的同学一定要用2.6以上的版本,3.x以下的版本。
如果电脑配置比较好,然后想编译快一点的话,你用了
$make -j128
命令的话,会下面的错误,只要用make -j8就可以。
compilation terminated.
The bug is not reproducible, so it is likely a hardware or OS problem.
make: *** [.build_release/src/caffe/util/signal_handler.o] Error 1
make: *** Waiting for unfinished jobs....
最后就可以顺利编译完成。
来源:oschina
链接:https://my.oschina.net/u/4395566/blog/3216393