第 13 课:Decode Attention 深度优化:Flash-Decoding、FlashInfer 与 FlashMLA
本课目标与通过标准
本课产出:掌握大语言模型 Decode 阶段自注意力算子的微架构瓶颈与加速范式。理解从 FlashAttention(针对 Prefill 长矩阵乘)到 Flash-Decoding(针对 Decode 访存受限与 SM 空转) 的算子演进,掌握两阶段跨 CTA Split-KV 归约的数学结合律与数值稳定实现;深入拆解 FlashInfer 的 BSR 稀疏块格式与 Plan-Run 执行机制;深入分析 DeepSeek MLA(Multi-Head Latent Attention) 的低秩 KV 压缩与矩阵吸收(Matrix Absorption)原理,推导显存带宽读取字节数与算术强度跃升。
通过要求:唯一代码填空题通过全部断言;Q1~Q3 沿真实的 GPU SM 线程映射、SRAM 累加器与低秩张量投影给出因果链;能指出一个正确性不变量、一个数值舍入临界点和一个必须根据硬件 SM 数测定的工程边界;总分至少 8/10。
源码版本与阅读方法
本课程使用固定 commit 的永久链接保证行号可复现,同时链接 current docs 供核对最新变化。阅读时先建立 GPU 硬件 SM 占用率(Occupancy)与显存带宽利用率(MBU)的心智模型:
| 顺序 | 核心文件与模块 | 带着什么问题读 |
|---|---|---|
| 1 | Flash-Decoding 官方博客中的 Triton 参考实现 | 为什么沿 KV 维度切开后,局部 能够无偏融合成精确全局 Softmax? |
| 2 | FlashInfer flashinfer/attention/(BSR 分块与 batch decode kernel) |
FlashInfer 是如何用统一的 BSR 格式处理 Paged KV Cache 与 Ragged Batch 的? |
| 3 | FlashMLA 仓库 deepseek-ai/FlashMLA 的 csrc/(Hopper kernel) |
Hopper TMA 与 WGMMA 在处理 MLA 低秩投影特征时的 Tile 切分与异步流水线设计? |
| 4 | vLLM vllm/v1/attention/backends/(各注意力后端的分发) |
现代推理引擎如何根据 Batch Size 和 Sequence Length 动态在常规 Attention 与 Split-KV 间切换? |
版本基准:论文 FlashInfer arXiv:2501.01005、DeepSeek-V2 arXiv:2405.04434 / V3 arXiv:2412.19437;实现参考 FlashMLA 仓库 deepseek-ai/FlashMLA。
🔒 VIP 专享:本课核心机制、推导、代码题与参考答案已锁定
本课剩余部分(核心心智模型、数值推导、代码填空题、问答题与完整参考答案)为 VIP 内容。同一张密钥可解锁全部 VIP 内容:题库、速查表、系统设计案例与全部付费课程。