软件栈
三缓冲(triple buffering)
也称为 triple buffering、三缓冲、三级预取、更深的流水线
先用大白话
三缓冲同时让三个数据块在途,一个在计算、两个在读取,让计算单元几乎不用等待内存。
技术定义
三缓冲是一种 kernel 流水线技术,分配三个片上缓冲区,在处理当前块的同时从 HBM 预取接下来的两个块,比双缓冲多一级。
工程细节
双缓冲通过在计算第 N 块时读取第 N+1 块来隐藏 HBM 延迟。三缓冲再加上第 N+2 块,在传输时间波动、或某一块的读取比另一块的计算更长时更有帮助。代价是 VMEM:三个缓冲区必须与 kernel 其他存活数据一起放得下。在 Ironwood 上,grouped matmul 第二版对专家权重做三缓冲,让下一组专家的权重在计算当前组时已经在途;批量 ragged paged attention 也对 page 数据做三缓冲,以减少 padding 并改善流水线。
为什么重要
更深的流水线用稀缺的 VMEM 换 MXU 利用率。取舍取决于块大小,这正是 RPA v3 修复把 KV 读取块与 KV 计算块分开的原因:把计算块缩到 4k token、读取块保持 16k,为预取缓冲腾出了空间。
如何在 InferenceX 中解读
带三缓冲专家权重的 grouped matmul v2 属于 MoE kernel 工作的一部分,这些工作支撑了 TPU InferenceX 预览中的 Qwen3.5 397B 结果。批量 RPA 的改动在 Qwen3-32B 上测量,其数字与 397B 的对比分开呈现。