Condividi tramite


/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:[SSE2AVX10.1|AVX512|||AVX2|SSE4.2AVX]

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 per AVX-512 è 512 bit e può essere modificata in 256 bit usando il /vlen flag .

  • AVX10.1 aggiunge altre istruzioni all'inizio di AVX-512. La lunghezza del vettore predefinita per AVX10.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:AVXdel /arch:AVX512compilatore , /arch:AVX2, o /arch:AVX10.1 . Il simbolo del __AVX2__ preprocessore viene definito quando viene specificata l'opzione /arch:AVX2del compilatore , /arch:AVX512o /arch:AVX10.1 . I __AVX512F__simboli del __AVX512BW____AVX512DQ__preprocessore , __AVX512CD__, , e __AVX512VL__ vengono definiti quando viene specificata l'opzione /arch:AVX512del 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

  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. Modificare la proprietà Enable Enhanced Instruction Set .

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