Domanda

Ho appena notato che nel nostro progetto hanno lasciato il flag "Abilita Instruction Set migliorata" impostata, probabilmente solo una svista.

Prima di abilitare la bandiera vorrei chiedere se qualcuno ha visto alcun miglioramento delle prestazioni nel mondo reale le consentono?

Credo che vedremo un certo miglioramento nostra applicazione costantemente fare floating point calucations base, ma la sua non una parte importante ,.

È stato utile?

Soluzione

Quindi, in poche parole: Questa impostazione consente solo alcune funzioni intrinseche che mappa direttamente su istruzioni SSE. In normali programmi in C ++ non si utilizzano queste funzioni intrinseche, quindi questa impostazione non migliorerà le prestazioni.

Se avete bisogno di più prestazioni, si potrebbe cercare di trovare un compilatore che riscrive il codice per utilizzare le istruzioni SSE (Intel sostiene il suo compilatore può), ma la sua, probabilmente più intelligente di andare per multicore (con openMP o .net 4.0), o utilizzare la GPU, che è più veloce e più flessibile di SSE.

Altri suggerimenti

Il beneficio delle prestazioni dipenderà dal fatto che si proietta utilizzi intensivi calcoli matematici. Per molti compiti (networking, elaborazione testi, la gestione dei dati) questo semplicemente non è il caso in quanto non (o quasi) nessun operazioni in virgola mobile vengono utilizzati lì. Quindi, non ci sarà alcun incremento delle prestazioni a tutti.

Utilizzando istruzioni SSE / SSE2 generati dal compilatore non genererebbe prestazioni al top. In primo luogo, non avrà alcun controllo sulla generazione di codice vero e proprio. Ci sono situazioni in cui è necessario utilizzare il codice legacy (x87) su un vecchio sistema e il codice SSE / SSE2-enabled su un nuovo sistema. Si potrebbe anche voler approfittare delle SSE3 sulla maggior parte dei sistemi più recenti. A tal fine, vi consiglio di controllare il tipo di processore utilizzando l'istruzione cpuid e passare poi ad un'implementazione che potrebbe richiedere maggior vantaggio dalle capacità del processore. È quindi possibile utilizzare intrinseci compilatore nelle implementazioni rivolte SSE / SSE2. Per indirizzare SSE3, avrete bisogno di una libreria dedicata, che sto cercando di individuare su Internet.

Credo, ci deve esistere librerie che eseguono l'analisi delle capacità di elaborazione e consentono switcing codice ottimale. Ho solo bisogno di un po 'di tempo per guardare in rete anche.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top