LogoCookLLM文档
LogoCookLLM文档
首页CookLLM

原理精讲

词元化
Tokenization 基础BPE 算法详解GPT 系列 TokenizerBPE 训练工程化
模型架构
Attention 机制详解
Engram
GPU 编程基础
GPU 架构基础张量布局Triton 入门:向量加法
FlashAttention
Flash Attention 原理详解从朴素实现到 Auto-TuningBlock Pointer 与多维支持Causal Masking 优化Grouped Query Attention反向传播实现

动手训练

系统工程

Flash Attention

深入理解 Flash Attention 的原理与 Triton 实现

概述

Flash Attention 是一种高效的注意力机制实现,通过 Tiling(分块计算)和 Online Softmax 技术,将内存读写复杂度从 O(N2)O(N^2)O(N2) 降低到 O(N)O(N)O(N),显著提升了 Transformer 模型的训练和推理速度。

本系列假设你已掌握 GPU 编程基础。如果对 SIMT、Shared Memory 等概念不熟悉,建议先学习 GPU 编程基础。

章节内容

Flash Attention 原理详解

通过交互式可视化,深入理解内存瓶颈、Online Softmax 与分块矩阵乘法

从朴素实现到 Auto-Tuning

编写第一个 Flash Attention Kernel,并利用 Auto-Tune 进行性能优化

Block Pointer 与多维支持

从单序列扩展到 Batch/Head 并行,并使用 Block Pointer 简化指针管理

Causal Masking 优化

为自回归模型实现因果注意力机制,通过跳过上三角计算实现 ~2x 加速

Grouped Query Attention

实现 GQA/MQA 支持,让多个 Query Head 共享 KV,优化 KV Cache 内存占用

反向传播实现

实现 Flash Attention 的梯度计算,通过 Recomputation 实现内存高效的训练

为什么需要学这些?

你想做的事需要的知识
理解为什么标准 Attention 慢HBM vs SRAM、IO-bound 概念
实现自己的 Attention KernelOnline Softmax、Tiling
优化 Kernel 性能Autotune、Pipeline、Block Pointer
支持长序列推理理解 O(N2)→O(N)O(N^2) \to O(N)O(N2)→O(N) 的内存优化

参考资料

  • FlashAttention 论文
  • FlashAttention-2 论文
  • Triton Documentation

Triton 入门:向量加法

通过一个简单的向量加法例子,学习 Triton 的基本编程模型。

Flash Attention 原理详解

通过交互式可视化,深入理解 Flash Attention 的核心技术:内存瓶颈、Online Softmax、与分块矩阵乘法。

目录

概述
章节内容
为什么需要学这些?
参考资料