85,3 GFLOPS: Ein Kern, eine Matrixmultiplikation – 56,5× schneller als die naive Implementierung

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

Ein systematischer Optimierungsansatz für FP32-Matrixmultiplikation auf einem einzelnen AMD Zen 3-Kern erreicht 85,30 GFLOPS – 63,5 % des theoretischen Spitzenwerts von 134,4 GFLOPS. Der Autor testete 28 verschiedene Konfigurationen (MX01–MX28) mit Techniken wie Cache-Blocking, Register-Blocking, FMA-Verkettung und Packing. Das beste Modell, MX24, übertrifft die naive Implementierung um den Faktor 56,5 und erreicht die Leistung optimierter Bibliotheken wie AMD AOCL und OpenBLAS. Der Artikel analysiert auch, warum bestimmte Techniken scheitern, etwa nicht-temporäre Stores oder übermäßiges Register-Blocking.

Der beste Fund: Nicht-temporäre Stores erwiesen sich als katastrophal – sie reduzierten die Leistung auf 1,24 GFLOPS, da die C-Matrix bei jedem Schreibzugriff die Cache-Zeile invalidiert.

Mehr von diesem Tag

2026-07-20