Overview
本文档系列基于 Flash Attention v2.8.3 源码进行深度技术解析,涵盖理论基础、核心算法、CUDA 内核实现、Python API、高级特性与使用教程。共 9 个模块、32 篇文章,从理论到实践全面解析 Flash Attention 的设计与实现。
文档总览#
graph TD
subgraph overview["模块一 - 项目总览"]
O1["项目介绍"]
O2["架构总览"]
O3["快速上手"]
end
subgraph theory["模块二 - 理论基础"]
T1["Standard Attention"]
T2["IO-Awareness"]
T3["Flash Attention 理论"]
end
subgraph core["模块三 - 核心算法"]
C1["Online Softmax"]
C2["分块策略"]
C3["前向传递"]
C4["反向传递"]
end
subgraph cuda["模块四 - CUDA 内核"]
K1["GPU 编程基础"]
K2["SM90 内核架构"]
K3["前向内核实现"]
K4["反向内核实现"]
K5["SM80 对比"]
end
subgraph api["模块五 - Python API"]
A1["API 参考"]
A2["Autograd 集成"]
A3["模块与层"]
end
subgraph walk["模块六 - 代码追踪"]
W1["前向调用链"]
W2["反向调用链"]
W3["调试指南"]
end
subgraph adv["模块七 - 高级特性"]
V1["因果遮蔽"]
V2["KV Cache 推理"]
V3["GQA/MQA"]
V4["FP8 支持"]
end
subgraph usage["模块八 - 使用教程"]
U1["基础用法"]
U2["训练集成"]
U3["推理优化"]
U4["性能测试"]
end
subgraph appendix["模块九 - 附录"]
X1["术语表"]
X2["论文阅读指南"]
X3["FAQ"]
end
overview --> theory --> core --> cuda
cuda --> api --> walk --> adv
adv --> usage --> appendix
模块一:项目总览#
| # |
文章 |
内容简介 |
| 1 |
项目介绍 |
Flash Attention 的背景、动机、核心创新 |
| 2 |
架构总览 |
代码仓库结构、模块关系、编译系统 |
| 3 |
快速上手 |
安装、基础用法、5 分钟入门 |
模块二:理论基础#
模块三:核心算法#
模块四:CUDA 内核解析#
| # |
文章 |
内容简介 |
| 11 |
GPU 编程基础 |
SM/Warp/Thread 架构、CUTLASS/CuTe、Hopper 特性 |
| 12 |
SM90 内核架构 |
模板驱动设计、SharedStorage、Pipeline |
| 13 |
前向内核实现 |
operator() 逐行解析、GMMA、TMA Pipeline |
| 14 |
反向内核实现 |
3 个 Warp Group、N-outer Q-inner 循环 |
| 15 |
SM80 内核对比 |
Ampere vs Hopper 实现差异 |
模块五:Python API#
| # |
文章 |
内容简介 |
| 16 |
API 参考 |
7 个公开 API 完整参数说明 |
| 17 |
Autograd 集成 |
6 个 Autograd Function、torch.compile 支持 |
| 18 |
模块与层 |
MHA、RotaryEmbedding、Block 模块 |
模块六:代码链路追踪#
| # |
文章 |
内容简介 |
| 19 |
前向调用链 |
Python → C++ → CUDA 完整调用追踪 |
| 20 |
反向调用链 |
反向传播的端到端调用链 |
| 21 |
调试指南 |
常见错误、数值验证、性能调试 |
模块七:高级特性#
模块八:使用教程#
| # |
文章 |
内容简介 |
| 26 |
基础用法 |
安装、API 选择、因果/窗口/GQA 用法 |
| 27 |
训练集成 |
MHA 模块、Transformer Block、混合精度 |
| 28 |
推理优化 |
KV Cache、自回归生成、Flash Decoding |
| 29 |
性能测试 |
FLOPS 计算、Benchmark 工具、调优指南 |
模块九:附录#
| # |
文章 |
内容简介 |
| 30 |
术语表 |
50+ 技术术语定义 |
| 31 |
论文阅读指南 |
核心论文、前置知识、阅读路线 |
| 32 |
常见问题 |
24 个高频 FAQ |
阅读建议#
初学者路线#
- 项目介绍 → 快速上手
- Standard Attention → Flash Attention 理论
- 基础用法 → FAQ
算法研究者路线#
- 理论基础(模块二全部)
- 核心算法(模块三全部)
- 论文阅读指南
CUDA 开发者路线#
- GPU 编程基础
- CUDA 内核(模块四全部)
- 代码链路追踪(模块六全部)
应用工程师路线#
- 基础用法
- 训练集成 或 推理优化
- 性能测试
- 高级特性(按需阅读)
技术信息#
- 目标版本:Flash Attention v2.8.3
- GPU 架构:NVIDIA Hopper (SM90) 为主,兼顾 Ampere (SM80)
- 文档语言:中文(技术术语保留英文原文)
- 总字数:约 200,000 字
- Mermaid 图:70+ 张