2016-04-15 46 views
-1

我已经安装在Ubuntu cudnn和CUDA,我来自Caffe错误化妆测试

make all -j4

的朱古力主目录下,它通过很好。但是当我

​​

它表明:

CXX src/caffe/test/test_im2col_layer.cpp 
In file included from ./include/caffe/util/device_alternate.hpp:40:0, 
       from ./include/caffe/common.hpp:19, 
       from ./include/caffe/blob.hpp:8, 
       from src/caffe/test/test_im2col_layer.cpp:5: 
./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:127: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:15: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 ./include/caffe/blob.hpp:8, 
       from src/caffe/test/test_im2col_layer.cpp:5: 
/usr/local/cuda/include/cudnn.h:799:27: note: declared here 
cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor(
         ^
Makefile:572: recipe for target '.build_release/src/caffe/test/test_im2col_layer.o' failed 
make: *** [.build_release/src/caffe/test/test_im2col_layer.o] Error 1 

我安装cudnn的最新版本(cudnn V5库Linux)和CUDA(CUDA 7.5)。任何人都可以告诉我如何解决这个问题?非常感谢!

回答

1

请注意,最新的Caffe(2016年11月8日)声明它支持CUDA 7+。

我仍然需要解决这个问题,因为我正在使用更早的caffe链接到更快的rcnn github回购。我将它升级为支持CUDNN 5和CUDA 8.请注意,我不是Caffe专家,但是在成功完成编译后,所有测试都能成功运行。

对于其签名似乎已经改变的方法,我发现还有_v3和_v4等价物(对我来说,我看了一下/usr/local/cuda/include/cudnn.h)。我改变了这一切是失败

从方法: CUDNN_CHECK(cudnnSetPooling2dDescriptor(* pool_desc,*模式,H,W,

TO: CUDNN_CHECK(cudnnSetPooling2dDescriptor _v3(* pool_desc,*模式,H, W, 4 SRC /朱古力/层/ cudnn_conv_layer.cu

我需要做类似的事情在下列文件:

  1. 的src /朱古力/ Laye的RS/cudnn_sigmoid_layer.cu
  2. 的src /朱古力/层/ cudnn_relu_layer.cu
  3. 的src /朱古力/层/ cudnn_conv_layer.cu
  4. 的src /朱古力/层/ cudnn_tanh_layer.cu

希望帮助对你也是!

+0

你可以展示你的cudnn_conv_layer.cu的第33行看起来像什么吗?在不改变任何东西的情况下,我会在这行上遇到不兼容的参数错误,并且当我向cudnnAddTensor添加“_v1”,“_v2”,“_v3”,“_v4”或“_v5”时,我会得到:'src/caffe/layers/cudnn_conv_layer。 cu(33):错误:标识符“cudnnAddTensor_v5”未定义 – dimpol

0

尝试make cleanmake allmake testmake runtest。如果您有权限错误,请使用sudo