intel - requisitos - avx2 vmware
¿Cómo se implementan las instrucciones de recopilación en AVX2? (1)
Supongamos que estoy usando VGATHERDPS de AVX2: esto debería cargar 8 flotadores de precisión simple con 8 índices DWORD.
¿Qué sucede cuando los datos a cargar existen en diferentes líneas de caché? ¿Se implementa la instrucción como un bucle de hardware que recupera las líneas de caché una por una? O, ¿puede emitir una carga a varias líneas de caché a la vez?
Leí un par de artículos que dicen lo primero (y ese es el que tiene más sentido para mí), pero me gustaría saber un poco más sobre esto.
Enlace a un documento: http://arxiv.org/pdf/1401.7494.pdf
Hice algunos puntos de referencia de las instrucciones de recopilación de AVX y parece ser una implementación de fuerza bruta bastante simple: incluso cuando los elementos que se van a cargar son contiguos, parece que todavía hay un ciclo de lectura por elemento, por lo que el rendimiento no es mejor que simplemente haciendo cargas escalares.