【CUDA开发】 Check failed: error == cudaSuccess (8 vs. 0) invalid device function

最近在复现R-CNN一系列的实验时,配置代码环境真是花费了不少时间。由于对MATLAB不熟悉,实验采用的都是github上rbg大神的Python版本。在配置Faster R-CNN时,编译没有问题,一运行 ./tools/demo.py --net zf  就会出现如下错误:


<span style="font-size:14px;">Loaded network ./data/faster_rcnn_models/ZF_faster_rcnn_final.caffemodel    
F1008  roi_pooling_layer.cu:91] Check failed: error == cudaSuccess (8 vs. 0) invalid device function    
*** Check failure stack trace: ***  </span>  


但是采用CPU mode运行时可以成功。

最后在https://github.com/rbgirshick/py-faster-rcnn/issues/2 找到了我想要的答案,有兴趣的可以慢慢阅读。

不想看的话,就直接按照我下面的方式修改。

一般情况下都是因为显卡的计算能力不同而导致的,修改 py-faster-rcnn/lib/setup.py 的第135行,将arch改为与你显卡相匹配的数值,(比如我的GTX 760,计算能力是3.0,就将sm_35改成了sm_30)然后删除utils/bbox.c,nms/cpu_nms.c ,nms/gpu_nms.cpp 重新编译即可


我看到有些人说还有其他的问题,那么可以在最开始的makefile.config文件中就开始修改,不过我没有试过,具体步骤如下


  1. <span style="font-size:14px;">As below, there is my solution (thress steps):    
  2. 1 if you're using the GPU instance on AWS, then please change the architecture setting into:    
  3. # CUDA architecture setting: going with all of them.    
  4. # For CUDA < 6.0, comment the *_50 lines for compatibility.    
  5. CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \    
  6. -gencode arch=compute_50,code=sm_50 \    
  7. -gencode arch=compute_50,code=compute_50    
  8. Because the GPU in AWS does not support compute_35    
  9. 2 I changed sm_35 into sm_30 in lib/setup.py file    
  10. 3 cd lib, remove these files: utils/bbox.c nms/cpu_nms.c nms/gpu_nms.cpp, if they exist.    
  11. And then make && cd ../caffe/ && make clean && make -j8 && make pycaffe -j8  </span>  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值