CUDA_ARCHITECTURES¶
在版本 3.18 中加入。
產生裝置程式碼的架構列表。
架構可以附加 -real
或 -virtual
後綴,以指定要產生的程式碼架構種類。如果沒有給定後綴,則會為真實和虛擬架構產生程式碼。
非空的 false 值 (例如 OFF
) 會停用加入架構。這旨在支援封裝者和需要完全控制傳遞旗標的罕見情況。
此屬性由 CMAKE_CUDA_ARCHITECTURES
變數的值初始化,如果該變數在建立目標時已設定。
在編譯 CUDA 原始碼的目標上,CUDA_ARCHITECTURES
目標屬性必須設定為非空值,否則會發生錯誤。請參閱政策 CMP0104
。
CUDA_ARCHITECTURES
可能設定為以下特殊值之一
all
在版本 3.23 中加入。
為所有支援的主要和次要真實架構,以及最高主要虛擬架構編譯。
all-major
在版本 3.23 中加入。
為所有支援的主要真實架構,以及最高主要虛擬架構編譯。
native
在版本 3.24 中加入。
為 host 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 將不會傳遞任何架構旗標給編譯器。