Udostępnij za pośrednictwem


/arch (x64)

Określa architekturę generowania kodu na x64. Aby uzyskać więcej informacji na /arch temat innych architektur docelowych, zobacz /arch (x86), /arch (ARM64)i /arch (ARM).

Składnia

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

Argumenty

/arch:SSE2
Włącza rozszerzenia SIMD intel streaming 2. Domyślny zestaw instrukcji to SSE2, jeśli nie /arch określono żadnej opcji.

/arch:SSE4.2
Włącza rozszerzenia SIMD intel streaming 4.2.

/arch:AVX
Włącza rozszerzenia Intel Advanced Vector.

/arch:AVX2
Włącza rozszerzenia Intel Advanced Vector 2.

/arch:AVX512
Włącza rozszerzenia Intel Advanced Vector 512.

/arch:AVX10.1
Włącza rozszerzenia Intel Advanced Vector Extensions 10 w wersji 1.

Uwagi

Opcja /arch umożliwia korzystanie z niektórych rozszerzeń zestawu instrukcji, szczególnie w przypadku obliczeń wektorowych, dostępnych w procesorach firmy Intel i AMD. Ogólnie rzecz biorąc, ostatnio wprowadzone procesory mogą obsługiwać rozszerzenia poza te obsługiwane przez starsze procesory, chociaż należy zapoznać się z dokumentacją dla określonego procesora lub testu obsługi rozszerzenia zestawu instrukcji przy użyciu __cpuid przed wykonaniem kodu przy użyciu rozszerzenia zestawu instrukcji. Możesz również użyć __check_isa_support funkcji wewnętrznych, aby sprawdzić, czy są używane częściej używane funkcje procesora CPU.

/arch Dotyczy tylko generowania kodu dla funkcji natywnych. W przypadku użycia /clr polecenia do kompilowania /arch nie ma wpływu na generowanie kodu dla funkcji zarządzanych.

Rozszerzenia procesora mają następujące cechy:

  • Tryb domyślny używa instrukcji SSE2 dla obliczeń zmiennoprzecinkowych i wektorów skalarnych. Te instrukcje umożliwiają obliczanie z 128-bitowymi wektorami pojedynczej precyzji, podwójnej precyzji i 1, 2, 4 lub 8-bajtowych wartości całkowitych, a także wartościami zmiennoprzecinkowymi o pojedynczej precyzji i podwójnej precyzji.

  • SSE4.2 Używa pełnego zestawu instrukcji SSE dla obliczeń skalarnych, wektorów zmiennoprzecinkowych i wektorów całkowitych.

  • AVX wprowadzono alternatywne kodowanie instrukcji dla instrukcji wektorowych i zmiennoprzecinkowych. Umożliwia on wektory 128 bitów lub 256 bitów, a zero rozszerza wszystkie wyniki wektorów do pełnego rozmiaru wektora. (W przypadku starszej zgodności instrukcje wektorów stylu SSE zachowują wszystkie bity poza bitem 127). Większość operacji zmiennoprzecinkowych jest rozszerzana na 256 bitów.

  • AVX2 Rozszerza większość operacji całkowitych na wektory 256-bitowe i umożliwia korzystanie z instrukcji Fused Multiply-Add (FMA).

  • AVX-512 wprowadzono inny formularz kodowania instrukcji, który umożliwia 512-bitowe wektory, maskowanie, osadzone zaokrąglanie/emisję i nowe instrukcje. Domyślna długość wektora to AVX-512 512 bitów i można ją zmienić na 256 bitów przy użyciu flagi /vlen .

  • AVX10.1 dodaje więcej instrukcji na stronie AVX-512. Domyślna długość wektora to AVX10.1 256 bitów i można ją zmienić na 512 bitów przy użyciu flagi /vlen .

Każda /arch opcja może również włączyć korzystanie z innych instrukcji niewektorowych skojarzonych z tą opcją. Przykładem jest użycie niektórych instrukcji BMI, gdy /arch:AVX2 jest określony.

__AVX__ Symbol preprocesora jest definiowany, gdy określono opcję kompilatora /arch:AVX, /arch:AVX2, /arch:AVX512lub /arch:AVX10.1 . __AVX2__ Symbol preprocesora jest definiowany, gdy /arch:AVX2określono opcję , /arch:AVX512lub /arch:AVX10.1 kompilatora. Symbole __AVX512F__preprocesora , __AVX512CD__, __AVX512BW____AVX512DQ__, i __AVX512VL__ są definiowane, gdy /arch:AVX512określono opcję , lub /arch:AVX10.1 kompilatora. __AVX10_VER__ Symbol preprocesora jest definiowany po określeniu opcji kompilatora/arch:AVX10.1. Wskazuje, że wersja AVX10, dla których jest przeznaczony kompilator. Aby uzyskać więcej informacji, zobacz Wstępnie zdefiniowane makra. Opcja /arch:AVX2 została wprowadzona w programie Visual Studio 2013 Update 2 w wersji 12.0.34567.1. Dodano ograniczoną obsługę /arch:AVX512 programu Visual Studio 2017 i rozszerzono w programie Visual Studio 2019. /arch:AVX10.1 Dodano obsługę programu Visual Studio 2022.

Aby ustawić opcję kompilatora /arch w programie Visual Studio

  1. Otwórz okno dialogowe Strony właściwości dla projektu. Aby uzyskać więcej informacji, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilacji w programie Visual Studio).

  2. Wybierz stronę właściwości Właściwości>konfiguracji C/C++>Code Generation.

  3. Zmodyfikuj właściwość Włącz zestaw instrukcji rozszerzonych.

Aby programowo ustawić tę opcję kompilatora

Zobacz też

/arch (Minimalna architektura procesora CPU)
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC