ai-infra-interview-305

第 196 题:FlashAttentionIO-aware优化原理?tilingrecomputation

题目

FlashAttentionIO-aware优化原理?tilingrecomputation


完整讲解

一、IO-aware 的问题背景

标准 attention 的 QKV 与 softmax 需要多次读写 HBM(显存),带宽成为瓶颈;算力往往吃不满。IO-aware 优化:从「减少对 HBM 的读写、提高算术强度」出发设计算法与实现,使 attention 更贴近算力上限而非带宽上限。

二、Tiling 与分块

Tiling:不一次性把整块 Q、K、V 从 HBM 读入,而是按(tile)处理。每次只把 Q 的一小块K、V 的对应块 读入 SRAM/共享内存,在片上算完该块的 attention 与输出,再写回 HBM。这样重复利用片上数据,减少 HBM 往返次数,即降低 IO 量、提高有效算术强度。

三、Recomputation

Recomputation:前向时不存完整的 attention 中间结果(如 softmax 前的 scores、softmax 结果)回 HBM,只存为反向所需的最少信息(如 softmax 归一化因子、或分块时的块级统计)。反向时按需重新计算部分前向(用存下的统计量快速重算),用算换存,降低显存占用与带宽,避免 OOM 并利于更大 batch 或更长序列。

面试要点


记忆要点

  1. IO-aware = 减 HBM 访问、提算术强度。
  2. Tiling = 分块、片上算、少往返。
  3. Recomputation = 少存、反向重算;算换存。
返回模块 返回总览