Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Anger arkitekturen för kodgenerering på x64. Dessa växlar gäller för x64-målversionen av kompilatorn. Mer information om /arch andra målarkitekturer finns i /arch (x86),/arch (ARM64) och /arch (ARM).
Syntax
/arch:[SSE2AVX10.2|AVX10.1|AVX512|||AVX2|SSE4.2AVX]
Argumentpunkter
/arch:SSE2
Aktiverar Intel Streaming SIMD-tillägg 2. Standardinstruktionsuppsättningen är SSE2 om inget /arch alternativ har angetts.
/arch:SSE4.2
Aktiverar Intel Streaming SIMD Extensions 4.2.
/arch:AVX
Aktiverar Intel Advanced Vector Extensions.
/arch:AVX2
Aktiverar Intel Advanced Vector Extensions 2.
/arch:AVX512
Aktiverar Intel Advanced Vector Extensions 512.
/arch:AVX10.1
Aktiverar Intel Advanced Vector Extensions 10 version 1.
/arch:AVX10.2
Aktiverar Intel Advanced Vector Extensions 10 version 2.
Anmärkningar
Alternativet /arch gör det möjligt att använda vissa tillägg för instruktionsuppsättningar, särskilt för vektorberäkning, som finns tillgängliga i processorer från Intel och AMD. I allmänhet kan processorer som nyligen har introducerats ha stöd för tillägg utöver de som stöds av äldre processorer, men du bör läsa dokumentationen för en viss processor eller testa om det finns stöd för tillägg för instruktionsuppsättningar innan __cpuid du kör kod med hjälp av ett tillägg för instruktionsuppsättningar. Du kan också använda den inbyggda för __check_isa_support att söka efter mer frekvent använda CPU-funktioner.
/arch påverkar endast kodgenerering för inbyggda funktioner. När du använder /clr för att kompilera har /arch ingen effekt på kodgenereringen för hanterade funktioner.
Processortilläggen har följande egenskaper:
Standardläget använder SSE2-instruktioner för skalära flyttals- och vektorberäkningar. Dessa instruktioner tillåter beräkning med 128-bitars vektorer med enkel precision, dubbel precision och 1, 2, 4 eller 8 byte heltalsvärden, samt skalära flyttalsvärden med enkel precision och dubbel precision.
SSE4.2använder den fullständiga uppsättningen SSE-instruktioner för beräkningar av skalärer, vektorer och heltalsvektorer med flyttal.AVXIntroducerade en alternativ instruktionskodning för vektor- och flyttalsskalära instruktioner. Den tillåter vektorer med antingen 128 bitar eller 256 bitar, och nollutvidgningar alla vektorresultat till den fulla vektorstorleken. (För äldre kompatibilitet bevarar SSE-stilvektorinstruktioner alla bitar utöver bit 127.) De flesta flyttalsåtgärder utökas till 256 bitar.AVX2utökar de flesta heltalsåtgärder till 256-bitars vektorer och gör det möjligt att använda FMA-instruktioner (Fused Multiply-Add).AVX-512Introducerade en annan instruktionskodningsform som tillåter 512-bitars vektorer, maskering, inbäddad avrundning/sändning och nya instruktioner. Standardvektorlängden förAVX-512är 512 bitar och kan ändras till 256 bitar med hjälp av flaggan/vlen.AVX10.1lägger till fler instruktioner ovanpåAVX-512. Standardvektorlängden förAVX10.1är 256 bitar och kan ändras till 512 bitar med hjälp av flaggan/vlen. Det här alternativet introducerades i Visual Studio 2022 17.13.AVX10.2expanderar instruktionsuppsättningen som introducerades iAVX10.1. Standardvektorlängden förAVX10.2är 256 bitar och kan ökas till 512 bitar med hjälp av/vlenflaggan.AVX10.2lägger till instruktioner som är förbättringar av äldre instruktioner och instruktioner för medieacceleration. Mer information om de nya instruktionerna finns i avsnitt 3.1.4 i Arkitekturspecifikationen för Intel Advanced Vector Extensions 10.2. AI-relaterade instruktioner i dokumentet stöds via MSVC-inbyggda objekt i stället för att genereras direkt eftersom MSVC inte stöder deras datatyper. Det här kompilatoralternativet introducerades i Visual Studio 2026.
Varje /arch alternativ kan också aktivera användning av andra icke-bevektorinstruktioner som är associerade med det alternativet. Ett exempel är användningen av vissa BMI-instruktioner när /arch:AVX2 det anges.
Symbolen __AVX__ för förprocessorn definieras när /arch:AVXalternativet , /arch:AVX2, /arch:AVX512, /arch:AVX10.1eller /arch:AVX10.2 kompilatorn har angetts.
Förprocessorsymbolen __AVX2__/arch:AVX2definieras när kompilatoralternativet , /arch:AVX512, /arch:AVX10.1eller /arch:AVX10.2 kompilatoralternativet anges.
Symbolerna __AVX512F__, __AVX512CD__, __AVX512BW__, __AVX512DQ__och __AVX512VL__ preprocessor definieras när /arch:AVX512alternativet , /arch:AVX10.1eller /arch:AVX10.2 kompilator anges.
Symbolen __AVX10_VER__ för förprocessorn definieras när /arch:AVX10.1 alternativet eller /arch:AVX10.2 kompilatorn anges. Det anger vilken AVX10-version kompilatorn riktar in sig på. Mer information finns i fördefinierade makron.
Alternativet /arch:AVX2 introducerades i Visual Studio 2013 Update 2, version 12.0.34567.1.
Begränsat stöd för /arch:AVX512 lades till i Visual Studio 2017 och utökades i Visual Studio 2019.
Stöd för /arch:AVX10.1 lades till i Visual Studio 2022. Stöd för /arch:AVX10.2 lades till i Visual Studio 2026.
Så här anger du /arch kompilatoralternativet i Visual Studio
Öppna dialogrutan egenskapssidor för projektet. Mer information finns i Ange C++-kompilator- och byggegenskaper i Visual Studio.
Välj egenskapssidan Konfigurationsegenskaper>C/C++>Kodgenerering.
Ändra egenskapen Aktivera förbättrad instruktionsuppsättning .
Så här ställer du in det här kompilatoralternativet programmatiskt
- Se även EnableEnhancedInstructionSet.
Se även
/arch (Minsta CPU-arkitektur)
MSVC-kompilatoralternativ
kommandoradssyntax för MSVC-kompilatorn