2009-07-01 14 views
29

Ho aggiunto la configurazione x64 al mio progetto C++ per compilare la versione a 64 bit della mia app. Tutto sembra bene, ma compilatore dà il seguente avviso:Opzione SSE2 in Visual C++ (x64)

`cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'` 

C'è ottimizzazione SSE2 davvero non è disponibile per i progetti a 64 bit?

risposta

41

Sembra che tutti i processori a 64 bit dispongano di SSE2. Dal momento che l'opzione del compilatore è sempre attiva per impostazione predefinita, non è necessario accenderla manualmente.

Da Wikipedia:

istruzioni SSE: L'architettura AMD64 originale adottato Intel SSE e SSE2 come le istruzioni di base. Le istruzioni SSE3 sono state aggiunte nell'aprile 2005. SSE2 sostituisce la precisione IEEE 80 bit del set di istruzioni x87 con la scelta della matematica a virgola mobile IEEE a 32 o 64 bit. Questo fornisce operazioni in virgola mobile compatibili con molte altre CPU moderne. Anche le istruzioni SSE e SSE2 sono state estese per operare sugli otto nuovi registri XMM. SSE e SSE2 sono disponibili in modalità a 32 bit nei moderni processori x86; tuttavia, se vengono utilizzati nei programmi a 32 bit, tali programmi funzionano solo su sistemi con processori dotati della funzione. Questo non è un problema nei programmi a 64 bit, poiché tutti i processori AMD64 hanno SSE e SSE2, quindi l'uso delle istruzioni SSE e SSE2 invece delle istruzioni x87 non riduce il set di macchine su cui è possibile eseguire programmi x64. SSE e SSE2 sono generalmente più veloci di e duplicano la maggior parte delle funzioni delle istruzioni x87 tradizionali, MMX e 3DNow !.

+4

sì, SSE2 è l'unica opzione in modalità a 64 bit. La vecchia FPU x87 non è più disponibile. – jalf

+1

quindi perché viene visualizzato l'errore? –

+4

Non è un errore, è un avvertimento, ed è lì per avvertirti che la bandiera non sta facendo quello che pensi che stia facendo. –

3

Capisco l'avviso visualizzato se si sceglie SSE2, anche se è ancora sciocco. Tuttavia si ottiene comunque l'avviso se si seleziona/arch: AVX. Sono sicuro che verrà risolto con SP1. È solo un po 'spammoso e un fastidio.

Problemi correlati