2017-04-09 84 views
2

尝试使用多个gpus的caffe时遇到问题。执行以下命令时,出现以下错误日志显示:caffe中不提供多GPU训练

caffe train -solver $SOLVER -gpu 0,1 2>&1 | tee $LOGGING 

F0409 14:17:22.355074 12079 caffe.cpp:254] Multi-GPU execution not available - rebuild with USE_NCCL 
*** Check failure stack trace: *** 
    @  0x2aee66002b2d google::LogMessage::Fail() 
    @  0x2aee66004995 google::LogMessage::SendToLog() 
    @  0x2aee660026a9 google::LogMessage::Flush() 
    @  0x2aee6600542e google::LogMessageFatal::~LogMessageFatal() 
    @   0x40c172 train() 
    @   0x4084f3 main 
    @  0x2aee78f67b35 __libc_start_main 
    @   0x408f0b (unknown) 

任何人都可以解释这里有什么问题吗?有没有我不知道的咖啡错误?

+4

NCCL用于多GPU通信。您必须在makefile.config中启用'USE_NCCL:= 1'。然后重建。 – lnman

+0

你为什么要发表评论而不是回答这个问题?所以我不能给你任何信用。是的,我会尽力做到这一点! @Inman – thigi

+0

一些解决方案太短,无法作为答案。 @Inman做得很好,留下评论。 :-) – Prune

回答

1
  1. 安装CUDA
  2. 安装cuDNN
  3. 安装依赖

    $ sudo易于得到安装libprotobuf-dev的libleveldb-dev的libsnappy-dev的libopencv-dev的libhdf5串行-dev的protobuf的编译libgflags -dev libgoogle-出入记录-dev的liblmdb-dev的libatlas基-dev的混帐
    $ sudo易于得到安装--no安装,建议libboost-ALL-dev的

  4. 的Insta ll NCCL

NVIDIA NCCL需要在多个GPU上运行Caffe。 NCCL可以用下面的命令安装:

$ git clone https://github.com/NVIDIA/nccl.git 
$ cd nccl 
$ sudo make install -j 

NCCL库和头将被安装在/ usr/local/lib目录和/ usr /本地/包括。

  • 安装来自Caffe
  • 取消对线USE_CUDNN:= 1这使得cuDNN加速度。

    取消注释行USE_NCCL:= 1.这使NCCL能够在多个GPU上运行Caffe。

    保存并关闭文件。你现在准备编译Caffe。

    $ make all -j 
    

    当这个命令完成时,Caffe二进制文件将在build/tools/caffe中可用。