85.3 GFLOPS: Optimización de multiplicación de matrices FP32 en un solo núcleo AMD Zen 3
85.3 GFlops: Optimizing FP32 Matrix Multiplication on a Single AMD Zen 3 Core
Este proyecto explora sistemáticamente la optimización de la multiplicación de matrices (GEMM) en un solo núcleo AMD Zen 3, logrando 85.3 GFLOPS (63.5% del pico teórico) con 28 configuraciones diferentes. El mejor modelo, MX24, combina registro de bloqueo de 4 líneas, encadenamiento FMA chain4 y empaquetado B on-the-fly, superando a la implementación ingenua por 56.5x e igualando a bibliotecas optimizadas como AMD AOCL y OpenBLAS. El análisis detalla técnicas como cache blocking, prefetching, y stores no temporales, con resultados que muestran qué funciona y qué no en esta microarquitectura.
El uso de _mm_prefetch redujo el rendimiento en ~8%, pues el prefetcher por hardware del Zen 3 ya es eficiente para patrones de streaming.