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")
为真实架构和虚拟架构生成代码 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 不会向编译器传递任何架构标志。