/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:
[SSE2
AVX10.1
|AVX512
|||AVX2
|SSE4.2
AVX
]
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 toAVX-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 stronieAVX-512
. Domyślna długość wektora toAVX10.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:AVX512
lub /arch:AVX10.1
.
__AVX2__
Symbol preprocesora jest definiowany, gdy /arch:AVX2
określono opcję , /arch:AVX512
lub /arch:AVX10.1
kompilatora.
Symbole __AVX512F__
preprocesora , __AVX512CD__
, __AVX512BW__
__AVX512DQ__
, i __AVX512VL__
są definiowane, gdy /arch:AVX512
okreś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
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).
Wybierz stronę właściwości Właściwości>konfiguracji C/C++>Code Generation.
Zmodyfikuj właściwość Włącz zestaw instrukcji rozszerzonych.
Aby programowo ustawić tę opcję kompilatora
- Zobacz: EnableEnhancedInstructionSet.
Zobacz też
/arch
(Minimalna architektura procesora CPU)
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC