单核 AMD Zen 3 跑出 85.3 GFLOPS

85.3 GFlops: Optimizing FP32 Matrix Multiplication on a Single AMD Zen 3 Core

13houslast💬 3

在 AMD Zen 3 架构的单核上,我通过 28 种不同的优化组合,成功将 FP32 矩阵乘法性能推至 85.30 GFLOPS,达到了理论峰值 134.4 GFLOPS 的 63.5%。这次实验深入探索了 Cache blocking、Register blocking、FMA 链式指令以及 B-pack 等底层技术。结果显示,MX24 模型凭借 4 行寄存器阻塞和特定的 B-pack 策略,性能比朴素实现提升了 56.5 倍,甚至追平了 AMD AOCL 和 OpenBLAS 等成熟库的表现。更有趣的是,盲目使用软件预取或非临时存储反而会导致性能断崖式下跌,这证明了在底层优化中,理解硬件行为比堆砌技巧更重要。

"非临时存储指令导致了灾难性的后果,因为结果矩阵 C 需要被读 - 改 - 写,而该指令会在每次写入时强制使缓存行失效。"

同日更多故事 · 2026-07-20