FlashAttention
也称为 flash attention、融合注意力 kernel
先用大白话
FlashAttention 在高速片上内存中分块计算精确注意力,避免生成那个让注意力又慢又耗内存的巨大中间矩阵。
技术定义
FlashAttention 是一种注意力算法,把计算分块安排在片上 SRAM 中并增量式重缩放结果,不在 HBM 中实体化完整分数矩阵就得到精确注意力。
工程细节
朴素注意力要把随序列长度平方增长的分数矩阵写入主存再读回,速度由带宽而非算术决定。FlashAttention 把整个计算融合进一个 kernel,让键值块流过片上内存,用在线 softmax 保持结果精确。后续版本和各厂商实现把这一思想扩展到新硬件世代、新头布局和面向推理的 decode 路径。
为什么重要
这个 kernel 家族让长上下文真正可行,把注意力从长序列的主导成本变成可控的一环。它也是单个精心设计的 kernel 能撕动整个行业性能的最经典例子。
如何在 InferenceX 中解读
InferenceX 测试的所有引擎都依赖这一脉络的融合注意力 kernel,NVIDIA 硬件上经由 FlashInfer,AMD 上经由 AITER,那里的 kernel 改进经常在硬件不变的情况下移动已发布的曲线。
参考资料
在真实基准中理解这一概念
SGLang 0.5.6 在 B200 DeepSeek R1 FP4 上的表现:低并发下最高提升 1.8 倍
针对 DeepSeek V3 的分段 CUDA graph、统一事件循环和 JIT 内核将 8k/1k 吞吐量从 508 提升至 907 tok/s/GPU,使用相同的 16 GPU B200 资源池
AMD MI355X Qwen3.5 397B-A17B 推理:SGLang FP8 三个月内每 GPU 吞吐量提升最高 19 倍
从 v0.5.8(2 月)→ v0.5.10rc0(4 月)→ v0.5.12(5 月),三次 AITER 内核合入 MI355X 加上从 TP=8 到 TP=2/TP=4 的重新调优,将 Qwen3.5 8k/1k 峰值从 1.3k 推高至 6.4k tok/s/GPU,并将曲线延伸至 75 tok/s/user