← Neueste Arbeiten
💻 computer science

High-Performance FP16 General Matrix Multiplication on NVIDIA Ada Lovelace via CUTLASS and WMMA: A Benchmark and Pipeline-Depth Analysis

Diese Arbeit benchmarkt die FP16-GEMM-Leistung auf der NVIDIA Ada Lovelace RTX 4060 über cuBLAS, CUTLASS und benutzerdefinierte WMMA-Implementierungen hinweg und zeigt auf, dass eine Pipeline-Tiefe von drei mit spezifischer Tile-Geometrie 52,7 % des Spitzen-Durchsatzes erreicht, während sie gleichzeitig demonstriert, dass der Shared-Memory-Druck und nicht die Pipeline-Tiefe der primäre Engpass ist, der eine weitere Optimierung begrenzt.

Ursprüngliche Autoren: Lucas Lima Freitag

Veröffentlicht 2026-07-15
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Lucas Lima Freitag

Originalarbeit lizenziert unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie haben eine superschnelle Küche (eine GPU) mit einem Team von spezialisierten Köchen namens Tensor Cores. Diese Köche sind unglaublich schnell im Hacken und Mischen von Zutaten (Matrixmultiplikation) für ein riesiges Festmahl (Deep Learning). Die Küche auf dem neuen „Ada Lovelace“-Herd (einer RTX 4060 Grafikkarte) ist theoretisch in der Lage, 60,55 TFLOPS (das sind 60,55 Billionen Rechenoperationen pro Sekunde) zu servieren.

Aber hier ist der Haken: Nur weil die Köche so schnell hacken können, heißt das nicht, dass sie es auch tun. Oft müssen sie warten, bis die Zutaten aus dem Vorratsschrank geliefert werden.

Das große Experiment: Wie man die Köfe beschäftigt hält

Die Forscher wollten herausfinden, wie man die Küche am besten organisiert, damit die Köche niemals aufhören zu hacken. Sie testeten drei verschiedene Arten, die Küche zu betreiben:

  1. Die Black Box (cuBLAS): Ein vorgefertigtes, quelloffenes Rezept von NVIDIA, das normalerweise großartig funktioniert, aber keine Details zur Anpassung zulässt.
  2. Der offene Bauplan (CUTLASS): Ein flexibles, Open-Source-Toolkit, mit dem Sie Ihr eigenes Küchenlayout von Grund auf neu erstellen können.
  3. Der DIY-Ansatz (WMMA): Eine maßgeschneiderte Küche, in der Sie jede einzelne Bewegung der Köfe kontrollieren, was aber viel schwieriger zu bauen ist.

Sie richteten eine massive Koch-Herausforderung mit Zutaten der Größe 8192 × 8192 ein und testeten verschiedene „Pipeline-Tiefen“. Denken Sie bei der Pipeline-Tiefe an die Anzahl der bereitstehenden Zutatentabletts, die die Küche bereithält.

  • Pipeline-Tiefe 2: Nur 2 Tabletts bereit.
  • Pipeline-Tiefe 3: 3 Tabletts bereit.
  • Pipeline-Tiefe 4: 4 Tabletts bereit.

Die gängige Weisheit (und ein einfaches mathematisches Modell) besagte, dass mehr Tabletts = mehr Geschwindigkeit bedeuten. Die Logik war: „Wenn wir mehr Tabletts haben, werden die Köfe niemals ohne Zutaten dastehen, also arbeiten sie schneller.“

Die Überraschung: Mehr ist nicht immer besser

Die Forscher maßen die Geschwindigkeit, und dies ist, was sie herausfanden:

  • Tiefe 2: Die Küche lief mit 25,6 TFLOPS. Die Köfe warteten zu viel herum.
  • Tiefe 3: Die Küche beschleunigte auf 31,9 TFLOPS (was 52,7 % des theoretischen Maximums entspricht). Dies war der „Sweet Spot“!
  • Tiefe 4: Die Geschwindigkeit sank tatsächlich auf 31,1 TFLOPS.

Dies ist das Hauptergebnis: Das Hinzufügen eines vierten Tabletts half nicht; es machte die Sache schlechter. Das einfache mathematische Modell sagte voraus, dass die Geschwindigkeit auf 35,4 TFLOPS springen würde. Das passierte jedoch nicht. Das Modell lag um 13,8 % daneben.

Warum hat das Hinzufügen eines Tabletts nach hinten losgegangen?

Das Paper erklärt, dass die Küche begrenzten Platz hat. Als sie das 4. Tablett hinzufügten (wodurch der Verbrauch des „Shared Memory“ auf 96 KB stieg), zwang dies die Küche dazu, die Anzahl der Kochteams (Threadblocks) zu reduzieren, die gleichzeitig arbeiten konnten.

  • Mit 3 Tabletts konnte die Küche 2 Teams von Köfen auf jedem Herd unterbringen.
  • Mit 4 Tabletts konnte die Küche nur noch 1 Team unterbringen.

Obwohl das einzelne Team über mehr Zutaten verfügte, mussten sie länger warten, weil es weniger Teams gab, die man einschieben konnte, wenn eines feststeckte. Die Küche wurde „überfüllt“ mit Zutaten, aber „leer“ an Arbeitern. Die Forscher stellten fest, dass die „Occupancy“ (wie viele Teams arbeiten) sank und die Köfe mehr „Register“ (ihre persönlichen Notizblöcke) verwenden mussten, was sie ebenfalls verlangsamte.

Die Gewinner und Verlierer

  • Der Gewinner: Das CUTLASS-Toolkit mit 3 Tabletts und einer spezifischen Tile-Größe von 256 × 128. Es erreichte 31,9 TFLOPS. Dies war so gut, dass es das Standard-„Black Box“-Modell (cuBLAS) um ein winziges, fast unmessbares 1,3 % schlug (die Autoren sagen, dies sei wahrscheinlich nur Rauschen, aber es beweist, dass der offene Bauplan mit dem geschlossenen mithalten kann).
  • Der DIY-Runner-up: Der maßgeschneiderte WMMA-Kernel (die voll-DIY-Küche) schaffte 25,1 TFLOPS bei einem etwas kleineren Test. Er war langsamer, weil er nicht die ausgeklügelten „Double-Buffering“-Tricks verwendete, um die Lieferung der Zutaten mit dem Kochen zu überlappen.
  • Der Verlierer: Die Idee, dass „mehr Pipeline-Tiefe immer besser ist“. Das Paper schließt dies für diese spezifische Hardware explizit aus.

Wie sicher sind sie sich?

Die Autoren sind sehr zuversichtlich bei diesen Zahlen, da sie diese direkt auf der Hardware gemessen haben, indem sie den Test 10 Mal durchführten und die Ergebnisse im Durchschnitt bildeten. Sie haben ihre Berechnungen sogar mit einem eingebauten NVIDIA-Tool (dem Profiler) abgeglichen und festgestellt, dass ihr benutzerdefinierter Code perfekt mit diesem übereinstimmte.

Sie geben jedoch auch zu, dass sie einige Dinge nicht bewiesen haben:

  • Sie haben nur eine spezifische Problemgröße (8192) getestet. Sie wissen nicht, ob die Regel „3 Tabletts sind am besten“ auch für kleinere oder seltsam geformte Probleme gilt.
  • Sie konnten keine Pipeline-Tiefen höher als 4 testen, weil der Küche schlicht der Platz (Speicher) ausging.
  • Sie mussten ihre Tests unter Windows durchführen, wo ein Treiberfehler verhinderte, dass sie ihren benutzerdefinierten Code und den Standardcode im exakt gleichen Durchlauf vergleichen konnten (obwohl sie dies in separaten Durchläufen taten).

Das Fazript

Wenn Sie versuchen, das Beste aus einer grafikorientierten Karte wie der RTX 4060 für mathematisch intensive Aufgaben herauszuholen, fügen Sie nicht einfach immer mehr Puffer hinzu. Es gibt eine „Goldlöckchen-Zone“. In diesem Fall war die Vorbereitung mit 3 Stufen perfekt. Der Wechsel zu 4 Stufen machte die Küche zu eng und bremste alle aus.

Die Forscher haben ihren gesamten Code als Open Source veröffentlicht, sodass jeder versuchen kann, seine eigene Küche zu bauen und zu sehen, ob er den 31,9 TFLOPS-Rekord brechen kann. Sie schlagen vor, dass zukünftige Arbeiten sich auf andere Problemgrößen konzentrieren und Linux verwenden sollten, um noch sauberere Daten zu erhalten, aber für den Moment haben sie gezeigt, dass 31,9 TFLOPS der aktuelle Gipfel für dieses Setup ist und 31,1 TFLOPS das ist, was passiert, wenn man zu gierig mit dem Speicher umgeht.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →