Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt die Architektur für die Codegenerierung auf x64 an. Diese Optionen gelten für die x64-Zielversion des Compilers. Weitere Informationen zu /arch anderen Zielarchitekturen finden Sie unter /arch (x86),/arch(ARM64) und /arch (ARM).
Syntax
/arch:[SSE2AVX10.2|AVX10.1|AVX512|||AVX2|SSE4.2AVX]
Argumente
/arch:SSE2
Aktiviert Intel Streaming SIMD Extensions 2. Der Standardanweisungssatz ist SSE2, wenn keine /arch Option angegeben wird.
/arch:SSE4.2
Aktiviert Intel Streaming SIMD Extensions 4.2.
/arch:AVX
Aktiviert Intel Advanced Vector Extensions.
/arch:AVX2
Aktiviert Intel Advanced Vector Extensions 2.
/arch:AVX512
Aktiviert Intel Advanced Vector Extensions 512.
/arch:AVX10.1
Aktiviert Intel Advanced Vector Extensions 10, Version 1.
/arch:AVX10.2
Aktiviert Intel Advanced Vector Extensions 10, Version 2.
Hinweise
Die /arch Option ermöglicht die Verwendung bestimmter Anweisungssatzerweiterungen, insbesondere für Vektorberechnungen, die in Prozessoren von Intel und AMD verfügbar sind. Im Allgemeinen können kürzlich eingeführte Prozessoren Erweiterungen unterstützen, die von älteren Prozessoren unterstützt werden, obwohl Sie die Dokumentation für einen bestimmten Prozessor oder Test für die Unterstützung von Anweisungssatzerweiterungen verwenden __cpuid sollten, bevor Sie Code mit einer Anweisungssatzerweiterung ausführen. Sie können auch die __check_isa_support systeminterne Funktion verwenden, um nach häufiger verwendeten CPU-Funktionen zu suchen.
/arch wirkt sich nur auf die Codegenerierung für systemeigene Funktionen aus. Wenn Sie zum Kompilieren verwenden /clr , /arch wirkt sich dies nicht auf die Codegenerierung für verwaltete Funktionen aus.
Die Prozessorerweiterungen weisen die folgenden Merkmale auf:
Der Standardmodus verwendet SSE2-Anweisungen für skalare Gleitkomma- und Vektorberechnungen. Diese Anweisungen ermöglichen die Berechnung mit 128-Bit-Vektoren mit einfacher Genauigkeit, doppelter Genauigkeit und 1, 2, 4 oder 8 Byte ganzzahligen Werten sowie Gleitkommawerten mit einfacher Genauigkeit und doppelter Genauigkeit skalarer Gleitkommawerte.
SSE4.2verwendet den vollständigen Satz von SSE-Anweisungen für Gleitkomma-Skalar-, Vektor- und Ganzzahlvektorberechnungen.AVXes wurde eine alternative Anweisungscodierung für Vektor- und Gleitkommaskaeranweisungen eingeführt. Sie ermöglicht Vektoren von 128 Bit oder 256 Bit und erweitert alle Vektorergebnisse auf die vollständige Vektorgröße. (Aus Gründen der Legacykompatibilität behalten SSE-Vektoranweisungen alle Bits über Bit 127 hinaus bei.) Die meisten Gleitkommavorgänge werden auf 256 Bit erweitert.AVX2erweitert die meisten ganzzahligen Vorgänge auf 256-Bit-Vektoren und ermöglicht die Verwendung von FMA-Anweisungen (Fused Multi-Add).AVX-512Es wurde ein weiteres Anweisungscodierungsformular eingeführt, das 512-Bit-Vektoren, Maskierung, eingebettetes Runden/Übertragen und neue Anweisungen zulässt. Die Standardvektorlänge beträgtAVX-512512 Bit und kann mit der/vlenKennzeichnung auf 256 Bit geändert werden.AVX10.1fügt weitere Anweisungen oben aufAVX-512. Die Standardvektorlänge fürAVX10.1256 Bit und kann mit der/vlenKennzeichnung auf 512 Bit geändert werden. Diese Option wurde in Visual Studio 2022 17.13 eingeführt.AVX10.2erweitert den inAVX10.1. Die Standardvektorlänge beträgtAVX10.2256 Bit und kann mit der/vlenKennzeichnung auf 512 Bit erhöht werden.AVX10.2fügt Anweisungen hinzu, die Verbesserungen von älteren Anweisungen und Anweisungen zur Medienbeschleunigung sind. Weitere Informationen zu den neuen Anweisungen finden Sie im Abschnitt 3.1.4 in der Intel Advanced Vector Extensions 10.2 Architecture Specification. Die KI-bezogenen Anweisungen in diesem Dokument werden über systeminterne MSVC-Elemente unterstützt, anstatt direkt ausgegeben zu werden, da MSVC ihre Datentypen nicht unterstützt. Diese Compileroption wurde in Visual Studio 2026 eingeführt.
Jede /arch Option kann auch die Verwendung anderer Nichtvektoranweisungen aktivieren, die dieser Option zugeordnet sind. Ein Beispiel ist die Verwendung bestimmter BMI-Anweisungen, wenn /arch:AVX2 angegeben wird.
Das __AVX__ Präprozessorsymbol wird definiert, wenn die /arch:AVXOption ", /arch:AVX2", /arch:AVX512/arch:AVX10.1" oder /arch:AVX10.2 "Compiler" angegeben wird.
Das __AVX2__ Präprozessorsymbol wird definiert, wenn die /arch:AVX2Option " , /arch:AVX512" /arch:AVX10.1oder /arch:AVX10.2 "Compiler" angegeben wird.
Die __AVX512F__Symbole , __AVX512CD__, , __AVX512BW__und __AVX512VL____AVX512DQ__Präprozessoren werden definiert, wenn die /arch:AVX512Option , /arch:AVX10.1oder /arch:AVX10.2 Compiler angegeben wird.
Das __AVX10_VER__ Präprozessorsymbol wird definiert, wenn die /arch:AVX10.1/arch:AVX10.2 Compileroption angegeben wird. Es gibt die AVX10-Version an, auf die der Compiler ausgerichtet ist. Weitere Informationen finden Sie unter Vordefinierte Makros.
Die /arch:AVX2 Option wurde in Visual Studio 2013 Update 2, Version 12.0.34567.1 eingeführt.
In Visual Studio 2017 wurde eingeschränkte Unterstützung /arch:AVX512 hinzugefügt und in Visual Studio 2019 erweitert.
Unterstützung für /arch:AVX10.1 wurde in Visual Studio 2022 hinzugefügt. Unterstützung für /arch:AVX10.2 wurde in Visual Studio 2026 hinzugefügt.
So legen Sie die /arch Compileroption in Visual Studio fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten für das Projekt. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).
Wählen Sie die Eigenschaftenseite Konfigurationseigenschaften>C/C++>Codegenerierung aus.
Ändern Sie die Eigenschaft "Erweiterten Anweisungssatz aktivieren".
So legen Sie diese Compileroption programmgesteuert fest
- Siehe EnableEnhancedInstructionSet.
Siehe auch
/arch (Minimale CPU-Architektur)
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile