/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)/arche /arch (ARM).

Sintassi

/arch:[AVX||AVX2AVX512]

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:AVXdel /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:AVXdel compilatore o /arch:AVX2 /arch:AVX512 in Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà per il progetto. Per altre informazioni, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle proprietà Proprietà>di configurazione C/C++>Generazione codice.

  3. 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

Vedi anche

/arch (Architettura cpu minima)
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC