Dipende dall'architettura .. Per il momento presumo l'architettura x86 (aka SSE).
È possibile ottenere facilmente il fattore quattro su anelli stretti. Basta sostituire la matematica esistente con le istruzioni SSE e il gioco è fatto.
Si può anche ottenere un po 'di più perché se si utilizza SSE si fa la matematica in registri che di solito non vengono utilizzati dal compilatore. Ciò libera il registro generale per altre attività come il controllo del loop e il calcolo dell'indirizzo. In breve, il codice che circonda l'istruzione SSE sarà più compatto ed eseguirà più velocemente.
E poi c'è l'opzione per suggerire al controller di memoria come si desidera accedere alla memoria, ad es. se si desidera memorizzare i dati in modo che ignori la cache o meno. Per algoritmi affamati di larghezza di banda che potrebbero darti un po 'più di velocità in più.
fonte
2010-09-05 17:36:10
sì, al momento questa è l'opzione migliore che sto considerando. – flow
Tutto ciò è corretto, ma ortogonale alla domanda su cosa SIMD può fare per voi ... – dmckee
cosa intendete con 'ortogobale'? – flow