/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:[SSE2AVX10.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.

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ägt AVX-512 512 Bit und kann mit der /vlen Kennzeichnung auf 256 Bit geändert werden.

  • AVX10.1 fügt weitere Anweisungen oben auf AVX-512. Die Standardvektorlänge für AVX10.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:AVXOption " , /arch:AVX2" /arch:AVX512oder /arch:AVX10.1 "Compiler" angegeben wird. Das __AVX2__ Präprozessorsymbol wird definiert, wenn die /arch:AVX2Option ", /arch:AVX512" oder /arch:AVX10.1 "Compiler" angegeben wird. Die __AVX512F__Symbole , __AVX512CD__, , __AVX512BW__und __AVX512VL__ __AVX512DQ__Präprozessoren werden definiert, wenn die /arch:AVX512Compileroption /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

  1. Ö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).

  2. Wählen Sie die Eigenschaftenseite Konfigurationseigenschaften>C/C++>Codegenerierung aus.

  3. Ändern Sie die Eigenschaft "Erweiterten Anweisungssatz aktivieren".

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

/arch (Minimale CPU-Architektur)
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile