本机配置cuda8.0使用的cudnn是下面要说的重点,vs2015,win10,1080Ti

下载了开源项目:https://github.com/senlinuc/caffe_ocr

编译的时候报错:caffe_ocr-master/src/caffe/layers/DenseBlock_layer.cu(283): error : too many arguments in function call

调用的地方:

 CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*convBC_Descriptor, 0, 0, 1, 1, 1, 1, CUDNN_CONVOLUTION, cudnn::dataType<Dtype>::type)); 

函数定义:

1 cudnnStatus_t CUDNNWINAPI cudnnSetConvolution2dDescriptor(
2                                 cudnnConvolutionDescriptor_t        convDesc,
3                                 int                                 pad_h,    // zero-padding height
4                                 int                                 pad_w,    // zero-padding width
5                                 int                                 u,        // vertical filter stride
6                                 int                                 v,        // horizontal filter stride
7                                 int                                 upscalex, // upscale the input in x-direction
8                                 int                                 upscaley, // upscale the input in y-direction
9                                 cudnnConvolutionMode_t              mode );

上面这个函数是在cudnn.h中定义的,而cudnn不是和cuda一起安装的,所以问题就是cudnn版本不对,cuda8.0支持的cudnn版本不止一个。

cudnn-v5.就是不匹配的那个,换成cudnn-v7就没有问题了。

02-10 16:16