32. ASW 场景C GM 超输入成倍放大: 未识别单侧全驻留调度+分组非最小替换, 且06文档已漂移需同步 #32

Closed
opened 2026-09-04 09:06:38 +00:00 by admin · 1 comment
Owner

现象 (result_recommend.csv, ASW_Basic)

单 batch 输入 > L2_size 的 case GM 明显超过左右矩阵之和: b16_m32768_n8192_k7168 GM=30.1GB vs V_in=9.4GB (3.2x); b8_m131072_n8192_k8192 GM=87.0GB vs V_in=18.3GB (4.76x); b128_m8192_n8192_k7168 GM=60.1GB vs V_in=30.1GB (2x) 等 (均为场景 C 分组)。

审视结论: 计算逻辑与 docs/06 §3 已漂移, 且模型本身有两处失真

  1. 文档-代码漂移: docs/06_ASW_Basic分支.md §3 仍是旧的 r_in 概念与 T_MTE2 = S_in^GM/(C*W_pc) 单段公式 (47064c2 后未随 issue#24/#29/#30 更新); 代码早已是 GM首读 + L2重复读两段链 + S_A/S_B/S_C 场景, 文档未同步。
  2. 场景 C 失真 a — "单侧全驻留"调度未识别: 单 batch 输入 > L2 时, 若较小矩阵可全驻留 L2 (如 bb_b + 2x A行块 <= L2), 调度上完全可以大矩阵行块流式、小矩阵驻留, GM = V_in 一次 (重复读全走 L2 读口)。现模型直接按 2D 分组把组间共享块全部落回 GM, GM 被成倍放大。
  3. 场景 C 失真 b — 分组预算对半 + 窗口流量零计: m_grp/n_grp 按 L2/2 对半分配 (非容量约束下最小 GM 流量解), 且组内窗口 L2 命中流量 ((n_cnt-n_groups)*A + (m_cnt-m_groups)*B) 被保守清零, 与 S_B 的"驻留命中走 L2"口径不自洽。

修复

  • 场景判定升级: S_A 整case全驻留 -> S_B 单batch可驻留 (全驻留 或单侧全驻留+对侧滑窗: a_b+2*(bb_b/n_cnt)<=L2 或对称) -> S_C 2D 分组;
  • S_C: 在整 L2 容量约束 m_grpblock_a + n_grpblock_b <= L2 下搜索最小 GM = ceil(n_cnt/n_grp)*a_b + ceil(m_cnt/m_grp)*bb_b (力求最小 L2 替换), 并计组内窗口 L2 流量;
  • docs/06 §3、docs/05 §4.3/§5、代码注释同步; 回归: 单侧驻留 case gm == V_in; S_C case gm 为容量约束最小解 (搜索复算一致) 且 < 旧对半预算解。
## 现象 (result_recommend.csv, ASW_Basic) 单 batch 输入 > L2_size 的 case GM 明显超过左右矩阵之和: b16_m32768_n8192_k7168 GM=30.1GB vs V_in=9.4GB (3.2x); b8_m131072_n8192_k8192 GM=87.0GB vs V_in=18.3GB (4.76x); b128_m8192_n8192_k7168 GM=60.1GB vs V_in=30.1GB (2x) 等 (均为场景 C 分组)。 ## 审视结论: 计算逻辑与 docs/06 §3 已漂移, 且模型本身有两处失真 1. **文档-代码漂移**: docs/06_ASW_Basic分支.md §3 仍是旧的 r_in 概念与 T_MTE2 = S_in^GM/(C*W_pc) 单段公式 (47064c2 后未随 issue#24/#29/#30 更新); 代码早已是 GM首读 + L2重复读两段链 + S_A/S_B/S_C 场景, 文档未同步。 2. **场景 C 失真 a — "单侧全驻留"调度未识别**: 单 batch 输入 > L2 时, 若较小矩阵可全驻留 L2 (如 bb_b + 2x A行块 <= L2), 调度上完全可以大矩阵行块流式、小矩阵驻留, GM = V_in 一次 (重复读全走 L2 读口)。现模型直接按 2D 分组把组间共享块全部落回 GM, GM 被成倍放大。 3. **场景 C 失真 b — 分组预算对半 + 窗口流量零计**: m_grp/n_grp 按 L2/2 对半分配 (非容量约束下最小 GM 流量解), 且组内窗口 L2 命中流量 ((n_cnt-n_groups)*A + (m_cnt-m_groups)*B) 被保守清零, 与 S_B 的"驻留命中走 L2"口径不自洽。 ## 修复 - 场景判定升级: S_A 整case全驻留 -> S_B 单batch可驻留 (全驻留 **或单侧全驻留+对侧滑窗**: a_b+2*(bb_b/n_cnt)<=L2 或对称) -> S_C 2D 分组; - S_C: 在整 L2 容量约束 m_grp*block_a + n_grp*block_b <= L2 下搜索最小 GM = ceil(n_cnt/n_grp)*a_b + ceil(m_cnt/m_grp)*bb_b (力求最小 L2 替换), 并计组内窗口 L2 流量; - docs/06 §3、docs/05 §4.3/§5、代码注释同步; 回归: 单侧驻留 case gm == V_in; S_C case gm 为容量约束最小解 (搜索复算一致) 且 < 旧对半预算解。
admin closed this issue 2026-09-04 09:13:06 +00:00
Author
Owner

修复 commit: 18f5959

落地:

  1. 场景升级 (_l2_scene, make_plan/evaluate 同源): S_A 整case全驻留 -> S_B 单batch可驻留 (a_b+b_b<=L2, 或单侧全驻留+对侧滑窗: b_b+2block_a<=L2 / a_b+2block_b<=L2) -> S_C 双侧超 L2;
  2. S_C 最小替换 2D 分组 (取代 L2/2 对半预算): 容量 m_grpblock_a+n_grpblock_b<=L2 下搜索最小 GM = ceil(n_cnt/n_grp)*a_b + ceil(m_cnt/m_grp)*b_b; 组内窗口 L2 计账 ((n_cnt-ceil)*a_b+(m_cnt-ceil)*b_b), 与 S_B 口径一致 (原 C 窗口零计低估);
  3. demo 44 例: 6 个原场景 C 行回落 S_B, GM = V_in (b32_m8192_n4096_k7168: 7516->5637MB; b16_m32768_n8192_k7168: 30064->9395MB; b128_m8192_n8192_k7168: 60129->30065MB); 仅 b8_m131072_n8192_k8192 保持 S_C: GM 倍率 4.76x -> 3.88x (双侧均不可全驻留时的物理最小替换下界 ~3.9x);
  4. 大方形 K 行重复读 L2 流量如实计账后瓶颈揭示: b128_m8192_n8192_k7168 253ms(MMAD) -> 295ms(MTE2-L2口, 重复读 1.38TB/5.2TB/s) 等, 模型更诚实;
  5. 文档同步: docs/06 §3/Step5 重写 (旧 r_in 单段、除总 B、对半预算口径废弃), docs/05 §4.1/§4.3/§5 同步, 消除文档-代码漂移;
  6. 回归 (54/54): S_B 单侧驻留 gm==V_in; S_C gm 与测试内容量约束最小解复算一致; 压力 10000 例 0 违规/0 GM<V_in; examples 可复现 0 diff。
修复 commit: 18f5959 落地: 1. 场景升级 (_l2_scene, make_plan/evaluate 同源): S_A 整case全驻留 -> S_B 单batch可驻留 (a_b+b_b<=L2, 或单侧全驻留+对侧滑窗: b_b+2*block_a<=L2 / a_b+2*block_b<=L2) -> S_C 双侧超 L2; 2. S_C 最小替换 2D 分组 (取代 L2/2 对半预算): 容量 m_grp*block_a+n_grp*block_b<=L2 下搜索最小 GM = ceil(n_cnt/n_grp)*a_b + ceil(m_cnt/m_grp)*b_b; 组内窗口 L2 计账 ((n_cnt-ceil)*a_b+(m_cnt-ceil)*b_b), 与 S_B 口径一致 (原 C 窗口零计低估); 3. demo 44 例: 6 个原场景 C 行回落 S_B, GM = V_in (b32_m8192_n4096_k7168: 7516->5637MB; b16_m32768_n8192_k7168: 30064->9395MB; b128_m8192_n8192_k7168: 60129->30065MB); 仅 b8_m131072_n8192_k8192 保持 S_C: GM 倍率 4.76x -> 3.88x (双侧均不可全驻留时的物理最小替换下界 ~3.9x); 4. 大方形 K 行重复读 L2 流量如实计账后瓶颈揭示: b128_m8192_n8192_k7168 253ms(MMAD) -> 295ms(MTE2-L2口, 重复读 1.38TB/5.2TB/s) 等, 模型更诚实; 5. 文档同步: docs/06 §3/Step5 重写 (旧 r_in 单段、除总 B、对半预算口径废弃), docs/05 §4.1/§4.3/§5 同步, 消除文档-代码漂移; 6. 回归 (54/54): S_B 单侧驻留 gm==V_in; S_C gm 与测试内容量约束最小解复算一致; 压力 10000 例 0 违规/0 GM<V_in; examples 可复现 0 diff。
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/matmul-analysis#32
No description provided.