CUDA_架构¶
在 3.18 版本加入.
为其生成设备代码的体系结构列表。
架构可以加上“-real”或“-virtual”作为后缀,以指定要为其生成代码的架构类型。如果没有给出后缀,则会为真实和虚拟架构生成代码。
非空的假值(例如 OFF)禁止添加架构。这是为了支持打包程序和需要完全控制传递的标志的罕见情况。
如果在创建目标时设置了此属性,则该属性由 CMAKE_CUDA_ARCHITECTURES 变量的值初始化。
CUDA_ARCHITECTURES 目标属性必须在编译 CUDA 源代码的目标上设置为非空值,否则它是一个错误。请参阅政策:policy:CMP0104。
CUDA_ARCHITECTURES 可以设置为以下特殊值之一:
全部在 3.23 版本加入.
编译所有支持的主要和次要真实架构,以及最高的主要虚拟架构。
所有主要在 3.23 版本加入.
为所有支持的主要真实架构和最高的主要虚拟架构编译。
原生在 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 不会将任何架构标志传递给编译器。