caffe缺少NCCL库导致不能多GPU训练问题(改makefile版)

最近用caffe多GPU联调时遇到问题,如果正常用caffe的多gpu训练而不加初始化模型,末尾加--gpu=0,1,不会有问题;然而当用pretrained模型finetune网络时,如--weights=xxx.caffemodel,则会报如下错误:
Multi-GPU execution not available - rebuild with USE_NCCL
提示nccl没有安装,于是百度了一下,需要下载nccl源码安装,然后就是修改caffe的编译选项。由于我用的make编译的,需要该2个地方:
1.在Makefile.config文件中加

USE_NCCL := 1
INCLUDE_DIRS += /home/xd133/nccl/build/include
LIBRARY_DIRS += /home/xd133/nccl/build/lib

2.在Makefile中加

ifeq ($(USE_NCCL), 1)
    LIBRARIES += nccl
    COMMON_FLAGS += -DUSE_NCCL
endif

同时需要该链接库的路径:

打开.bashrc文件
sudo gedit ~/.bashrc
末尾加入:
export LD_LIBRARY_PATH=/home/xd133/nccl/build/lib:$LD_LIBRARY_PATH
关闭,执行下面命令使其生效
source ~/.bashrc

最后,重新编译以下caffe就可以多gpu finetune了。

sudo make clean
sudo make all -j

你可能感兴趣的:(caffe,深度学习)