在不断得到之后error : identifier "atomicAdd" is undefined
,我找到了使用-arch sm_20
flag编译的解决方案。但是如何在 VS 2010 中传递这个编译器标志呢?我在下面这样尝试过Project > Properties
:
但这显然没有效果并且错误仍然存在 - 我做错了什么?
非常感谢。
在不断得到之后error : identifier "atomicAdd" is undefined
,我找到了使用-arch sm_20
flag编译的解决方案。但是如何在 VS 2010 中传递这个编译器标志呢?我在下面这样尝试过Project > Properties
:
但这显然没有效果并且错误仍然存在 - 我做错了什么?
非常感谢。
您可以在此对话框中选择 GPU 代码生成的选项:
在这种情况下,“compute_20”表示我正在为虚拟计算架构 2.0 进行编译 - 虚拟架构会影响 PTX 生成阶段。
昏迷之后的第二部分是“sm_21”。这会影响 CUBIN 生成阶段。它定义了我想要将 PTX 编译到的真实 GPU 架构。
您可以在此处找到控制代码生成的 nvcc 命令行参数的详细说明。
转到“CUDA C/C++”下的“设备”部分。在那里,在“代码生成”中,您可以指定您的sm_20
. 不需要-arch
.
请注意,项目和 .cu 文件都有单独的属性。显然它们在编译之前被合并。
我试图为计算 3.0 和更高版本指定 GPU,但 .cu 属性对 1.0 和 2.0 有一些剩余规范