R57 · 内存、执行效率、事实使用,分别测
事实用得准只是系统表现的一项。长材料还涉及存储与执行,把三类问题分开测,才能判断一个改动究竟改善了什么。
状态 b0
显式分数表按位置对增长:长度翻倍,面积四倍。核对本图存的是score,不能把它与按位置线性增长的KV混为一项。
这笔数只数单层分数张量;不能直接当作模型总显存。
状态 b1
分块与在线累计避免完整大表物化,同时保留精确读取。改变的是执行与IO组织,不是把所有密集位置对删除。
状态 b2
同一前缀的存储/延迟与钥匙配对正确性分列。给每列匹配自己的指标和固定条件,避免用一种改进代替另一种证据。
这张表是待测指标设计,不是新增性能或准确率结果。
公式与算例详情
先说明这笔内存属于什么
单层、batch=1、64 个 head、长度100000,若完整存储 FP16 attention scores,则需要 $64\times100000^2\times2=1{,}280{,}000{,}000{,}000$ 字节,即1.28 TB,约1.164153 TiB。本例只计算该分数张量,不是模型总显存,更不是所有实现都必须占用的显存下限。
FlashAttention 通过分块、减少 IO 与精确计算,避免完整物化这张分数表;密集两两配对的算术量仍随长度平方增长。稀疏连接与压缩历史状态则改变连接或保存的信息,属于另外的结构选择,不能与“不完整保存同一张密集表”混为一谈。
用三组测量回答三个问题
存储问题报告峰值显存、给定预算下可运行的最大长度,并注明 batch、层数、头数、精度和 KV 实现。执行问题在相同模型、输入输出长度、batch、精度、硬件与 warmup 规则下,分别重复测量 prefill/首词延迟与 decode 每步延迟或吞吐,不能只报理想 FLOPs。事实使用问题则在钥匙成对任务中改变事实位置与无关干扰,记录两句都对的比例及按位置分组的结果,避免用单句平均掩盖失败。
能存下、更快和采用了正确事实是三个独立判断;上述测量方案没有在本轮产生新结果。
参考与采用
- FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness:Exact attention with tiling that reduces HBM reads/writes and avoids materializing the full N×N attention matrix. 复核位置:Primary abstract read and compared to V-Attn physical p78–79.
原课页采用记录:M33 attention 计算和内存。页码均按PDF物理页计。
继续学习
如果问题是内存或速度,读长前缀的资源账本,在CLS 03“6 · 少算、少存、更快,是不同测量”及LAB 03 G 段核对 payload、prefill、decode 与真实计时;用单层分数张量的单位换算检查 TB/TiB 与 FP16 前提。如果问题是采用了哪个事实,另读缓存与有效上下文与 LAB 03“路径C · 材料放得下,不代表采用了当前事实”,并按三类指标的受控设计给出成对准确率。速度记录不能替代事实使用检查。