gpumode · 강의 아카이브
《GPU Mode》 L080 2025 High priority transcript · failed

How FlashAttention 4 Works

FA3 의 ping-pong 위에 한 단계 더 — Blackwell 의 5세대 tensor core (tcgen05.mma), TMA 의 깊은 활용, 그리고 5-way warp specialization 으로 cudnn 대비 ~20% 빠른 attention 을 짠다. Charles Frye 가 Modal 의 "reverse-engineer FlashAttention 4" 블로그에서 풀어낸 새 칩 위 attention 의 모양 — 학습 노트.

FlashAttention 4 Blackwell TMA tcgen05.mma warp specialization FP8 FP4 async pipeline cudnn comparison
C
Speaker
Charles Frye
Modal · ML Education / GPU Engineering
강의 번호
L080
학습 우선순위
High
자막
failed
출처
Modal blog
§ 01강의가 풀려는 문제· why this lecture exists

FA3 가 H100 의 SOTA 였다 — Blackwell 위에서 어떻게 다시 짜이는가

FlashAttention 시리즈는 GPU 한 세대마다 다시 짜인다 — FA1 (V100/A100), FA2 (A100 최적화), FA3 (Hopper). 그리고 2025 년 Blackwell (B200) 이 등장하면서 FA4 가 등장. 이 강의는 Charles Frye 가 Modal 블로그에서 FA4 코드를 reverse-engineer 해 분석한 결과를 풀어낸 자리.

강의의 frame.

  1. 새 칩의 새 명령 — Blackwell 의 tcgen05.mma.cta_group::1 같은 5세대 tensor core 명령. 이걸 쓰지 않으면 peak 의 한참 아래.
  2. warp specialization 의 한 단계 위 — FA3 가 두 그룹의 ping-pong 이라면 FA4 는 Load / MMA / Softmax / Correction / Epilogue 의 5-way 분리.
  3. SFU 우회 — softmax 의 exp 가 SFU bottleneck 에 부딪히는 자리에서 cubic polynomial approximation 으로 우회.
  4. 결과 — cudnn 의 attention 대비 ~20% 빠르다. attention 이라는 op 가 얼마나 깊게 짜내질 수 있는지 의 새 표.
강의의 인지적 frame

FA4 는 단일 트릭이 아니라 여러 작은 트릭의 합. (a) hardware 의 새 명령을 정확히 쓴다, (b) async pipeline 을 더 깊게 짠다, (c) softmax 의 SFU bottleneck 을 우회한다 — 각자의 effect 가 5-15% 씩, 곱하면 20%+. "한 방" 이 없는 게 FA4 의 특징.

"FA3 가 ping-pong 의 균형을 잡았다면, FA4 는 그 균형을 5 명의 specialized worker 로 분해한다."Modal blog · 확인 필요
§ 02FA3 → FA4 의 변경점· what changed

한 표로 본 architecture diff

FlashAttention 3 (Hopper)

  • 2-way warpgroup ping-pong (G0 / G1)
  • WGMMA (sm_90a) — 4세대 tensor core
  • TMA box copy 사용
  • BF16 / FP16 + 실험적 FP8
  • 한 warpgroup 안에서 softmax + MMA
  • pipeline stage 2-3
  • 전형적 throughput H100 ~75% peak

FlashAttention 4 (Blackwell)

  • 5-way warp specialization — Load / MMA / Softmax / Correction / Epilogue
  • tcgen05.mma.cta_group::1 — 5세대 tensor core, single-CTA
  • TMA + tensor memory accelerator 의 더 깊은 활용
  • BF16 / FP16 / FP8 + 실험적 FP4
  • softmax 가 별도 specialized warp 에
  • multi-stage multi-buffered async pipeline
  • SFU 우회 — cubic poly approx for exp
  • cudnn 대비 ~20% 빠름

또 강조할 만한 변경 — softmax normalization update 의 lazy 화. FA3 까지는 row-max 가 갱신될 때마다 모든 partial output 을 rescale. FA4 는 "max 가 numerical stability 에 영향을 줄 만큼 변할 때만" rescale. "output rescaling 비용을 10배 줄였다" 는 Modal 블로그의 표현.

FIG · FA3 vs FA4 architecture comparisonwarp 역할의 분리
FlashAttention 3 — H100 G0: load+softmax+MMA G1: load+softmax+MMA SMEM stage buffer (2-3 stages) 2 warpgroup ping-pong, ~75% peak FlashAttention 4 — B200 Load MMA Softmax Correct Epi 1 warp tensor core 8 warps 4 warps 1-2 multi-stage SMEM (TMA-driven) tcgen05.mma — 5세대 tensor core cubic poly approx for exp (no SFU) lazy rescale (10× fewer ops) 5-way specialization, cudnn +20%
FA3 는 두 warpgroup 이 비슷한 일을 ping-pong. FA4 는 5 가지 다른 일이 동시에 진행. warp 가 "같은 코드를 번갈아 도는" 게 아니라 "서로 다른 stage 의 specialist" 가 됐다.
§ 03Hopper TMA 더 깊이· load warp 의 도구

"한 warp 가 TMA 만 발사한다" 의 의미

FA3 까지 TMA 는 warp 의 일부 thread 만 사용하는 모델이었다. FA4 는 한 step 더 — 한 warp 전체를 "Load warp" 로 specialize. async copy 발사만 하고 다른 일은 하지 않는다.

왜 의미가 있는가.

FIG · TMA + warpgroup specialization SVGHopper / Blackwell 의 async pipeline
HBM Q · K · V tensors Load warp TMA descriptor only TMA stage 0 stage 1 stage 2 mbarrier MMA warp (tensor core) Softmax warp (8 warps) Correction warp (4 warps) Epilogue (1-2 warps) 시간이 흐르면서: 1. Load warp 가 stage 0 채움 → mbarrier::arrive 2. MMA / Softmax / Correction 이 stage 0 위 동시 작업 3. 동시에 Load warp 는 stage 1 / 2 채움 → 다음 cycle 준비
"Load warp 가 한 warp 만 차지" 가 핵심 — MMA / Softmax 는 한 warp 의 register 손실 없이 모든 register 를 본인 일에 쓸 수 있다. register pressure 의 redistribution.
§ 04Blackwell 이 새로 여는 자리· tcgen05.mma · FP4

새 ISA 가 만든 새 자리

Blackwell (B200) 이 H100 위에 추가한 핵심 자리.

왜 cta_group::1 이 중요한가

H100 의 일부 명령은 cross-CTA 협업을 요구해 cluster 단위 스케줄링이 필요했다. cta_group::1 은 그 의존을 없애 — tile 별로 독립적. mega-kernel / persistent kernel 로 wrapping 이 단순해지고 occupancy 도 안정적.

"새 칩은 새 명령을 만들지만, 진짜 변화는 그 명령이 만드는 새 코드 패턴에 있다 — FA4 의 5-way specialization 이 그 답."학습 노트
§ 05producer-consumer 재설계· 5-way specialization

다섯 명의 specialist 가 같은 tile 의 lifecycle 을 분담

FA4 의 핵심 architectural 결정 — warp 의 역할을 다섯으로 분리. 각자가 자기 stage 만 담당, 다른 stage 의 결정은 모른다.

L1
Load
TMA 발사. async copy. mbarrier 알림. 1 warp
L2
MMA
tcgen05.mma. tensor core 직접. accumulator update. tensor core
L3
Softmax
row max, exp (cubic poly), sum. 8 warps
L4
Correction
lazy rescale 결정. 이전 partial output 갱신. 4 warps
L5
Epilogue
최종 output store. HBM write. 1-2 warps
FIG · 5-way specialization timeline한 attention block 의 처리
Load (1)
tile 0 K/V
tile 1 K/V
tile 2 K/V
tile 3 K/V
tile 4 K/V
tile 5 K/V
MMA (TC)
QK 0
QK 1
QK 2
QK 3
QK 4
Softmax (8)
sm 0
sm 1
sm 2
sm 3
Correct (4)
corr 0
corr 1
corr 2
Epilogue
store
중요한 사실 — 한 시점에 다섯 stage 가 모두 동시에 진행. tile 0 의 store 가 끝나기 전에 tile 5 의 load 가 진행 중. SM 의 모든 자원 (TC, register, SMEM) 이 항상 활성.

이 5-way 모델의 핵심 이점 — each warp scheduler 가 매 cycle 다른 stage 로 switch 할 수 있다. SM 의 4 개 sub-partition 은 동시에 다른 일을 할 수 있고, 그것이 5 개 specialist 위에 mapping 되면 throughput 이 polynomial 로 올라간다.

§ 06FP8 / FP4 attention· low precision

"attention score 도 low precision 으로" 의 모험

attention 의 어느 자리가 low precision 으로 가도 안전한가의 답이 FA4 에서 더 명확해진다.

이 분포가 핵심 — tensor core 가 도는 자리는 low precision, scalar 작업 (softmax) 은 high precision. FP8 attention 이 BF16 대비 1.5-2× 속도, FP4 는 2-4× (확인 필요). 단 prefill 같은 long-context 에서는 numerical drift 가 누적할 risk.

FP8 vs FP4 의 사용 자리

FP8 — production-ready, 거의 모든 attention 자리에. FP4 — chat 응답 같은 short-context 에 안전, long-context (32K+) 에서는 추가 검증 필요. 강의 시점에 FP4 attention 은 "experimental" (확인 필요).

§ 07implementation 디테일· tricks Modal found

코드 안에 박힌 작은 결정들

Modal 이 reverse-engineer 한 디테일 중 단독 트릭들. 각자 5-15% effect, 곱하면 큰 차이.

"FA4 는 한 줄의 magic 이 아니다 — 십수 개의 작은 결정이 곱해진 결과. 각자 6-15%, 합하면 cudnn +20%."Modal 블로그 · 확인 필요
§ 08채택· production users

"Blackwell 이 풀려나간 자리" 와 1:1

채택 곡선이 빠른 이유 — Blackwell 의 새 기능을 쓰지 않고 attention 을 짤 수 없기 때문. cudnn 은 NVIDIA 가 직접 짜지만 fine-grained 통제가 어려움. FA4 는 같은 hardware 를 더 직접 짜낸 결과.

§ 09다음· future arch

Rubin / Vera 위에서 다시 짜이는 attention

§ 10기억할 메모· key takeaways

다시 열었을 때 손에 잡혀야 할 것

5-way specialization
Load / MMA / Softmax / Correction / Epilogue. FA3 의 ping-pong 의 한 단계 위.
tcgen05.mma
Blackwell 의 5세대 tensor core. cta_group::1 으로 single-CTA, tile scheduling 단순.
cubic poly for exp
SFU 우회. 작은 head dim 에서 SFU bottleneck 회피. BF16 값에 대해 SFU 출력과 일치.
lazy softmax rescale
row-max 가 stability 에 영향 줄 때만 rescale. output rescale 10× 절감.
FP8 attention
Q·K^T 와 P·V 안전. softmax 는 FP32 유지. ~1.5-2× speedup vs BF16.
FP4 attention
실험적. short-context 안전. long-context 에서 calibration 필요. 2-4× speedup.
cudnn +20%
cudnn 의 hand-tuned attention 보다 ~20% 빠름. 단일 magic 아닌 작은 결정의 합.
load warp specialize
한 warp 가 TMA 만. register pressure redistribution. 다른 warp 는 자기 일에 집중.
YouTube강의 영상 (확인 필요)
SpecNVIDIA Blackwell PTX ISA · tcgen05.mma docs

손에 새기기 — 실습 시퀀스

  1. FA4 코드 읽기 — flash-attention repo 의 sm_100 branch (Blackwell). 5 개 warp role 이 어떻게 분배되는지 line-by-line.
  2. FA3 vs FA4 직접 측정 — 같은 attention shape 으로 H100 (FA3) 과 B200 (FA4) wallclock 비교.
  3. cubic poly approx — exp 의 polynomial approximation 직접 짜보고 SFU 의 결과와 BF16 위에서 비교.
  4. lazy rescale 실험 — naïve eager rescale vs lazy 의 wallclock 차이를 toy attention 에서 측정.
  5. FP8 attention — flash-attn FP8 path 직접 사용. accuracy drift 측정.
  6. nsys timeline — FA4 의 5-way specialization 이 SM 위에서 어떻게 동시 진행되는지 timeline 으로.
§ 11다른 강의로의 연결· connections

이 강의가 시리즈 안에서 어디로 이어지는가

§ 12열린 질문· open questions

다음에 다시 들었을 때 직접 검증해야 할 것들

검증 메모

이 노트는 Modal 블로그의 reverse-engineer + GPU 도메인 지식의 재구성. 모든 수치 (5-way, 8 warps, 4 warps, 1-2 warps 등) 는 Modal 블로그 출처. 정확한 PTX 와 SASS 의 형태는 flash-attention repo 직접 참조 필요. FA4 는 활발히 개발 중이라 강의 시점과 현재가 다를 수 있음.

← Lecture 079Mirage MPK — Compiling LLMs into Mega Kernels Lecture 081 →Functional Data-Parallel Array Programming (Futhark)