naibaf7 / caffe

Caffe: a fast open framework for deep learning. With OpenCL and CUDA support.
http://caffe.berkeleyvision.org/
Other
86 stars 20 forks source link

build fails with cuDNN #19

Closed pkainz closed 8 years ago

pkainz commented 8 years ago

Hi,

just tried to compile with cuDNN support (in Makefile.config USE_CUDNN := 1, USE_GREENTEA := 0) and the build failed with the following error message:

In file included from ./include/caffe/layers/cudnn_conv_layer.hpp:13:0,
                 from src/caffe/layers/cudnn_conv_layer.cpp:5:
./include/caffe/util/cudnn.hpp: In instantiation of ‘void caffe::cudnn::setConvolutionDesc(cudnnConvolutionStruct**, cudnnTensorDescriptor_t, cudnnFilterDescriptor_t, int32_t, const int32_t*, const int32_t*) [with Dtype = float; cudnnConvolutionDescriptor_t = cudnnConvolutionStruct*; cudnnTensorDescriptor_t = cudnnTensorStruct*; cudnnFilterDescriptor_t = cudnnFilterStruct*; int32_t = int]’:
src/caffe/layers/cudnn_conv_layer.cpp:157:69:   required from ‘void caffe::CuDNNConvolutionLayer<Dtype>::Reshape(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&) [with Dtype = float]’
src/caffe/layers/cudnn_conv_layer.cpp:298:1:   required from here
./include/caffe/util/cudnn.hpp:199:30: error: too many arguments to function ‘cudnnStatus_t cudnnSetConvolutionNdDescriptor(cudnnConvolutionDescriptor_t, int, const int*, const int*, const int*, cudnnConvolutionMode_t)’
         dataType<Dtype>::type));
                              ^
./include/caffe/util/cudnn.hpp:18:28: note: in definition of macro ‘CUDNN_CHECK’
     cudnnStatus_t status = condition; \
                            ^
In file included from ./include/caffe/util/cudnn.hpp:5:0,
                 from ./include/caffe/layers/cudnn_conv_layer.hpp:13,
                 from src/caffe/layers/cudnn_conv_layer.cpp:5:
/usr/local/cuda/include/cudnn.h:350:27: note: declared here
 cudnnStatus_t CUDNNWINAPI cudnnSetConvolutionNdDescriptor( cudnnConvolutionDescriptor_t convDesc,
                           ^
In file included from ./include/caffe/layers/cudnn_conv_layer.hpp:13:0,
                 from src/caffe/layers/cudnn_conv_layer.cpp:5:
./include/caffe/util/cudnn.hpp: In instantiation of ‘void caffe::cudnn::setConvolutionDesc(cudnnConvolutionStruct**, cudnnTensorDescriptor_t, cudnnFilterDescriptor_t, int32_t, const int32_t*, const int32_t*) [with Dtype = double; cudnnConvolutionDescriptor_t = cudnnConvolutionStruct*; cudnnTensorDescriptor_t = cudnnTensorStruct*; cudnnFilterDescriptor_t = cudnnFilterStruct*; int32_t = int]’:
src/caffe/layers/cudnn_conv_layer.cpp:157:69:   required from ‘void caffe::CuDNNConvolutionLayer<Dtype>::Reshape(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&) [with Dtype = double]’
src/caffe/layers/cudnn_conv_layer.cpp:298:1:   required from here
./include/caffe/util/cudnn.hpp:199:30: error: too many arguments to function ‘cudnnStatus_t cudnnSetConvolutionNdDescriptor(cudnnConvolutionDescriptor_t, int, const int*, const int*, const int*, cudnnConvolutionMode_t)’
         dataType<Dtype>::type));
                              ^
./include/caffe/util/cudnn.hpp:18:28: note: in definition of macro ‘CUDNN_CHECK’
     cudnnStatus_t status = condition; \
                            ^
In file included from ./include/caffe/util/cudnn.hpp:5:0,
                 from ./include/caffe/layers/cudnn_conv_layer.hpp:13,
                 from src/caffe/layers/cudnn_conv_layer.cpp:5:
/usr/local/cuda/include/cudnn.h:350:27: note: declared here
 cudnnStatus_t CUDNNWINAPI cudnnSetConvolutionNdDescriptor( cudnnConvolutionDescriptor_t convDesc,
                           ^
make: *** [.build_release/src/caffe/layers/cudnn_conv_layer.o] Error 1

As a reference, I compiled the bvlc/caffe version with the same flags, and the build as well as all tests pass. Do you have any hints what could cause that behaviour?
I opened another issue (maybe related, #18), where compilation without cuDNN works but a specific test is failing.

Cheers, Phil

naibaf7 commented 8 years ago

@pkainz You need to upgrade the cuDNN library to Version 4.

Regards Fabian

pkainz commented 8 years ago

@naibaf7 Works perfectly, thanks!

Quick follow-up: Is there an installation instruction guide somewhere stating required versions?

Cheers