Consulta multiplicación bloques por fila

Consulta multiplicación bloques por fila

de Marco Andres Perez Borelli -
Número de respuestas: 1

Hola, que tal estamos teniendo un problema con esta operación, no pudimos hacer que nos funcionara mas rápido que la multiplicacion por filas normal:
Las ejecuciones nos dan:
1024 32
mult_fila: 2840.11 ms, 0.38 GFlops runs: 1
mult_bl_fila: 3675.24 ms, 0.29 GFlops runs: 1
1024 64
mult_fila: 2842.54 ms, 0.38 GFlops runs: 1
mult_bl_fila: 3598.52 ms, 0.30 GFlops runs: 1
1024 128
mult_fila: 2842.88 ms, 0.38 GFlops runs: 1
mult_bl_fila: 3459.95 ms, 0.31 GFlops runs: 1

Los checks que hicimos son:

  • Las 4 matrices resultantes son idénticas para tamaños de 9 12 y 24.
  • Corrimos manual e imprimí la recorrida de la matriz por bloque fila y me da perfecto según el ejemplo en (y adjunto) https://docs.google.com/spreadsheets/d/1mSp-2kfjo8zuK7obyWS-TWRapH9G7RaoOwoAj54akhg/edit?usp=sharing
  • Realicamos la mayor cantiad de operaciones fuera de los buckles correspondietes, eso mejoró los tiempos, pero no fue suficiente.
  • Probamo modificar el orden de las flags al compilar, sin mejoras, al momento estoy compilando con: gcc -march=native -mtune=native -o3 main.c -o pr1

Algo que nos estemos perdiendo?

En respuesta a Marco Andres Perez Borelli

Re: Consulta multiplicación bloques por fila

de Ernesto Dufrechou -
El patrón de recorrida dentro de los bloques está bien. Lo que pueden intentar es cambiar los bucles exteriores para mejorar el orden en que se cargan los bloques.
Si quieren me pueden mandar el código al mail personal (edufrechou@fing.edu.uy) y lo miro.