I am attempting to install caffe on an EC-2 g2.2xlarge instance with GPU support. Running ./deviceQuery from /usr/local/cuda/... returns Result = PASS. My version is 7.3.
Here's a link to my makefile.config.
And here's the output of make all:
PROTOC src/caffe/proto/caffe.proto
CXX .build_release/src/caffe/proto/caffe.pb.cc
CXX src/caffe/common.cpp
In file included from ./include/caffe/util/device_alternate.hpp:40:0,
from ./include/caffe/common.hpp:19,
from src/caffe/common.cpp:7:
./include/caffe/util/cudnn.hpp: In function ‘void caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)’:
./include/caffe/util/cudnn.hpp:136:9: error: ‘CUDNN_PROPAGATE_NAN’ was not declared in this scope
CUDNN_PROPAGATE_NAN, h, w, pad_h, pad_w, stride_h, stride_w));
^
./include/caffe/util/cudnn.hpp:15:28: note: in definition of macro ‘CUDNN_CHECK’
cudnnStatus_t status = condition; \
^
./include/caffe/util/cudnn.hpp:136:68: error: there are no arguments to ‘cudnnSetPooling2dDescriptor_v4’ that depend on a template parameter, so a declaration of ‘cudnnSetPooling2dDescriptor_v4’ must be available [-fpermissive]
CUDNN_PROPAGATE_NAN, h, w, pad_h, pad_w, stride_h, stride_w));
^
./include/caffe/util/cudnn.hpp:15:28: note: in definition of macro ‘CUDNN_CHECK’
cudnnStatus_t status = condition; \
^
./include/caffe/util/cudnn.hpp:136:68: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
CUDNN_PROPAGATE_NAN, h, w, pad_h, pad_w, stride_h, stride_w));
^
./include/caffe/util/cudnn.hpp:15:28: note: in definition of macro ‘CUDNN_CHECK’
cudnnStatus_t status = condition; \
^
./include/caffe/util/cudnn.hpp: At global scope:
./include/caffe/util/cudnn.hpp:141:40: error: variable or field ‘createActivationDescriptor’ declared void
inline void createActivationDescriptor(cudnnActivationDescriptor_t* activ_desc,
^
./include/caffe/util/cudnn.hpp:141:40: error: ‘cudnnActivationDescriptor_t’ was not declared in this scope
./include/caffe/util/cudnn.hpp:141:69: error: ‘activ_desc’ was not declared in this scope
inline void createActivationDescriptor(cudnnActivationDescriptor_t* activ_desc,
^
./include/caffe/util/cudnn.hpp:142:27: error: expected primary-expression before ‘mode’
cudnnActivationMode_t mode) {
^
make: *** [.build_release/src/caffe/common.o] Error 1
Did this exact same install a month ago with no issues. I'm wondering if updates made since then to the repo might be causing the problem, and how to troubleshoot it.
Cheers
You are probably using an older version of cuDNN (<=V3). The current master branch supports cuDNN V4 and V5.
Please ask installation questions on the mailing list. This looks more like a problem with your cuDNN library version than with caffe.
From https://github.com/BVLC/caffe/blob/master/CONTRIBUTING.md:
_Please do not post usage, installation, or modeling questions, or other requests for help to Issues._
Use the caffe-users list instead. This helps developers maintain a clear, uncluttered, and efficient view of the state of Caffe.
@seanbell: hadn't read the CONTRIBUTING best practices yet, thanks for setting me straight.
(and for anyone else who stumbles across this, the problem was related to the cuDNN version)
Glad you fixed it :)
Most helpful comment
You are probably using an older version of cuDNN (<=V3). The current master branch supports cuDNN V4 and V5.