关于FlashAttention的一些思考

📅 发布时间:2026/8/27 11:34:07
关于FlashAttention的一些思考
datawhale社区Datawhale-学用 AI,从此开始llm-algo-leetcode教程地址GitHub - datawhalechina/llm-algo-leetcode: LLM algorithm practice lab with theory, solutions, and test cases.《大模型算法与系统教程》面向大模型入门到进阶的算法实战教程覆盖原理讲解、答案解析、测试用例与 CUDA/Triton 实战。 · GitHubFlashAttention 的 FLOPs 其实不减反增反向传播时它不保存 N×N 的注意力矩阵而是用 Recomputation 重算一遍但它仍然大幅提速——这恰好证明了瓶颈在访存而非计算。它没减少计算量甚至略有增加快是因为砍掉了 HBM 读写。FlashAttention 的演进不是单纯的算法越来越聪明而是算法与 GPU 硬件一代代互相磨合、协同设计hardware-algorithm co-design的过程。演进的主轴版本解决的核心问题优化层次与硬件的关系V1显存墙中间矩阵不能落显存数学层online softmax tiling硬件无关通用V2GPU 吃不饱慢操作多、并行度低算法调度层循环重排、推迟归一化仍较通用V3榨干特定硬件异步化一切指令/微架构层WGMMA、TMA、流水线强绑定 HopperV4新架构继续工程化代码生成 kernel 组织面向 BlackwellFlashAttention 的演进是一条算法-硬件协同设计的曲线V1 用数学证明注意力可以分块在线计算解决了能不能省显存的问题V2 靠重排计算顺序解决GPU 利用率高不高的问题从 V3 开始优化下沉到特定 GPU 的专属硬件单元异步矩阵指令、硬件搬运器、流水线进入了为某一代芯片量身定制的阶段。越往后算法创新占比越小工程与硬件绑定的占比越大。