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 版本新增。
為主機 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 將不會傳遞任何架構標誌給編譯器。