/arch
(x64)
在 x64 上,為程式碼產生指定架構。 如需其他目標架構的詳細資訊 /arch
,請參閱 /arch
(x86) 、 /arch
(ARM64) 和 /arch
(ARM) 。
語法
/arch:
[AVX
|AVX2
|AVX512
]
引數
/arch:AVX
啟用 Intel Advanced Vector Extensions 指令的使用。
/arch:AVX2
啟用 Intel Advanced Vector Extensions 2 指令的使用。
/arch:AVX512
啟用 Intel 進階向量延伸模組 512 指示的使用。
備註
此選項 /arch
可讓您使用特定指令集延伸模組,特別是用於 Intel 和 AMD 處理器中提供的向量計算。 一般而言,最近引進的處理器可能會支援超過舊處理器所支援之延伸模組,不過您應該先參閱特定處理器的檔,或先測試指令集延伸模組支援 __cpuid
的檔,再使用指令集延伸模組執行程式碼。
/arch
只會影響原生函式的程式碼產生。 當您使用 /clr
來編譯時, /arch
對 Managed 函式的程式碼產生沒有任何影響。
處理器延伸模組具有下列特性:
預設模式會使用 SSE2 指示進行純量浮點數和向量計算。 這些指令允許使用單精確度、雙精確度和 1、2、4 或 8 位元組整數值的 128 位向量計算,以及單精確度和雙精確度純量浮點數。
AVX
引進了向量和浮點純量指令的替代指令編碼。 它允許 128 位或 256 位的向量,而零會將所有向量結果延伸至完整向量大小。 (針對舊版相容性,SSE 樣式向量指令會保留位 127 以外的所有位。大部分的浮點運算都會延伸至 256 位。AVX2
將大部分的整數作業延伸至 256 位向量,並可讓您使用 Fused Multiply-Add (FMA) 指示。AVX-512
引進了另一種指令編碼形式,允許 512 位向量,以及某些其他選擇性功能。 也會新增其他作業的指示。
每個 /arch
選項也可以啟用使用與該選項相關聯的其他非向量指令。 例如,指定時 /arch:AVX2
會使用特定 BMI 指示。
指定 __AVX__
或 /arch:AVX2
/arch:AVX512
編譯器選項時 /arch:AVX
,會定義預處理器符號。 指定 __AVX2__
或 /arch:AVX512
編譯器選項時 /arch:AVX2
,會定義預處理器符號。 指定編譯 __AVX512F__
程式選項時 /arch:AVX512
,會定義 、 __AVX512CD__
__AVX512BW__
、 __AVX512DQ__
和 __AVX512VL__
預處理器符號。 如需詳細資訊,請參閱 預先定義的宏 。 此選項 /arch:AVX2
已在 Visual Studio 2013 Update 2 12.0.34567.1 版中引進。 Visual Studio 2017 已新增有限的支援 /arch:AVX512
,並在 Visual Studio 2019 中擴充。
在 Visual Studio 中設定 /arch:AVX
、 /arch:AVX2
或 /arch:AVX512
編譯器選項
開啟專案的 [ 屬性頁 ] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [ 組態屬性 > C/C++ > 程式碼產生 ] 屬性頁。
在 [ 啟用增強指令集 ] 下拉式方塊中,選擇 [進階向量延伸模組](/arch:AVX) 、 [進階向量延伸模組 2] (/arch:AVX2) 或 [進階向量延伸模組 512] (/arch:AVX512)。
若要以程式方式設定這個編譯器選項
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應