关于CUDA5之后cutil.h不可用的问题

用CUDA进行GPU加速开发的同学在移植一些代码片段时应该都有过这样的经历,如果自己用的是高版本的CUDA,系统有时会报错:CANNOT FIND CUTIL.H。查看代码才发现原来是多了CUTIL.H,CUTIL_MATH.H,CUTIL_INLINE.H的头文件。这种报错该如何处理呢?

可以先尝试着注释掉这三个头文件,再运行一下,看看到底是哪里调用到。不出意外的话,系统弹出的error总是CUDA_SAFE_CALL。这也是CUTIL.H用的最多的地方。

查阅NVIDIA技术文档,便可以对这个错误的前因后果有个详细的了解。NVIDIA公司在CUDA5之后便不再使用CUTIL.H,之前使用也只是开发示例代码的团队自用,并不具备在新版本中兼容的功能。CUTIL.H的包含着NV的工程师为了编写方便而使用的宏和函数。想要调用,可以下载CUTIL.H,将它放到CUDA的INCLUDE目录下即可。

但我并不建议这么做。高版本的CUDA淘汰掉CUTIL.H是有自己理由的。那么,鉴于在使用老版本CUDA代码段时会经常碰到CUTIL.H,如何去做?

首先是注释掉头文件中与CUTIL.H有关的内容。然后尝试编译发现出错的位置,一般会指出该头文件的内置宏和函数,然后用新版本中的函数替代即可。如CUDA_SAFE_CALL这一cudaMalloc()的保障机制,便可以用cudaError来替代。CUTIL.H中的函数在新版本中总有替代的东西,这一点不必担心。

当然了,最后不要忘了在Makefile里把include里的-l 里的CUTIL X86去掉。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值