CUDA_ARCHITECTURES

3.18 版本中添加。

要为其生成设备代码的架构列表。

架构可以后缀 -real-virtual 来指定要为其生成代码的架构的类型。如果没有给出后缀,则为真实架构和虚拟架构生成代码。

非空错误值(例如,OFF)禁用添加架构。目的是支持打包者并支持需要完全控制传递标志的极少数情况。

在创建目标时,此属性会由变量 CMAKE_CUDA_ARCHITECTURES 的值初始化(如果该变量在创建目标时已设置)。

编译 CUDA 源的 target 的 CUDA_ARCHITECTURES target 属性必须被设置为非空值,否则为错误。参见策略 CMP0104

可将 CUDA_ARCHITECTURES 设置为以下特定值之一

all

3.23 版本中添加。

为所有受支持的主要和次要真实架构以及最高的虚拟架构进行编译。

all-major

3.23 版本中添加。

为所有受支持的主要真实架构以及最高的虚拟架构进行编译。

native

3.24 版本中添加。

为主机 GPU 的架构编译。

示例

set_target_properties(tgt PROPERTIES CUDA_ARCHITECTURES "35;50;72")

为真实架构和虚拟架构生成代码 305072

set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)

为真实架构 70 和虚拟架构 72 生成代码。

set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES OFF)

CMake 不会向编译器传递任何架构标志。