__CUDA_ARCH__宏的行为

时间:2013-04-18 00:53:47

标签: cuda gpu nvidia

在主机代码中,似乎__CUDA_ARCH__宏不会生成不同的代码路径,相反,它会为当前设备生成完全代码路径的代码。

但是,如果__CUDA_ARCH__在设备代码中,它将为编译选项(/ arch)中指定的不同设备生成不同的代码路径。

任何人都可以确认这是正确的吗?

1 个答案:

答案 0 :(得分:7)

__CUDA_ARCH__在设备代码中使用时会带有一个定义的数字,反映当前正在编译的代码体系结构。

它不适用于主机代码。来自nvcc manual

  

此宏可用于实现GPU功能,以确定当前正在编译的虚拟体系结构。主机代码(非GPU代码)不得依赖它。

因此未定义主机代码中__CUDA_ARCH__的使用(至少是CUDA)。