使用原子Add with float参数

时间:2012-04-20 05:45:44

标签: cuda atomic

我需要使用原子函数 atomicAdd(float *地址,浮点值)。 我的视频卡支持计算能力2.1。 我已经读过使用atomicAdd进行具有计算能力2.1的gpu中的浮点运算,我们必须指定 sm_20 arch 。我正在使用Visual Studio 2010.我在Project-> Properties-> Configuration Properties-> CUDA C / C ++ - > Device中将“compute_10,sm_10”更改为“compute_20,sm_20”。 但我有错误:“没有重载函数的实例”atomicAdd“匹配参数列表”。 我可以看到在编译期间仍然使用arch sm_11。 我应该在哪里指定使用的架构。请帮帮我。

2 个答案:

答案 0 :(得分:0)

尝试右键单击.cu文件,打开首选项,然后查看设备设置是否已更改。

答案 1 :(得分:0)

在配置属性中,在CUDA C / C ++ - >设备下,您已经将代码生成设置为compute_20,sm_20(尽管如果您的GPU具有2.1的功能,您应该设置sm_21),但您还应该确保取消选中“从父项或项目默认继承”。

然后检查相关文件的属性是否未覆盖项目设置(基本上重复上述内容,但这次应检查“从父项或项目默认值继承”,并且不应有其他条目)。