VS调试问题

在VS里面调试.cu文件时用到了原子操作函数但却说没有定义atomicAdd,如果用命令行时输入的是-arch=sm_11;在VS里面调试时该怎么做呢?

你的atomicAdd输入数据是什么类型?不同的Compute Capability支持的输入类型不同。你可以对照programmin guide 中表格“Table 9 Feature Support per Compute Capability”查看你的显卡是否支持你所用的atomicAdd.

LZ您好,您可以在下面的链接处找到在VS2010和VS2008中如何设置 GPU Architecture。

http://cudazone.nvidia.cn/forum/forum.php?mod=viewthread&tid=6423&extra=page%3D1&page=2

关于原子操作的事宜,请参照2# zehuanwang 大的说法,并参看programming guide。

祝您编码顺利~

或许是楼主用atomicAdd进行了浮点数的操作,而此操作在计算能力低于2.0以下的设备是不支持的!

系统说的是未定义!不是类型的问题!

[attach]2984[/attach]
如果你在低于2.0计算能力的设备上使用atomicAdd对浮点数进行原子操作,那么编译结果就是atomicAdd无定义。

[attach]2985[/attach]
作为对比,我再把编译选项修改成2.0,那么编译无任何问题!此外还要注意你的设备是否支持2.x以上的计算能力!

真的非常感谢版主的解答!问题解决了