原子函数使用的问题

请问为什么我使用原子函数时,总是说这个函数未定义,原子函数的头文件是哪个啊

我的显卡计算能力3.0.按照网上的做法,还是实现不了

LZ您好:

原子函数可以直接使用,但是根据CUDA C Programming Guide中B.11章节所述,需要从计算能力1.1版本的硬件才开始支持,硬件版本越高,支持特性越丰富,可用函数越多。详情请您参阅该手册。

如果您使用CUDA 5 Toolkit自带的VS模板建立的CUDA解决方案,那么默认编译配置中,含有对1.0版计算能力的硬件生成代码的编译参数,而1.0的硬件是不支持任何原子函数的,此时在生成解决方案的时候会提示原子函数是没有定义的,这就是您遇到的问题。

鉴于您的硬件应该不可能是1.0的计算能力,所以您只需要根据您的硬件,设置合理的编译参数,即可解决此问题。fermi(2.x的计算能力)就已经具备目前大部分的原子操作特性了。此外,SM3.5的硬件新提供了64-bit的整数and/or/xor/min/max的原子操作,您可以酌情选用。

此问题我已经在我的计算机上重现并解决,因此您应当可以如此解决您的问题。

祝您好运~


经横扫斑竹提醒,修改了部分不确切的说法,并对原说法加以补充。

LZ您好:

请您寻找“网上的做法”的作者,向其反馈这一问题,并询问进一步结果。

祝您好运~