/arch
(x64)
Gibt die Architektur für die Codegenerierung auf x64 an. Weitere Informationen zu /arch
anderen Zielarchitekturen finden Sie unter /arch
(x86),/arch
(ARM64) und /arch
(ARM).
Syntax
/arch:
[SSE2
AVX10.1
|AVX512
|||AVX2
|SSE4.2
AVX
]
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.
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.2
verwendet den vollständigen Satz von SSE-Anweisungen für Gleitkomma-Skalar-, Vektor- und Ganzzahlvektorberechnungen.AVX
es 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.AVX2
erweitert die meisten ganzzahligen Vorgänge auf 256-Bit-Vektoren und ermöglicht die Verwendung von FMA-Anweisungen (Fused Multi-Add).AVX-512
Es wurde ein weiteres Anweisungscodierungsformular eingeführt, das 512-Bit-Vektoren, Maskierung, eingebettetes Runden/Übertragen und neue Anweisungen zulässt. Die Standardvektorlänge beträgtAVX-512
512 Bit und kann mit der/vlen
Kennzeichnung auf 256 Bit geändert werden.AVX10.1
fügt weitere Anweisungen oben aufAVX-512
. Die Standardvektorlänge fürAVX10.1
256 Bit und kann mit der/vlen
Kennzeichnung auf 512 Bit geändert werden.
Jede /arch
Option kann auch die Verwendung anderer nicht Vektoranweisungen 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:AVX
Option " , /arch:AVX2
" /arch:AVX512
oder /arch:AVX10.1
"Compiler" angegeben wird.
Das __AVX2__
Präprozessorsymbol wird definiert, wenn die /arch:AVX2
Option ", /arch:AVX512
" oder /arch:AVX10.1
"Compiler" angegeben wird.
Die __AVX512F__
Symbole , __AVX512CD__
, , __AVX512BW__
und __AVX512VL__
__AVX512DQ__
Präprozessoren werden definiert, wenn die /arch:AVX512
Compileroption /arch:AVX10.1
angegeben wird.
Das __AVX10_VER__
Präprozessorsymbol wird definiert, wenn die /arch:AVX10.1
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.
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