/arch
(x64)
Specifica l'architettura per la generazione del codice su piattaforme x64. Per altre informazioni su /arch
altre architetture di destinazione, vedere /arch
(x86),(ARM64)/arch
e /arch
(ARM).
Sintassi
/arch:
[SSE2
AVX10.1
|AVX512
|||AVX2
|SSE4.2
AVX
]
Argomenti
/arch:SSE2
Abilita le estensioni SIMD di Intel Streaming 2. Il set di istruzioni predefinito è SSE2 se non viene specificata alcuna /arch
opzione.
/arch:SSE4.2
Abilita le estensioni SIMD di Intel Streaming 4.2.
/arch:AVX
Abilita Le estensioni vettoriali avanzate Intel.
/arch:AVX2
Abilita Intel Advanced Vector Extensions 2.
/arch:AVX512
Abilita Intel Advanced Vector Extensions 512.
/arch:AVX10.1
Abilita Intel Advanced Vector Extensions 10 versione 1.
Osservazioni:
L'opzione /arch
consente l'uso di determinate estensioni del set di istruzioni, in particolare per il calcolo vettoriale, disponibili nei processori intel e AMD. In generale, i processori introdotti più di recente possono supportare estensioni oltre quelle supportate dai processori meno recenti, anche se è necessario consultare la documentazione per un particolare processore o test per il supporto dell'estensione del set di istruzioni usando __cpuid
prima di eseguire il codice usando un'estensione del set di istruzioni. È anche possibile usare l'intrinseco __check_isa_support
per verificare la presenza di funzionalità della CPU usate più di frequente.
/arch
influisce solo sulla generazione del codice per le funzioni native. Quando si usa /clr
per la compilazione, /arch
non ha alcun effetto sulla generazione di codice per le funzioni gestite.
Le estensioni del processore hanno le caratteristiche seguenti:
La modalità predefinita usa istruzioni SSE2 per i calcoli a virgola mobile e vettoriale scalari. Queste istruzioni consentono il calcolo con vettori a 128 bit di valori a virgola mobile a precisione singola, precisione doppia e 1, 2, 4 o 8 byte, nonché valori a virgola mobile a precisione singola e precisione doppia.
SSE4.2
usa il set completo di istruzioni SSE per calcoli scalari a virgola mobile, vettore e intero.AVX
è stata introdotta una codifica di istruzioni alternative per istruzioni scalari vettoriali e a virgola mobile. Consente vettori di 128 bit o 256 bit ed estende tutti i risultati del vettore alla dimensione del vettore completa. Per la compatibilità legacy, le istruzioni del vettore in stile SSE mantengono tutti i bit oltre il bit 127. La maggior parte delle operazioni a virgola mobile viene estesa a 256 bit.AVX2
estende la maggior parte delle operazioni integer a vettori a 256 bit e consente l'uso delle istruzioni Fused Multiply-Add (FMA).AVX-512
ha introdotto un altro modulo di codifica delle istruzioni che consente vettori a 512 bit, mascheramento, arrotondamento/trasmissione incorporati e nuove istruzioni. La lunghezza del vettore predefinita perAVX-512
è 512 bit e può essere modificata in 256 bit usando il/vlen
flag .AVX10.1
aggiunge altre istruzioni all'inizio diAVX-512
. La lunghezza del vettore predefinita perAVX10.1
è di 256 bit e può essere modificata in 512 bit usando il/vlen
flag .
Ogni /arch
opzione può anche abilitare l'uso di altre istruzioni non vettoriali associate a tale opzione. Un esempio è l'uso di determinate istruzioni BMI quando /arch:AVX2
viene specificato.
Il __AVX__
simbolo del preprocessore viene definito quando viene specificata l'opzione /arch:AVX
del /arch:AVX512
compilatore , /arch:AVX2
, o /arch:AVX10.1
.
Il simbolo del __AVX2__
preprocessore viene definito quando viene specificata l'opzione /arch:AVX2
del compilatore , /arch:AVX512
o /arch:AVX10.1
.
I __AVX512F__
simboli del __AVX512BW__
__AVX512DQ__
preprocessore , __AVX512CD__
, , e __AVX512VL__
vengono definiti quando viene specificata l'opzione /arch:AVX512
del compilatore o /arch:AVX10.1
.
Il __AVX10_VER__
simbolo del preprocessore viene definito quando viene specificata l'opzione del /arch:AVX10.1
compilatore. Indica la versione AVX10 di destinazione del compilatore. Per altre informazioni, vedere Macro predefinite.
L'opzione /arch:AVX2
è stata introdotta in Visual Studio 2013 Update 2, versione 12.0.34567.1.
È stato aggiunto un supporto limitato per /arch:AVX512
in Visual Studio 2017 ed è stato espanso in Visual Studio 2019.
Il supporto per /arch:AVX10.1
è stato aggiunto in Visual Studio 2022.
Per impostare l'opzione del /arch
compilatore in Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà per il progetto. Per altre informazioni, vedere Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina delle proprietà Proprietà>di configurazione C/C++>Generazione codice.
Modificare la proprietà Enable Enhanced Instruction Set .
Per impostare l'opzione del compilatore a livello di codice
- Vedere EnableEnhancedInstructionSet.
Vedi anche
/arch
(Architettura cpu minima)
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC