发现NVCC编译器一个CUDA函数添加注释支持的问题

部署运行你感兴趣的模型镜像
 

文章原创,转载请注明链接

  

这两天测试一个程序时,在.cu文件中加上了一些注释结果编译后运行却提示这样的错误:

 

经过费劲的把加了注释的程序与源程序分步替换的方式,终于找到问题所在:

    cutilSafeCall(cudaMalloc( (void**) &d_gaussian,//分配内存

        (2 * radius + 1)* sizeof(float)));

就上面那段中的绿色的注释导致的,将其去掉之后程序就能正常运行了。这个也太奇怪了,为了验证这个问题,同样将另外一个函数的括号内分行然后加上注释:、

    cutilSafeCall( cudaBindTextureToArray( gaussianTex, //纹理参考系

              d_gaussianArray, channelDesc));

结果程序能够运行但是是错误的运行。 后来又测试了一下即使将上面的注释换成英文注释,也还是一样的问题。由此可见nvcc编译器将这部分注释也当做代码(输入形参)编译了,对于注释的处理并不能像其他如VC的编译器那样准确的识别注释。因而在编写程序的时候尽量不要将CUDA中的函数参数列表中间分行插入注释,以免造成不可预知的结果和错误。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值