Sul numero Intel Intrisics Guide per la maggior parte delle istruzioni, ha anche un valore per latenza e velocità effettiva. Esempio:Throughput di latenza SIMD
__m128i _mm_min_epi32
Performance
Architecture Latency Throughput
Haswell 1 0.5
Ivy Bridge 1 0.5
Sandy Bridge 1 0.5
Westmere 1 1
Nehalem 1 1
cosa esattamente questi numeri significano? Immagino che una latenza più lenta significhi che il comando richiede più tempo per essere eseguito, ma Throughput 1 per Nehalem e 0.5 per Ivy, significa che il comando è più veloce su Nehalem?
I core moderni hanno * due * unità di esecuzione che possono eseguire l'istruzione contemporaneamente. Quindi se il sole splende e hai il vento nella schiena e il tuo programma ha due di questi vicini, entrambi si completano in un unico ciclo. Facendo apparire al tuo profiler che hanno impiegato un mezzo ciclo. –