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")
为真实和虚拟架构 30
、50
和 72
生成代码。
set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)
为真实架构 70
和虚拟架构 72
生成代码。
set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES OFF)
CMake 将不会向编译器传递任何架构标志。