When I compile caffe with NCCL, there are erross:
src/caffe/parallel.cpp: In instantiation of ‘void caffe::NCCL<Dtype>::Run(const std::vector&, const char*) [with Dtype = float]’:
src/caffe/parallel.cpp:372:1: required from here
src/caffe/parallel.cpp:343:5: error: no matching function for call to ‘caffe::Worker::StartInternalThread()’
w->StartInternalThread();
^
In file included from ./include/caffe/parallel.hpp:20:0,
from ./include/caffe/caffe.hpp:16,
from src/caffe/parallel.cpp:15:
./include/caffe/internal_thread.hpp:34:8: note: candidate: void caffe::InternalThread::StartInternalThread(caffe::device*)
void StartInternalThread(device* device_context);
^
./include/caffe/internal_thread.hpp:34:8: note: candidate expects 1 argument, 0 provided
src/caffe/parallel.cpp: In instantiation of ‘void caffe::NCCL<Dtype>::Run(const std::vector&, const char*) [with Dtype = double]’:
src/caffe/parallel.cpp:372:1: required from here
src/caffe/parallel.cpp:343:5: error: no matching function for call to ‘caffe::Worker::StartInternalThread()’
w->StartInternalThread();
^
In file included from ./include/caffe/parallel.hpp:20:0,
from ./include/caffe/caffe.hpp:16,
from src/caffe/parallel.cpp:15:
./include/caffe/internal_thread.hpp:34:8: note: candidate: void caffe::InternalThread::StartInternalThread(caffe::device*)
void StartInternalThread(device* device_context);
^
./include/caffe/internal_thread.hpp:34:8: note: candidate expects 1 argument, 0 provided
Makefile:717: recipe for target '.build_release/src/caffe/parallel.o' failed
make: *** [.build_release/src/caffe/parallel.o] Error 1
make: *** Waiting for unfinished jobs....
src/caffe/layer_factory.cpp: In function ‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetPoolingLayer(const caffe::LayerParameter&) [with Dtype = double]’:
src/caffe/layer_factory.cpp:251:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
src/caffe/layer_factory.cpp: In function ‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetPoolingLayer(const caffe::LayerParameter&) [with Dtype = float]’:
src/caffe/layer_factory.cpp:251:1: warning: control reaches end of non-void function [-Wreturn-type]
NCCL is currently unsupported in OpenCL Caffe. Single GPU only for both CUDA and OpenCL until a device unified solution is available.