1

我需要使用原子函数atomicAdd(float * adress, float value)。 我的显卡支持计算能力 2.1。我已经读到要在具有计算能力 2.1 的 gpu 中使用 atomicAdd 进行浮点运算,我们必须指定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。我应该在哪里指定使用的架构。请帮我。

4

2 回答 2

0

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

于 2012-04-20T06:24:32.383 回答
0

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

然后检查有问题的文件的属性是否覆盖了项目设置(基本上重复上面的步骤,但这次应该检查“从父级或项目默认值继承”并且应该没有其他条目)。

于 2012-04-20T10:04:57.427 回答