/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:
[AVX
||AVX2
AVX512
]
Argomenti
/arch:AVX
Abilita l'uso di istruzioni Intel Advanced Vector Extensions.
/arch:AVX2
Abilita l'uso di istruzioni Intel Advanced Vector Extensions 2.
/arch:AVX512
Abilita l'uso delle istruzioni Intel Advanced Vector Extensions 512.
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.
/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.
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
è stato introdotto un altro modulo di codifica delle istruzioni che consente vettori a 512 bit, oltre ad altre funzionalità facoltative. Sono state aggiunte anche le istruzioni per altre operazioni.
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:AVX2
compilatore o /arch:AVX512
. Il __AVX2__
simbolo del preprocessore viene definito quando viene specificata l'opzione /arch:AVX2
del compilatore o /arch:AVX512
. I __AVX512F__
simboli del preprocessore , __AVX512CD__
__AVX512BW__
, __AVX512DQ__
e __AVX512VL__
vengono definiti quando viene specificata l'opzione del /arch:AVX512
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.
Per impostare l'opzione /arch:AVX
del compilatore o /arch:AVX2
/arch:AVX512
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.
Nella casella di riepilogo a discesa Abilita set di istruzioni avanzate scegliere Advanced Vector Extensions (/arch:AVX), Advanced Vector Extensions 2 (/arch:AVX2) o Advanced Vector Extensions 512 (/arch:AVX512).
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