Conciso SSE e MMX riferimento istruzione con latenze e produttività
Domanda
sto cercando di ottimizzare alcuni aritmetica utilizzando i set di istruzioni MMX e SSE con linea di assemblaggio. Tuttavia, sono stato in grado di trovare buone referenze per i tempi e gli usi di questi set di istruzioni avanzate. La prego di aiutarmi a trovare riferimenti che contengono informazioni sui di throughput, la latenza, operandi e descrizioni brevi, forse delle istruzioni?
Finora, ho trovato:
Intel istruzioni Riferimenti Intel 64 e IA-32 Manuale Architetture dello sviluppatore: Vol. 2A e Intel 64 e IA-32 Manuale Architetture dello sviluppatore: Vol. 2B
Guida Intel Ottimizzazione http://www.intel.com/Assets/PDF/manual/248966.pdf
Tempi di Integer Operations http://gmplib.org/~tege/x86-timing.pdf
Soluzione
L'Istruzione di riferimento Intel dovrebbe fornire una guida adeguata a ciò che queste istruzioni effettivamente fare, avrei pensato? Ha pseudocodice per ognuno, una descrizione del suo funzionamento, e in alcuni casi anche un piccolo schema di un caso rappresentativo.
Per sincronizzazioni, non c'è nessuna guida ufficiale che io sappia. Pagina di Agner Fog è lo standard di riferimento:
Altri suggerimenti
Il intrinseca Guida di Intel (in basso a sinistra della pagina AVX), è una struttura ben organizzata strumento per la ricerca, in cui è possibile restringere il campo dalla versione SSE e / o tipo di istruzione, ad esempio, FP aritmetica o Integer logico.
Per ogni istruzione, ma anche mostra una latenza / rendimento tabella dalla CPU e dai parametri.
I tempi sono nella "Intel Optimization Guide"; vedere l'Appendice C per il throughput e latenza per ogni istruzione per architettura della CPU.