5

在不断得到之后error : identifier "atomicAdd" is undefined,我找到了使用-arch sm_20flag编译的解决方案。但是如何在 VS 2010 中传递这个编译器标志呢?我在下面这样尝试过Project > Properties

在此处输入图像描述

但这显然没有效果并且错误仍然存​​在 - 我做错了什么?

非常感谢。

4

3 回答 3

15

您可以在此对话框中选择 GPU 代码生成的选项:

GPU 代码生成

在这种情况下,“compute_20”表示我正在为虚拟计算架构 2.0 进行编译 - 虚拟架构会影响 PTX 生成阶段。

昏迷之后的第二部分是“sm_21”。这会影响 CUBIN 生成阶段。它定义了我想要将 PTX 编译到的真实 GPU 架构。

您可以在此处找到控制代码生成的 nvcc 命令行参数的详细说明。

于 2013-01-19T10:28:27.100 回答
2

转到“CUDA C/C++”下的“设备”部分。在那里,在“代码生成”中,您可以指定您的sm_20. 不需要-arch.

于 2013-01-19T08:27:34.377 回答
2

请注意,项目和 .cu 文件都有单独的属性。显然它们在编译之前被合并。

我试图为计算 3.0 和更高版本指定 GPU,但 .cu 属性对 1.0 和 2.0 有一些剩余规范

于 2014-05-21T14:26:42.237 回答