共用方式為


/arch (x64)

在 x64 上,為程式碼產生指定架構。 如需其他目標架構的詳細資訊/arch,請參閱/arch (x86)/arch(ARM64)/arch (ARM) 。

語法

/arch:[SSE2AVX10.1|AVX512|||AVX2|SSE4.2AVX]

引數

/arch:SSE2
啟用 Intel 串流 SIMD 擴充功能 2。 如果未 /arch 指定任何選項,則預設指令集為 SSE2。

/arch:SSE4.2
啟用 Intel 串流 SIMD 擴充功能 4.2。

/arch:AVX
啟用 Intel 進階向量延伸模組。

/arch:AVX2
啟用 Intel 進階向量延伸模組 2。

/arch:AVX512
啟用 Intel 進階向量延伸模組 512。

/arch:AVX10.1
啟用 Intel 進階向量延伸模組 10 第 1 版。

備註

此選項 /arch 可讓您使用特定指令集延伸模組,特別是用於 Intel 和 AMD 處理器中提供的向量計算。 一般而言,最近引進的處理器可能會支援超過舊處理器所支援之延伸模組,不過您應該先參閱特定處理器的檔,或先測試指令集延伸模組支援 __cpuid 的檔,再使用指令集延伸模組執行程序代碼。

/arch 只會影響原生函式的程式代碼產生。 當您使用 /clr 來編譯時, /arch 對 Managed 函式的程式代碼產生沒有任何影響。

處理器延伸模組具有下列特性:

  • 預設模式會使用 SSE2 指示進行純量浮點數和向量計算。 這些指令允許使用單精度、雙精確度和 1、2、4 或 8 位元組整數值的 128 位向量計算,以及單精度和雙精確度純量浮點數。

  • SSE4.2 會使用一組完整的 SSE 指令來進行浮點純量、向量和整數向量計算。

  • AVX 引進了向量和浮點純量指令的替代指令編碼。 它允許128位或256位的向量,而零會將所有向量結果延伸至完整向量大小。 (針對舊版相容性,SSE 樣式向量指令會保留位 127 以外的所有位。大部分的浮點運算都會延伸至256位。

  • AVX2 將大部分的整數作業延伸至 256 位向量,並可讓您使用 Fused Multiply-Add (FMA) 指示。

  • AVX-512 引進了另一種指令編碼形式,允許512位向量、遮罩、內嵌四捨五入/廣播,以及新的指令。 的預設向量長度 AVX-512 為512位,而且可以使用旗標變更為256位 /vlen

  • AVX10.1 在上方 AVX-512新增更多指示。 的預設向量長度 AVX10.1 為 256 位,而且可以使用 /vlen 旗標變更為 512 位。

每個 /arch 選項也可以啟用使用與該選項相關聯的其他非向量指令。 例如,指定時 /arch:AVX2 會使用特定 BMI 指示。

指定 __AVX__/arch:AVX2/arch:AVX512/arch:AVX10.1 編譯程式選項時/arch:AVX,會定義預處理器符號。 指定 __AVX2__/arch:AVX512/arch:AVX10.1 編譯程式選項時/arch:AVX2,會定義預處理器符號。 指定__AVX512F____AVX512CD____AVX512BW____AVX512DQ__、 、 和 __AVX512VL__ 預處理器符號時/arch:AVX512,會定義、 或 /arch:AVX10.1 編譯程式選項。 指定 __AVX10_VER__ 編譯程式選項時 /arch:AVX10.1 ,會定義預處理器符號。 指出編譯程序的目標 AVX10 版本。 如需詳細資訊,請參閱 預先定義的巨集。 此選項 /arch:AVX2 已在Visual Studio 2013 Update 2 12.0.34567.1版中引進。 Visual Studio 2017 已新增有限的支援 /arch:AVX512 ,並在 Visual Studio 2019 中擴充。 Visual Studio 2022 已新增對 /arch:AVX10.1 的支援。

在 Visual Studio 中設定 /arch 編譯程式選項

  1. 開啟專案的 [ 屬性頁 ] 對話框。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性>C/C++>Code 產生] 屬性頁。

  3. 修改 [啟用增強指令集] 屬性。

若要以程式方式設定這個編譯器選項

另請參閱

/arch (最低 CPU 架構)
MSVC 編譯器選項
MSVC 編譯器命令列語法