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")

為真實和虛擬架構 305072 產生程式碼。

set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)

為真實架構 70 和虛擬架構 72 產生程式碼。

set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES OFF)

CMake 將不會傳遞任何架構標誌給編譯器。