【问题标题】:How to set CUDA compiler flags in Visual Studio 2010?如何在 Visual Studio 2010 中设置 CUDA 编译器标志?
【发布时间】:2013-01-02 21:38:46
【问题描述】:
在不断获得error : identifier "atomicAdd" is undefined 之后,我找到了使用-arch sm_20 标志进行编译的解决方案。但是如何在 VS 2010 中传递这个编译器标志呢?我在Project > Properties下试过这样:
但这显然没有效果并且错误仍然存在 - 我做错了什么?
非常感谢。
【问题讨论】:
标签:
visual-studio-2010
cuda
compiler-flags
【解决方案1】:
您可以在此对话框中选择 GPU 代码生成选项:
在这种情况下,“compute_20”表示我正在为虚拟计算架构 2.0 进行编译 - 虚拟架构会影响 PTX 生成阶段。
coma 之后的第二部分是“sm_21”。这会影响 CUBIN 生成阶段。它定义了我想要将 PTX 编译到的真实 GPU 架构。
您可以找到控制代码生成的 nvcc 命令行参数的详细说明here。
【解决方案2】:
转到“CUDA C/C++”下的“设备”部分。在那里,您可以在“代码生成”中指定您的sm_20。不需要-arch。
【解决方案3】:
请注意,项目和 .cu 文件都有不同的属性。显然它们在编译之前就被合并了。
我试图为计算 3.0 和更高版本指定 GPU,但 .cu 属性有一些针对 1.0 和 2.0 的剩余规范