Day 16 · batch 从 1 扫到 128:吞吐曲线在哪里离开斜线
把 batch 开到 1、4、16、64、128,测 decode 每步时间,算吞吐,标到 Day 15 的 roofline 上。W1 预测 batch 到 ridge 附近才碰屋顶,今天要看这条曲线实际在哪弯、为什么弯——弯的原因不是 FLOP 追上了带宽,是 KV cache 的字节跟着 batch 一起涨。
把 batch 开到 1、4、16、64、128,测 decode 每步时间,算吞吐,标到 Day 15 的 roofline 上。W1 预测 batch 到 ridge 附近才碰屋顶,今天要看这条曲线实际在哪弯、为什么弯——弯的原因不是 FLOP 追上了带宽,是 KV cache 的字节跟着 batch 一起涨。
把 Day 2 数出来的参数量变成两个能算的数:模型跑一遍要做多少次运算,以及 decode 时为了不重算而缓存下来的 k、v 占多少显存。算完会发现 batch 一大,缓存比权重本身还大。附六个模型的 KV cache 对照表和一段从 config.json 自动算账的代码。