/arch
(x64)
Určuje architekturu pro generování kódu v x64. Další informace o /arch
dalších cílových architekturách najdete v tématech/arch
(x86), /arch
(ARM64) a /arch
(ARM).
Syntaxe
/arch:
[SSE2
AVX10.1
|AVX512
|||AVX2
|SSE4.2
AVX
]
Argumenty
/arch:SSE2
Povolí rozšíření Intel Streaming SIMD 2. Výchozí sada instrukcí je SSE2, pokud není zadána žádná /arch
možnost.
/arch:SSE4.2
Povolí rozšíření Intel Streaming SIMD 4.2.
/arch:AVX
Povolí rozšíření Intel Advanced Vector Extensions.
/arch:AVX2
Povolí rozšíření Intel Advanced Vector Extensions 2.
/arch:AVX512
Povolí rozšíření Intel Advanced Vector Extensions 512.
/arch:AVX10.1
Povolí rozšíření Intel Advanced Vector Extensions 10 verze 1.
Poznámky
Tato /arch
možnost umožňuje použití určitých rozšíření sady instrukcí, zejména pro výpočet vektoru, dostupné v procesorech od Intel a AMD. Obecně platí, že novější zavedené procesory můžou podporovat rozšíření nad rámec těch, které starší procesory podporují, i když byste se měli podívat do dokumentace pro konkrétní procesor nebo otestovat podporu rozšíření sady instrukcí, která se používá __cpuid
před spuštěním kódu pomocí rozšíření sady instrukcí.
/arch
má vliv pouze na generování kódu pro nativní funkce. /clr
Při kompilaci /arch
nemá žádný vliv na generování kódu pro spravované funkce.
Rozšíření procesoru mají následující charakteristiky:
Výchozí režim používá instrukce SSE2 pro skalární výpočty s plovoucí desetinou čárkou a vektory. Tyto pokyny umožňují výpočet s 128bitovými vektory s jednoduchou přesností, dvojitou přesností a 1, 2, 4 nebo 8bajnovými celočíselnou hodnotou a také s jednoduchou přesností a dvojitou přesností skalárních hodnot s plovoucí desetinnou čárkou.
SSE4.2
používá úplnou sadu instrukcí SSE pro výpočty s plovoucí desetinou čárkou, vektoru a celočíselného vektoru.AVX
zavedli alternativní kódování instrukcí pro vektorové a skalární instrukce s plovoucí desetinou čárkou. Umožňuje vektory 128 bitů nebo 256 bitů a nula rozšiřuje všechny výsledky vektorů na celou velikost vektoru. (Pro starší kompatibilitu zachová vektorové instrukce ve stylu SSE všechny bity nad rámec 127.) Většina operací s plovoucí desetinou čárkou se rozšiřuje na 256 bitů.AVX2
rozšiřuje většinu celočíselné operace na 256bitové vektory a umožňuje používat instrukce Násobit-Add (FMA).AVX-512
zavedl další formát kódování instrukcí, který umožňuje 512bitové vektory, maskování, vložené zaokrouhlování/vysílání a nové pokyny. Výchozí délkaAVX-512
vektoru je 512 bitů a lze ji změnit na 256 bitů pomocí příznaku/vlen
.AVX10.1
přidá další pokyny nad .AVX-512
Výchozí délkaAVX10.1
vektoru je 256 bitů a lze ji změnit na 512 bitů pomocí příznaku/vlen
.
Každá /arch
možnost může také povolit použití jiných ne vektorových instrukcí, které jsou k této možnosti přidruženy. Příkladem je použití určitých instrukcí BMI při /arch:AVX2
zadání.
Symbol preprocesoru __AVX__
je definován, pokud /arch:AVX
je zadána možnost , /arch:AVX2
, /arch:AVX512
nebo /arch:AVX10.1
kompilátor.
Symbol preprocesoru __AVX2__
je definován, když /arch:AVX2
je zadána možnost , /arch:AVX512
nebo /arch:AVX10.1
kompilátoru.
Symboly __AVX512F__
, , __AVX512BW__
__AVX512CD__
, __AVX512DQ__
a __AVX512VL__
preprocesoru jsou definovány, když /arch:AVX512
je zadána možnost , nebo /arch:AVX10.1
kompilátoru.
Symbol __AVX10_VER__
preprocesoru je definován při zadání možnosti kompilátoru /arch:AVX10.1
. Označuje verzi AVX10, na které kompilátor cílí. Další informace najdete v předdefinovaných makrech.
Tato /arch:AVX2
možnost byla zavedena v sadě Visual Studio 2013 Update 2 verze 12.0.34567.1.
V sadě Visual Studio 2017 byla přidána omezená podpora /arch:AVX512
a byla rozšířena v sadě Visual Studio 2019.
V sadě Visual Studio 2022 byla přidána podpora pro /arch:AVX10.1
.
Nastavení možnosti kompilátoru /arch
v sadě Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Další informace naleznete v tématu Nastavení kompilátoru jazyka C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností vlastnosti konfigurace>C/C++>Generování kódu.
Upravte vlastnost Povolit rozšířenou sadu instrukcí .
Programové nastavení tohoto parametru kompilátoru
- Viz třída EnableEnhancedInstructionSet.
Viz také
/arch
(Minimální architektura procesoru)
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC