Problems building caffe with cudnn enabled

227 views
Skip to first unread message

Moruk

unread,
Nov 11, 2018, 6:30:17 PM11/11/18
to Caffe Users
Hello all.

I have Cuda 10 and cuDnn v6 and when I try to build caffe with make all I get the following issue:
Can anyone please help me on how to solve this problem?
I have enabled cudnn in my makefile.config

PROTOC src/caffe/proto/caffe.proto
CXX
.build_release/src/caffe/proto/caffe.pb.cc
CXX src
/caffe/syncedmem.cpp
In file included from ./include/caffe/util/device_alternate.hpp:40:0,
                 
from ./include/caffe/common.hpp:19,
                 
from src/caffe/syncedmem.cpp:3:
./include/caffe/util/cudnn.hpp: In function const char* cudnnGetErrorString(cudnnStatus_t)’:
./include/caffe/util/cudnn.hpp:18:10: warning: enumeration value CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING not handled in switch [-Wswitch]
   
switch (status) {
         
^
./include/caffe/util/cudnn.hpp: In function void caffe::cudnn::setConvolutionDesc(cudnnConvolutionStruct**, cudnnTensorDescriptor_t, cudnnFilterDescriptor_t, int, int, int, int)’:
./include/caffe/util/cudnn.hpp:105:70: error: too few arguments to function cudnnStatus_t cudnnSetConvolution2dDescriptor(cudnnConvolutionDescriptor_t, int, int, int, int, int, int, cudnnConvolutionMode_t, cudnnDataType_t)’
       pad_h
, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION));
                                                                     
^
./include/caffe/util/cudnn.hpp:12: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/util/device_alternate.hpp:40,
                 
from ./include/caffe/common.hpp:19,
                 
from src/caffe/syncedmem.cpp:3:
/usr/include/cudnn.h:500:27: note: declared here
 cudnnStatus_t CUDNNWINAPI cudnnSetConvolution2dDescriptor
( cudnnConvolutionDescriptor_t convDesc,
                           
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/caffe/util/device_alternate.hpp:40:0,
                 
from ./include/caffe/common.hpp:19,
                 
from src/caffe/syncedmem.cpp:3:
./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:124:41: error: too few arguments to function cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’
         pad_h
, pad_w, stride_h, stride_w));
                                         
^
./include/caffe/util/cudnn.hpp:12: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/util/device_alternate.hpp:40,
                 
from ./include/caffe/common.hpp:19,
                 
from src/caffe/syncedmem.cpp:3:
/usr/include/cudnn.h:952:27: note: declared here
 cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor
(
                           
^~~~~~~~~~~~~~~~~~~~~~~~~~~
Makefile:524: recipe for target '.build_release/src/caffe/syncedmem.o' failed
make
: *** [.build_release/src/caffe/syncedmem.o] Error 1



尚高星

unread,
Jul 2, 2020, 1:27:15 PM7/2/20
to Caffe Users
hello, Moruk:
have you already solved this issue? I have met the same problem when I build caffe with make all command. Could you teach me how to solve it?


在 2018年11月12日星期一 UTC+8上午7:30:17,Moruk写道:

Tamas Nemes

unread,
Jul 2, 2020, 2:51:48 PM7/2/20
to Caffe Users
This looks much like a compatibility issue.
If you look here:
You can see that cuDNN 6 is deprecated a long while ago, CUDA 10 is only compatible with cuDNN 7.6.5 which you can download there.

So try to upgrade your cuDNN version to match your CUDA version. After the installation, remember to start with a clean build by first doing make clean and then make all -j$(nproc). Also, remember to delete the old symlinks from cuda/lib64 because else Caffe gets confused which version to use. I was able to successfully compile Caffe with CUDA 10.2 and cuDNN 7.6.5.
If your problem still persists, please contact again!
Reply all
Reply to author
Forward
0 new messages