Lección 27: Multiplicación de matrices con tiling
La multiplicación de matrices C = A * B calcula cada elemento C[row][col] como una suma de productos a lo largo de la dimensión K: C[row][col] = suma sobre k de A[row][k] * B[k][col]. En la versión ingenua, cada hilo responsable de un elemento de C lee toda una fila de A y toda una columna de B dire
Imagina que estás preparando un plato y corres repetidamente al depósito lejano por los mismos ingredientes. En cambio, traes una caja entera una vez al mostrador de la cocina (el estante cercano), y todos los cocineros toman de ahí rápidamente. El tiling es exactamente eso: traes un tile de datos una vez a la memoria compartida cercana, y lo reutilizas ahí una y otra vez.
- multiplicación de matrices con tiling
- Un algoritmo de matmul que carga tiles de A y B en memoria compartida, sincroniza, y acumula desde ahí — ahorrando lecturas de memoria global.
- tile
- Un subbloque de TILE x TILE de la matriz, cargado de una vez en memoria compartida y usado por todos los hilos del bloque.
- reutilización en memoria compartida
- Cada elemento cargado en memoria compartida es leído por TILE hilos distintos, así que una lectura global sirve para muchos productos.
- dimensión K
- La dimensión compartida en el producto: A es M x K y B es K x N. La suma sobre k recorre K y se calcula tile por tile.