FlashAttention 4: Praxisleitfaden zur Optimierung der LLM-Inferenz

Scaled-Dot-Product Attention (SDPA) beansprucht einen großen Teil der Inferenzzeit und des Energiebedarfs großer Sprachmodelle (LLMs). In vielen Workloads findet der Großteil der Operatorausführungen innerhalb dieser einzelnen Grundoperation statt. Attention verarbeitet Queries (Q), multipliziert sie mit Keys (K), normalisiert das Ergebnis per Softmax und multipliziert es anschließend mit Values (V), um die finale Ausgabe zu erzeugen. Dieser Ablauf ist stark speichergebunden, da Q, K und V mehrfach aus dem High-Bandwidth-Memory gelesen werden müssen und Zwischentiles wiederholt zurückgeschrieben werden.

FlashAttention-Ansätze verringern diese Einschränkung, indem mehr Daten länger direkt auf dem Chip gehalten und GPU Streaming Multiprocessors (SMs) effizienter genutzt werden. FlashAttention wurde 2022 erstmals als Open-Source-Projekt veröffentlicht und gestaltete die Attention-Routine so um, dass Softmax während der Berechnung fortlaufend ermittelt werden kann. Zu jedem Zeitpunkt müssen nur wenige Zeilen von Q × K auf dem Chip gespeichert werden.

Dieser Artikel bietet einen praxisnahen technischen Überblick über FlashAttention 4 (FA4). Er erläutert die Änderungen gegenüber früheren Versionen und gibt Orientierung für Einführung und Benchmarking. Ziel ist es, LLM-Infrastrukturteams, Kernel-Entwicklern und ML-Plattformteams genügend Informationen an die Hand zu geben, um beurteilen zu können, ob FA4 für ihren Stack geeignet ist.

Wichtige Erkenntnisse

  • FA4 ist als Blackwell-first Attention-Kernel konzipiert und vor allem für den Einsatz auf SM100-GPUs ausgelegt. Es nutzt eine warp-spezialisierte 5-stufige Pipeline, die im Vergleich zu früheren FlashAttention-Generationen mehr Überlappung und On-Chip-Wiederverwendung ermöglicht.
  • Die Softmax-Effizienz wird durch zwei zentrale Verfahren verbessert: softwarebasierte exp2()-Berechnungen laufen direkt auf CUDA-Kernen, um SFU-Engpässe zu reduzieren, und adaptives Online-Rescaling vermeidet unnötige Rescale-Operationen, während die numerische Stabilität erhalten bleibt.
  • Mehrere wichtige Funktionen fehlen aktuell noch. FA4 konzentriert sich derzeit auf den Forward Pass und bietet noch keine vollständigen Implementierungen für Backward Pass, variable Sequenzlängen sowie GQA/MQA. Dadurch ist der Einsatz für Training und bestimmte Modellarchitekturen eingeschränkt.
  • FA4 sollte mit Bedacht eingeführt werden. Der sinnvollste Startpunkt ist Blackwell-Inferenz, abgesichert durch Benchmarks, Korrektheitsprüfungen und Fallbacks. Für breite produktive Anforderungen bleiben FA3 für Hopper und FA2 für Ampere/Ada stabile Standardoptionen.

Warum Attention-Kernel weiterhin die LLM-Kosten bestimmen

Obwohl moderne GPUs sehr hohe FLOPS liefern, bleiben Transformer-Modelle häufig durch die Speicherbandbreite begrenzt, weil Attention Q, K und V mehrfach aus dem globalen Speicher laden muss. Um die Attention-Ausgabe für jedes Query-Token zu berechnen, muss dieses Token unter Umständen Dot Products mit Tausenden Key-Tokens ausführen, das Ergebnis normalisieren und reskalieren sowie anschließend die passenden Values abrufen. Einfache Implementierungen berechnen die vollständige Q×K-Matrix und speichern sie im Arbeitsspeicher. Diese Matrix überschreitet schnell die Größe des On-Chip-Speichers, wodurch die Performance durch wiederholte Off-Chip-Lesezugriffe ausgebremst wird.

FlashAttention löst dieses Problem durch Tiling der Attention-Matrix. Statt die komplette Q×K-Matrix zu materialisieren, werden kleine Q- und K-Tiles in den Shared Memory gestreamt. Softmax wird pro Tile berechnet, während nur das laufende Maximum und die laufende Summe für jede Query-Zeile gespeichert bleiben. Dadurch sinkt der Speicherverkehr erheblich, und der Kernel kann näher an eine compute-bound Ausführung heranrücken.

FlashAttention-Entwicklung im Überblick

Ein Blick auf die Entwicklung von FlashAttention hilft zu verstehen, warum FA4 relevant ist. Jede Version nutzte neue Hardwarefunktionen, um Geschwindigkeit, Effizienz oder beides zu verbessern. FA4 ist speziell auf GPUs der Blackwell-Generation abgestimmt. Die folgende Tabelle fasst die wichtigsten Verbesserungen und Performance-Auswirkungen der einzelnen Generationen zusammen.

Version (Jahr) Ziel-GPU-Architektur Wichtige Neuerungen Performance-Highlights
FlashAttention (v1) – 2022 Ampere (NVIDIA A100) und früher IO-bewusste exakte Attention mit Tiling und On-Chip-Pufferung zur Reduzierung von Off-Chip-Speicherverkehr. 2–4× schneller als baseline PyTorch Attention; bis zu 10–20× geringerer Speicherbedarf gegenüber naiven Implementierungen.
FlashAttention-2 – 2023 Ampere (A100), Ada (RTX 30/40) Verbesserte Parallelisierung, optimierte Arbeitsaufteilung, höhere Occupancy, verfeinertes Warp-Scheduling sowie MQA/GQA-Unterstützung. Etwa 2× schneller als v1; erreicht ungefähr 50–73 % der theoretischen A100-FLOPs, rund 225 TFLOPs/s.
FlashAttention-3 – 2024 Hopper (H100 / H800) Nutzt asynchrone Berechnung und Datenbewegung, Tensor Memory Accelerator, Warp-Spezialisierung, verschachtelte GEMM/Softmax-Pipelines sowie FP8-Unterstützung mit verbessertem numerischem Verhalten. 1,5–2× schneller als v2 auf H100; etwa 740 TFLOPs/s FP16, ungefähr 75 % Auslastung, und bis zu rund 1,2 PFLOPs/s in FP8.
FlashAttention-4 – 2025 Blackwell (zum Beispiel B200, SM 10.x) Weitere Pipeline-Spezialisierung für Blackwell-Concurrency, Software-Approximationen für Exponentialfunktionen, optimierter Online-Softmax und eine auf Blackwell abgestimmte Kernel-Architektur über CUDA/CUTLASS/DSL. In Benchmarks rund 20–22 % schneller als cuDNN Attention auf Blackwell, mit berichteten Performance-Verbesserungen.

Was ist neu in FlashAttention 4?

FlashAttention 4 baut auf dem kachelbasierten Ausführungsansatz früherer FlashAttention-Versionen auf. Statt die vollständigen Q-, K- und V-Tensoren auf einmal zu verarbeiten, arbeitet der Kernel mit kleineren Blöcken. Dadurch werden Daten, die im schnellen On-Chip-Speicher liegen, besser wiederverwendet und teure Zugriffe auf den globalen Speicher reduziert. Cooperative Thread Arrays (CTAs) erzeugen dabei ein oder mehrere Output-Tiles, indem sie die entsprechenden Q-, K- und V-Blöcke aus dem globalen Speicher laden und daraus das finale Attention-Ergebnis berechnen.

Innerhalb von FA4 ist die Attention-Berechnung als tief gepipelter Workflow organisiert. Mehrere Teile der Operation laufen überlappend ab, wodurch Speicher- und Ausführungslatenzen verdeckt und die GPU-Auslastung verbessert werden. Im Gegensatz zu FlashAttention 3, das vor allem Laden und Berechnung in zwei Stufen überlappt, teilt FA4 die Arbeit in mehrere parallele Pipeline-Stufen auf. Verschiedene Warp-Gruppen übernehmen dabei separate Aufgaben, während jedes Tile die Attention-Berechnung durchläuft.

In diesem warp-spezialisierten Design übernehmen 32-Thread-Warps feste Rollen, darunter:

  • Datenladen und -bewegung: Verschieben von Q-, K- und V-Tiles aus dem globalen Speicher in schnelleren On-Chip-Speicher.
  • Berechnung: Erzeugen partieller Attention-Scores mithilfe von Tensor-Core-Matrix-Multiply-Accumulate-Operationen.
  • Softmax und Normalisierung: Berechnung von Exponentialwerten und Normalisierung der Attention-Gewichte.
  • Rescaling und Reduktion: Anwenden numerischer Korrekturen und Zusammenführen partieller Ergebnisse vor der Akkumulation.
  • Epilog und Speicherung: Zurückschreiben der fertigen Output-Tiles in den globalen Speicher.

Das Hauptziel besteht darin, die asynchronen Arbeitswarteschlangen jeder Warp-Gruppe möglichst durchgehend auszulasten. Dadurch kann der GPU-Scheduler schnell zwischen den Gruppen wechseln, sobald die benötigten Operanden verfügbar sind.

Software-Exponentialfunktionen über CUDA-Kerne

Eine der auffälligsten Änderungen in FA4 betrifft die Berechnung der Exponentialfunktion, die für Softmax benötigt wird. Klassischerweise nutzen Kernel spezielle GPU Special Function Units (SFUs), um rechenintensive mathematische Operationen wie exp() auszuführen. Da pro SM jedoch nur eine begrenzte Anzahl an SFUs vorhanden ist, können diese schnell zu einem Warteschlangen-Engpass werden.

FA4 umgeht diesen Flaschenhals, indem normale CUDA-Kerne näherungsweise Exponentialfunktionen in Software berechnen. Genauer gesagt enthält FA4 eine eigene Implementierung einer exp2(x)-Polynomapproximation mit hardwareähnlicher Präzision. Die Exponentialberechnung wird über ein kubisches Polynom simuliert, sodass die Arbeit parallel über viele CUDA-Kerne verteilt werden kann, statt auf wenige SFUs konzentriert zu sein.

Das Ergebnis sind kürzere Wartezeiten auf SFUs während der Softmax-Ausführung. Indem FA4 Exponentialberechnungen auf allgemeine CUDA-Kerne verlagert, kann der Warp, der Softmax verarbeitet, besser mit der restlichen Pipeline Schritt halten.

Intelligenteres Online-Softmax-Rescaling in FA4

Eine weitere Verbesserung in FA4 betrifft die numerische Stabilität bei der Softmax-Akkumulation. Wie frühere FlashAttention-Versionen nutzt FA4 Online-Softmax. Dabei werden partielle Maximalwerte und Summen während des Streamings durch die Sequenz gesammelt, um Overflow zu vermeiden. Frühere Versionen aktualisierten den laufenden Skalierungsfaktor, meist den bisher größten Logit, kontinuierlich. Sobald ein neuer Maximalwert erschien, wurde reskaliert, um die Softmax-Stabilität sicherzustellen.

FA4 führt adaptives Rescaling ein. Statt bei jedem neuen Maximum neu zu skalieren, wird nur dann reskaliert, wenn der neue Maximalwert deutlich größer ist als der vorherige. Dadurch soll die Häufigkeit von Rescale-Operationen ungefähr um den Faktor 10 sinken.

Kompatibilität und aktueller Stand

Die folgende Tabelle fasst die erwartete und aktuell verfügbare Kompatibilität von FlashAttention 4 über den Software- und Hardware-Stack hinweg zusammen.

Aspekt Aktueller Status Hinweise / Quelle
Hardware-Ziel FA4-Kernel sind für Blackwell-GPUs wie SM10.x / B200 ausgelegt. FA4 ist für GPUs der Blackwell-Generation optimiert. FA3 und frühere Versionen unterstützen ältere Architekturen, während Blackwell-Unterstützung weiter ergänzt wird.
Blackwell-Unterstützung in offiziellen Releases In Arbeit. Blackwell-Unterstützung ist noch nicht in veröffentlichte Versionen integriert, und Anwender verfolgen die Unterstützung der sm_120-Architektur.
Forward Pass (FA4) Funktional / verfügbar. Der FA4-Forward-Attention-Kernel wurde committed und kann mit geeigneten Builds auf Blackwell ausgeführt werden.
Backward Pass (FA4) Unvollständig / eingeschränkt. Dem Blackwell-Backward-Pass fehlen weiterhin wichtige Funktionen wie variable Sequenzlängen und GQA-Unterstützung.
Unterstützung variabler Sequenzlängen Im Backward Pass nicht vollständig unterstützt. Diese Funktion wird als fehlend in der Backward-Implementierung gemeldet und befindet sich weiterhin in Entwicklung.
GQA / Grouped-Query Attention Im Backward Pass noch nicht unterstützt. Dem Backward Pass fehlt Unterstützung für Grouped-Query Attention und ähnliche Varianten.
Framework-Integration Noch nicht unterstützt. vLLM erkennt aktuell nur FA2 oder FA3 und gibt einen Fehler aus, wenn FA4 ausgewählt wird.
Framework-Integration mit PyTorch SDPA Noch nicht in stabilen Releases enthalten. Die Scaled-Dot-Product-Attention-Backends von PyTorch enthalten bislang keine ausgelieferte FA4-Unterstützung.
CUDA Toolkit / Treiberanforderungen CUDA 12.8+ wird häufig für Blackwell-Builds verwendet. Blackwell- und SM10-Builds werden üblicherweise mit aktuellen CUDA Toolkits kompiliert, meist CUDA 12.8 oder neuer. Die konkreten Anforderungen können sich im Verlauf der Entwicklung ändern.

Der Forward Pass von FA4 ist bereits breit im öffentlichen Source Tree verfügbar. Öffentliche Diskussionen in FlashAttention-bezogenen Repositories zeigen, dass weiterhin vollständige Unterstützung für Backward Pass, variable Sequenzlängen, Grouped-Query und GQA angefragt wird. Das deutet darauf hin, dass dieses Thema noch ein offener öffentlicher Punkt ist.

Variable Sequenzlängen ermöglichen effizientes Batching von Sequenzen unterschiedlicher Länge, ohne auf Padding angewiesen zu sein. GQA, also Grouped-Query Attention, erlaubt mehreren Attention-Heads, dieselben Key/Value-Projektionen zu teilen, und wird in LLMs häufig genutzt, um Speicherbedarf zu reduzieren. Frühere FlashAttention-Versionen unterstützten MQA/GQA-Konfigurationen. Der zentrale Forward-Kernel von FA4 geht jedoch wahrscheinlich davon aus, dass für jede Query dieselbe Anzahl von Heads verwendet wird. Dadurch werden gruppierte Heads möglicherweise noch nicht korrekt verarbeitet. Modelle mit Grouped-Query Attention, darunter einige Llama-ähnliche Varianten, werden erst vollständig von FA4 unterstützt, wenn diese Funktion implementiert ist.

Auch die Integration von FA4 in das Ökosystem ist noch begrenzt, da der Kernel neu ist. Ein Beispiel ist die vLLM Serving Engine, die für LLM-Inferenz optimiert ist. Sie unterstützt derzeit FlashAttention 2 und FlashAttention 3, jedoch nicht FA4. Wird FA4 in vLLM ausgewählt, kann ein Fehler wegen einer nicht unterstützten Version auftreten, da der Versionsselektor nur Version 2 oder 3 zulässt.

FlashAttention einführen: Entscheidungshilfe

Die folgende Entscheidungshilfe unterstützt bei der Auswahl der passenden FlashAttention-Version für den jeweiligen Workload.

Situation Empfehlung Begründung
Sie nutzen Ampere- oder Ada-GPUs wie A100 oder RTX 30/40. Verwenden Sie FlashAttention-2 (FA2). FA4 ist Blackwell-only und wird auf SM8.x weder kompilieren noch laufen. FA2 bleibt für Ampere und Ada die am besten unterstützte Option und ist in modernen Stacks breit integriert.
Sie nutzen Hopper-GPUs wie H100 oder H200. Verwenden Sie FlashAttention-3 (FA3). FA3 wurde für Hopper entwickelt und liefert häufig starke Zugewinne, oft mit 1,5–2× gegenüber FA2 angegeben. Gleichzeitig bietet es in gängigen Implementierungen ausgereifte Funktionsabdeckung für Backward Pass, variable Sequenzlängen und GQA/MQA. FA4 ist nicht für Hopper vorgesehen.
Sie besitzen keine Blackwell-Hardware wie B200 oder B100. Verwenden Sie FA4 nicht. FA4 ist auf SM10.0 zugeschnitten und wird auf SM8.x oder SM9.x nicht korrekt kompilieren oder laufen. Nutzen Sie stattdessen die neueste FlashAttention-Version, die Ihre GPU unterstützt, etwa FA2 für Ampere/Ada oder FA3 für Hopper.
Sie haben Blackwell-Hardware und Ihr Workload ist ausschließlich Inferenz. Testen Sie zunächst FA4 Forward mit Fallback. FA4 ist aktuell forward-first, wodurch Inferenz am besten passt. Die größten Vorteile sind bei langen Sequenzen und Standard-Attention-Mustern zu erwarten. Halten Sie cuDNN- oder SDPA-Fallbacks aktiv, um Fehler oder Regressionen bei fehlenden Funktionen zu vermeiden.
Sie haben Blackwell-Hardware und Ihr Workload erfordert Training. Bevorzugen Sie einen ausgereiften Trainingspfad, bis FA4-Backward-Unterstützung verfügbar ist. Training benötigt einen Backward Pass. Wenn FA4 nur den Forward Pass übernimmt, kann der Backward Pass auf einen anderen Kernel zurückfallen und die Step-Zeit dominieren. Optionen sind Training auf Hopper mit FA3, vorübergehend langsamere Backward-Ausführung auf Blackwell oder das Warten auf FA4-Backward-Support.
Ihr Modell benötigt variables Batching mit ragged batches über cu_seqlens. Vermeiden Sie FA4, sofern Padding oder Fallback-Verhalten nicht akzeptabel ist. Fehlt FA4 in Ihrem Stack die Unterstützung für variable Sequenzlängen, können Fehler oder stille Fallbacks auftreten. Mögliche Workarounds sind Padding auf einheitliche Längen, Bucketing nach Länge oder das Deaktivieren von FA4 für variable Sequenzen.
Ihr Modell nutzt GQA oder MQA, etwa gruppierte Query-Heads in Llama-ähnlichen Modellen. Validieren Sie sorgfältig und seien Sie bereit, FA4 zu deaktivieren. Wenn FA4 GQA für Ihren Ausführungspfad nicht unterstützt, besonders im Backward Pass und teilweise auch im Forward Pass, kann es zu falschem Verhalten oder Fallbacks kommen. Nutzen Sie ein bewährtes Backend wie FA3, cuDNN oder SDPA, bis GQA in Ihrer Umgebung bestätigt ist.
Sie möchten FP4 oder andere Ultra-Low-Precision-Funktionen verwenden. Gehen Sie nicht davon aus, dass FA4 dies bereits ermöglicht. Frühe FA4-Einführungen sollten mit BF16 oder FP16 beginnen. FP4 hängt von Kernel- und Framework-Unterstützung ab und sollte für frühe Deployments nur eingeplant werden, wenn Ihre Toolchain dies ausdrücklich dokumentiert.
Sie benötigen maximale Stabilität und bewährtes Verhalten. Wählen Sie die ausgereifteste Option für Ihre GPU. FA4 ist neu und entwickelt sich weiter, mit fehlenden Funktionen und möglichen Edge-Case-Bugs. Bei geringen Risikotoleranzen in Produktion sollten reife Kernel bevorzugt und FA4 nur hinter einem Feature Flag mit strengen Korrektheitsprüfungen eingeführt werden.
Sie können experimentieren und aggressiv optimieren. Führen Sie FA4 schrittweise auf Blackwell ein. Ein praktischer Ansatz ist, FA4 zunächst für einen engen Workload-Ausschnitt zu aktivieren, etwa Inferenz, Long-Sequence-Buckets, Non-GQA und Fixed-Length Inputs. Messen Sie Durchsatz und Latenz, prüfen Sie die numerische Korrektheit und erweitern Sie die Nutzung, sobald die Unterstützung reifer wird.

Häufige Fragen zu FlashAttention 4

Welches Problem löst FlashAttention 4?

FA4 reduziert den hohen HBM-Speicherverkehr, der durch Attention entsteht, indem Attention tileweise auf dem Chip berechnet wird und die vollständige QK⊤-Matrix nicht materialisiert werden muss.

Was ist der wichtigste architektonische Unterschied zwischen FA4 und FA3?

FA4 nutzt eine warp-spezialisierte Pipeline mit ungefähr fünf Stufen: Laden, Berechnen, Softmax und Normalisierung, Rescaling und Reduktion sowie Speichern. Dadurch steigen Überlappung und On-Chip-Wiederverwendung auf Blackwell-SM10.x-GPUs.

Warum berechnet FA4 Exponentialfunktionen auf CUDA-Kernen statt auf SFUs?

SFUs sind nur begrenzt vorhanden und können während Softmax schnell zum Engpass werden. FA4 berechnet deshalb eine Software-Approximation von exp2() auf CUDA-Kernen, um die SFUs zu entlasten.

Was ändert adaptives Online-Rescaling bei Softmax?

Statt bei jedem neuen Maximum neu zu skalieren, reskaliert FA4 nur dann, wenn das Maximum deutlich ansteigt. Das reduziert den Rescale-Overhead, während die numerische Stabilität erhalten bleibt.

Wann sollten Entwickler FA4 heute in Produktion einsetzen?

FA4 sollte zunächst für Blackwell-Inferenz-Workloads mit Fixed-Length-Standard-Attention hinter einem Feature Flag eingeführt werden. cuDNN, SDPA sowie FA3/FA2 auf älteren GPUs sollten als Fallbacks verfügbar bleiben, bis Backward Pass, variable Sequenzlängen und GQA-Unterstützung ausgereift sind.

Fazit

FlashAttention 4 erweitert das ursprüngliche Ziel von FlashAttention, die Speicherbandbreitenanforderungen von Attention zu reduzieren, indem mehr Q-, K- und V-Arbeit direkt auf dem Chip ausgeführt wird. Anders als frühere Versionen erreicht FA4 dies mit einer Blackwell-spezifischen warp-spezialisierten 5-stufigen Pipeline und zwei großen Softmax-Verbesserungen: Software-Exponentialfunktionen auf CUDA-Kernen zur Reduzierung von SFU-Engpässen sowie adaptives Online-Rescaling zur Vermeidung redundanter Stabilitätsberechnungen.

FA4 hat bei langen Sequenzlängen deutliche Forward-Pass-Durchsatzverbesserungen gegenüber cuDNN gezeigt, bleibt jedoch forward-first und Blackwell-only. Zudem bestehen weiterhin wichtige Funktionslücken, darunter fehlender Backward Pass, Unterstützung für variable Sequenzlängen und GQA-Support, während die breitere Ökosystem-Integration noch nicht vollständig ausgereift ist.

Die praktische Schlussfolgerung lautet: FA4 kann für Blackwell-Inferenz ein vielversprechender, aber kontrolliert einzuführender Optimierungspfad sein. Die Einführung sollte durch strenge Benchmarks, Korrektheitsprüfungen und zuverlässige Fallbacks abgesichert werden. Trainings-Workloads und breitere Hardwareumgebungen sollten produktiv weiterhin auf ausgereifte FA3- und FA2-Pfade setzen.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Serverlose LLM-Inference: Wichtige Performance-Metriken

AI/ML, Tutorial
VijonaGestern um 8:31 Uhr Serverless-LLM-Inference in der Produktion: Leistungskennzahlen, die wirklich zählen Wenn Teams serverlose LLM-Inference-Modelle und Plattformen vergleichen, wird die Diskussion häufig auf eine einzige Kennzahl reduziert: die mediane Anzahl…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

ArgoCD ApplicationSets für Multi-Cluster Kubernetes

Kubernetes, Tutorial
Vijona1 Juli um 13:31 Uhr Multi-Cluster-Kubernetes-Deployments mit ArgoCD ApplicationSets verwalten Der Betrieb von Anwendungen über mehrere Kubernetes-Cluster hinweg kann in produktiven Umgebungen für Entwicklungs- und Betriebsteams schnell anspruchsvoll werden. Die Auslieferung…