Künstliche Intelligenz, aktuell.
Direkt aus den Originalmeldungen.

Metas TLX-basierte Jagged Flash Attention schlägt FA4 auf Blackwell mit dreimal weniger Code

2. Oktober 2026, 00:26Quelle: PyTorch

Metas Team hat mit TLX (Triton Low-level Extensions) einen Jagged-Flash-Attention-Kernel (JFA) für NVIDIA Blackwell B200 entwickelt. Laut dem Beitrag im PyTorch-Blog übertrifft er FlashAttention-4 (FA4, Stand Mai 2026) bei den für Metas Generative Ads Model (GEM) relevanten Jagged-Shapes im Forward-Pass um rund 13 Prozent und im Backward-Pass um rund 50 Prozent.

Das Wichtigste in Kürze
  • Metas TLX-basierter Jagged-Flash-Attention-Kernel zielt auf NVIDIA Blackwell B200 und übernimmt die Attention im Generative Ads Model (GEM).
  • Laut Beitrag schlägt er FA4 (Stand Mai 2026) bei den jagged Shapes von GEM um rund 13 % im Forward- und rund 50 % im Backward-Pass.
  • Der Kernel umfasst etwa 3,2K Zeilen Code auf Triton-Ebene, FA4 etwa 10K Zeilen CuteDSL.
  • Zu den Optimierungen zählen Lastverteilung, mehrstufiges dQ-Staging, frühe Freigabe von Tensor Memory, Loop Peeling und 2-CTA-MMA.
  • Der Code ist in Metas ads_model_kernel_library auf GitHub veröffentlicht.

Warum die Attention in GEM neu geschrieben werden musste

Metas Werbemodelle, darunter das Generative Ads Model (GEM) und die Kunlun-Architektur, berechnen Attention über jagged User-Sequenzen, also über Eingaben variabler Länge. Die Autoren geben an, dass das Auffüllen (Padding) solcher Sequenzen auf eine feste Länge bis zu 50 Prozent der Rechenleistung verschwenden kann. GEM packt die Sequenzen stattdessen lückenlos hintereinander und hält ihre Grenzen in einem Offsets-Tensor fest. Jagged Flash Attention wendet den FlashAttention-Algorithmus direkt auf diese gepackten Q/K/V-Tensoren an, ohne aufgefüllte Tokens zu materialisieren.

Dem Beitrag zufolge ist die Attention der langsamste einzelne Kernel in GEM. Maximale Leistung auf Blackwell erforderte bislang handgeschriebenes CuteDSL oder CUDA, was nach Angaben der Autoren die Entwicklung verlangsamt und die Erweiterung auf neue Varianten wie Sliding Window oder Block-Sparse Attention erschwert. Ausgangspunkt war ein ausgereifter Triton-basierter JFA-Kernel, der Datenbewegung und Scheduling auf dem Chip dem Compiler überließ. Dadurch standen die Tensor Cores still, sobald die einzige Warp Group keine Matrixmultiplikation anstieß.

Was TLX ändert

TLX ergänzt Tritons kachelbasiertes Programmiermodell um explizite, hardwarebewusste Kontrolle. Es ermöglicht die explizite Belegung von Shared Memory und Tensor Memory, Warp Specialization über asynchrone Tasks, Barrieren, asynchrones TMA und MMA sowie Cluster Launch Control (CLC).

Mit dieser Kontrolle teilte das Team jede CTA in rollenspezialisierte Warps auf: für TMA-Loads, Tensor-Core-Matmuls, Softmax- und Korrekturrechnungen sowie das Schreiben im Epilog, im Backward-Pass zusätzlich ein eigener Warp für die dQ-Reduktion. Die Puffer auf dem Chip werden von Hand zugewiesen, auch die Pipeline-Tiefe wird gewählt, etwa Triple-Buffering für K/V. Außerdem überlagern die Entwickler Tensor-Memory-Puffer mit nicht überlappenden Lebensdauern per Aliasing und setzen explizite Producer/Consumer-Barrieren ein. Beide Pässe sind persistent: Je eine CTA pro SM durchläuft die Kacheln in einer Schleife. Nach Angaben der Autoren lässt sich nichts davon in reinem Triton ausdrücken.

Beim Entwicklungsaufwand umfasst der TLX-Kernel laut Beitrag etwa 3,2K Zeilen Code auf Triton-Ebene und damit rund dreimal weniger als die etwa 10K Zeilen der CuteDSL-Kernel von FA4.

Zusätzliche Optimierungen

Das Team fand seine Optimierungen mit NVIDIA Nsight Compute, ptxas-Dump-Logs und TritonBench. Einige stammen aus FA4, andere leiteten die Entwickler aus dem Profiling der Jagged-Broadcast-Q-Last ab. Dabei wird ein dichtes Q von allen Sequenzen im Batch gemeinsam genutzt, und sein Gradient dQ muss über den gesamten Batch summiert werden. Aufgeführt sind folgende Optimierungen:

  • Scheduling jagged Kacheln über SMs hinweg: Software-Lastverteilung und Cluster Launch Control halten die SMs trotz stark schwankender Längen ausgelastet.
  • Mehrstufiges dQ-Staging: Eine doppelt gepufferte Shared-Memory-Pipeline verbirgt die umkämpfte dQ-Reduce-Add-Operation, die die Autoren als Engpass Nummer eins im Backward-Pass bezeichnen.
  • Frühe Freigabe von Tensor Memory: Wird der dQ-Puffer vor den letzten Schreibvorgängen freigegeben, kann der MMA-Warp die dQ-Matmul der nächsten Kachel früher starten.
  • Loop Peeling: Die Aufteilung der KV-Schleife in einen verzweigungsfreien Hauptdurchlauf und einen kleinen maskierten Rest beseitigt den Masken-Overhead pro Iteration und die dadurch verursachten Register Spills.
  • 2-CTA-kollaboratives MMA: Zwei CTAs arbeiten an einer Matmul zusammen, um die Tensor-Core-Auslastung im Backward-Pass zu steigern; dieser Ansatz stammt aus FA4.

Für den Forward-Pass sortiert das Team die Kacheln auf dem Host absteigend nach KV-Workload und verteilt sie im Zickzackmuster an die SMs. Laut Beitrag brachte das bei vernachlässigbaren CPU-Kosten rund 20 Prozent mehr Leistung im Forward-Kernel.

Was das für die Kernel-Entwicklung bedeutet

Die Autoren argumentieren, dass der Verbleib im High-Level-Modell von Triton den Kernel für Modellierungsingenieure zugänglich macht, nicht nur für Kernel-Spezialisten: Sie können ihn lesen, erweitern und fusionieren. Alle Benchmarks liefen in bfloat16 auf der B200 gegen FA4, das der Beitrag als aktuellen Stand der Technik auf Blackwell bezeichnet. Der Code ist im GitHub-Repository ads_model_kernel_library von Meta unter tlx_jfa verfügbar.

Ähnliche Meldungen

NVIDIA beschleunigt mit Tensor-Core-FP32-Methoden die Inferenz des Point Edge Transformer für MLIPs
Chips und Infrastruktur29. Oktober 2026, 16:00

NVIDIA beschleunigt mit Tensor-Core-FP32-Methoden die Inferenz des Point Edge Transformer für MLIPs

Laut NVIDIA können Tensor-Core-Methoden, die FP32-Matrixrechnung emulieren, maschinell gelernte interatomare Potenziale ohne erneutes Training beschleunigen. In Tests…

PyTorch 2.15 macht neu geschriebenes NCCL-Backend zum Standard und bringt FP8 auf Apple Silicon
Für Entwickler28. Oktober 2026, 18:44

PyTorch 2.15 macht neu geschriebenes NCCL-Backend zum Standard und bringt FP8 auf Apple Silicon

PyTorch 2.15 ist erschienen, und das neu geschriebene NCCL-Backend läuft jetzt standardmäßig für jede nccl-Prozessgruppe. Das Release ergänzt außerdem einseitige…

CoreWeave erreicht bei MLPerf Endpoints 441.740 Token pro Sekunde mit DeepSeek-R1
Chips und Infrastruktur22. Oktober 2026, 18:19

CoreWeave erreicht bei MLPerf Endpoints 441.740 Token pro Sekunde mit DeepSeek-R1

CoreWeave gibt an, im erstmals ausgetragenen MLPerf-0.7-Endpoints-Benchmark führende Ergebnisse erzielt zu haben: Mit dem Reasoning-Modell DeepSeek-R1 auf 68…