CUDA_ARCHITECTURES

3.18 版本加入。

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

架构可以附加后缀 -real-virtual 来指定要生成的代码的架构类型。如果未提供后缀,则为真实架构和虚拟架构生成代码。

非空 false 值(例如 OFF)禁用添加架构。这旨在支持打包者以及需要完全控制传递标志的极少数情况。

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

CUDA_ARCHITECTURES 目标属性必须在编译 CUDA 源文件的目标上设置为非空值,否则将发生错误。请参阅策略 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 将不会向编译器传递任何架构标志。