Linux ·

如何在py-faster-rcnn上使用最新的cuDNN v5加速库

最近,使用新采购的gtx1080显卡,需要使用cudnn-v5,但是在rbgirshick大神最初的py-faster-rcnn工程上,默认使用的是cudnn-v4,如果直接使用cudnn-v5编译faster rcnn里的caffe会报以下错误:

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/data_reader.cpp:6:
/usr/local/cuda/include/cudnn.h:799:27: note: declared here
 cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor(
如何在py-faster-rcnn上使用最新的cuDNN v5加速库 Linux 第1张

原因是在cudnn v5中修改了cudnnStatus_t CUDNNWINAPI cudnnActivationBackward等函数接口,而旧版的caffe中(例如faster rcnn里的caffe)仍然使用原来的调用方式。下面使用最新版本的caffe里面的部分文件对faster rcnn文件进行替换,具体方法如下:

cp caffe/inlude/caffe/layers/cudnn_* caffe-fast-rcnn/include/caffe/layers/
cp caffe/src/caffe/layers/cudnn_* caffe-fast-rcnn/src/caffe/layers/
cp caffe/include/caffe/util/cudnn.hpp caffe-fast-rcnn/include/caffe/util/
如何在py-faster-rcnn上使用最新的cuDNN v5加速库 Linux 第2张

按照这个修改后,就可以编译通过。
这里给出我修改好的py-faster-rcnn在github上的链接,不想亲自修改或者怕出错的可以直接下载。

参与评论