Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Specifica l'architettura per la generazione del codice su piattaforme x64. Queste opzioni si applicano alla versione di destinazione x64 del compilatore. Per altre informazioni su /arch altre architetture di destinazione, vedere /arche /arch (ARM).
Sintassi
/arch:[SSE2AVX10.2|AVX10.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.
/arch:AVX10.2
Abilita Intel Advanced Vector Extensions 10 versione 2.
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.2usa 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.AVX2estende la maggior parte delle operazioni integer a vettori a 256 bit e consente l'uso delle istruzioni Fused Multiply-Add (FMA).AVX-512ha 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/vlenflag .AVX10.1aggiunge 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/vlenflag . Questa opzione è stata introdotta in Visual Studio 2022 17.13.AVX10.2espande il set di istruzioni introdotto inAVX10.1. La lunghezza del vettore predefinita perAVX10.2è di 256 bit e può essere aumentata a 512 bit usando il/vlenflag .AVX10.2aggiunge istruzioni che sono miglioramenti delle istruzioni legacy e istruzioni di accelerazione multimediale. Per altre informazioni sulle nuove istruzioni, vedere la sezione 3.1.4 nella specifica dell'architettura Intel Advanced Vector Extensions 10.2. Le istruzioni correlate all'intelligenza artificiale in tale documento sono supportate tramite intrinseci MSVC anziché essere generate direttamente perché MSVC non supporta i tipi di dati. Questa opzione del compilatore è stata introdotta in Visual Studio 2026.
Ogni /arch opzione può anche abilitare l'uso di altre istruzioni non di controllo associate a tale opzione. Un esempio è l'uso di determinate istruzioni BMI quando /arch:AVX2 viene specificato.
Il simbolo del __AVX__ preprocessore viene definito quando viene specificata l'opzione /arch:AVXdel compilatore , /arch:AVX2/arch:AVX512, /arch:AVX10.1, o /arch:AVX10.2 .
Il __AVX2__ simbolo del preprocessore viene definito quando viene specificata l'opzione /arch:AVX2del /arch:AVX512compilatore , /arch:AVX10.1, o /arch:AVX10.2 .
I __AVX512F__simboli del preprocessore , __AVX512DQ____AVX512BW____AVX512CD__, , e __AVX512VL__ vengono definiti quando viene specificata l'opzione /arch:AVX512del compilatore , /arch:AVX10.1o ./arch:AVX10.2
Il __AVX10_VER__ simbolo del preprocessore viene definito quando viene specificata l'opzione /arch:AVX10.1 del compilatore o /arch:AVX10.2 . 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. Il supporto per /arch:AVX10.2 è stato aggiunto in Visual Studio 2026.
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 >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