Share via


/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:[AVX|AVX2|AVX512]

Argumenty

/arch:AVX
Povolí použití instrukcí Intel Advanced Vector Extensions.

/arch:AVX2
Povolí použití instrukcí Intel Advanced Vector Extensions 2.

/arch:AVX512
Povolí použití instrukcí Intel Advanced Vector Extensions 512.

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.

  • 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ých vektorů a některými dalšími volitelnými funkcemi. Byly přidány také pokyny pro jiné operace.

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, když /arch:AVXje zadána možnost , /arch:AVX2 nebo /arch:AVX512 kompilátoru. Symbol preprocesoru __AVX2__ je definován, když je zadána možnost kompilátoru /arch:AVX2/arch:AVX512 . Symboly __AVX512F__, , __AVX512DQ____AVX512CD____AVX512BW__a __AVX512VL__ preprocesor jsou definovány při zadání možnosti kompilátoru/arch:AVX512. 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.

Nastavení možnosti nebo /arch:AVX2/arch:AVX512 kompilátoru /arch:AVXv sadě Visual Studio

  1. 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.

  2. Vyberte stránku vlastností vlastnosti konfigurace>C/C++>Generování kódu.

  3. V rozevíracím seznamu Povolit rozšířenou sadu instrukcí zvolte Advanced Vector Extensions (/arch:AVX), Advanced Vector Extensions 2 (/arch:AVX2) nebo Advanced Vector Extensions 512 (/arch:AVX512).

Programové nastavení tohoto parametru kompilátoru

Viz také

/arch (Minimální architektura procesoru)
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC