¿La carga SSE no alineada intrínseca es más lenta que la carga alineada intrínseca en las CPU Intel x64_64?

Estoy considerando cambiar algunos códigos de código de alto rendimiento que actualmente requieren matrices alineadas de 16 bytes y usos_mm_load_ps para relajar la restricción de alineación y el uso_mm_loadu_ps. Hay muchos mitos sobre las implicaciones de rendimiento de la alineación de la memoria para las instrucciones de SSE, por lo que hice un pequeño caso de prueba de lo que debería ser un bucle enlazado de ancho de banda de memoria. Utilizando la carga intrínseca alineada o no alineada, ejecuta 100 iteraciones a través de una gran matriz, sumando los elementos con intrínsecos SSE. El código fuente está aquí.https://gist.github.com/rmcgibbo/7689820

Los resultados en un Macbook Pro de 64 bits con un Sandy Bridge Core i5 se encuentran a continuación. Los números más bajos indican un rendimiento más rápido. Cuando leo los resultados, básicamente no veo ninguna penalización de rendimiento por el uso de _mm_loadu_ps en la memoria no alineada.

Encuentro esto sorprendente. ¿Es esta una prueba justa / conclusión justificada? ¿En qué plataformas de hardware hay una diferencia?

$ gcc -O3 -msse aligned_vs_unaligned_load.c  && ./a.out  200000000
Array Size: 762.939 MB
Trial 1
_mm_load_ps with aligned memory:    0.175311
_mm_loadu_ps with aligned memory:   0.169709
_mm_loadu_ps with unaligned memory: 0.169904
Trial 2
_mm_load_ps with aligned memory:    0.169025
_mm_loadu_ps with aligned memory:   0.191656
_mm_loadu_ps with unaligned memory: 0.177688
Trial 3
_mm_load_ps with aligned memory:    0.182507
_mm_loadu_ps with aligned memory:   0.175914
_mm_loadu_ps with unaligned memory: 0.173419
Trial 4
_mm_load_ps with aligned memory:    0.181997
_mm_loadu_ps with aligned memory:   0.172688
_mm_loadu_ps with unaligned memory: 0.179133
Trial 5
_mm_load_ps with aligned memory:    0.180817
_mm_loadu_ps with aligned memory:   0.172168
_mm_loadu_ps with unaligned memory: 0.181852

Respuestas a la pregunta(4)

Su respuesta a la pregunta