[P1] 推荐模式不做约束自检:大量推荐方案被本工具自带评估器判为不可行(随机 6%~18%) #5

Closed
opened 2026-09-03 10:56:38 +00:00 by admin · 1 comment
Owner

现象:把 recommend 输出的 plans.csv 回灌 evaluate,本应全部 feasible,实测大量被判违反硬件约束。

实测(合法输入、剔除 P0 场景):

  • 宽范围随机 8000 例:480 例(6.0%)自检不可行 —— IterBatch 206、ASW_Basic_降核 237、MergeBatch 37;违规条目:dValue 344、L0A 111、L0B 99、L1 20、L0C 9;
  • 典型 LLM 形状 6000 例:1079 例(18.0%)不可行 —— IterBatch 656(几乎全为 dValue)、ASW_Basic_降核 422。

最小样例(recommend 推荐 → evaluate 报违规):

分支 case 违规
IterBatch B=256 M=128 N=1024 K=8 bf16 dValue=16B < 128B 下限
ASW_Basic_降核 B=51 M=255 N=42 K=682 fp32 L0A tile 超容量
ASW_Basic_降核 B=2 M=64 N=16 K=32 fp16 dValue=64B < 128B
MergeBatch B=1024 M=2 N=512 K=32 fp8 dValue=32B

根因

  1. 约束知识分散三处且互相不一致:各分支 check_conditionsmake_plan 内部硬编码、evaluator.py:_check_constraints
  2. 生成路径(router.routebranch.analyze从不调用约束校验,只做进入条件判定与时延评估;
  3. 典型硬编码缺陷:branches/asw_basic.py:148 降核模式 base_k = min(K, 64) 忽略 dtype 字节数 → fp32(4B)下 base_m*64*4B*2 > L0A/L0B 64KB 必然溢出(正常模式 :67-70 由容量反推,降核分支漏做)。

期望:抽单一约束源(L0C/L0A/L0B/L1/dValue/min_TileSize/核数)供生成与校验共用;recommend 生成后强制自检,不可行则修复参数或显式降级报错,保证"推荐方案必可行"。

参考:测评报告 §5.2、附录 C。

**现象**:把 `recommend` 输出的 plans.csv 回灌 `evaluate`,本应全部 feasible,实测大量被判违反硬件约束。 **实测**(合法输入、剔除 P0 场景): - 宽范围随机 8000 例:480 例(6.0%)自检不可行 —— IterBatch 206、ASW_Basic_降核 237、MergeBatch 37;违规条目:dValue 344、L0A 111、L0B 99、L1 20、L0C 9; - 典型 LLM 形状 6000 例:1079 例(**18.0%**)不可行 —— IterBatch 656(几乎全为 dValue)、ASW_Basic_降核 422。 **最小样例**(recommend 推荐 → evaluate 报违规): | 分支 | case | 违规 | |---|---|---| | IterBatch | B=256 M=128 N=1024 K=8 bf16 | dValue=16B < 128B 下限 | | ASW_Basic_降核 | B=51 M=255 N=42 K=682 fp32 | L0A tile 超容量 | | ASW_Basic_降核 | B=2 M=64 N=16 K=32 fp16 | dValue=64B < 128B | | MergeBatch | B=1024 M=2 N=512 K=32 fp8 | dValue=32B | **根因**: 1. 约束知识分散三处且互相不一致:各分支 `check_conditions`、`make_plan` 内部硬编码、`evaluator.py:_check_constraints`; 2. 生成路径(`router.route` → `branch.analyze`)**从不调用**约束校验,只做进入条件判定与时延评估; 3. 典型硬编码缺陷:`branches/asw_basic.py:148` 降核模式 `base_k = min(K, 64)` 忽略 dtype 字节数 → fp32(4B)下 `base_m*64*4B*2 > L0A/L0B 64KB` 必然溢出(正常模式 :67-70 由容量反推,降核分支漏做)。 **期望**:抽单一约束源(L0C/L0A/L0B/L1/dValue/min_TileSize/核数)供生成与校验共用;recommend 生成后强制自检,不可行则修复参数或显式降级报错,保证"推荐方案必可行"。 **参考**:测评报告 §5.2、附录 C。
Author
Owner

【修复说明 · 乱码重写】原评论提交时编码损坏、内容不可恢复, 以下按 git 记录 / issue 正文 / 残留文本重建 (要点级, 非逐字原稿):

[P1] 推荐方案不经约束自检、回灌 evaluate 大量不可行 (随机 6%~18%) 已修复:

  • constraints.py 收敛为单一约束源 check_plan_constraints (生成/评估同用, commit 16a84ac);
  • router._wrap_checked 生成后自检 + 不可行时回退可行候选, evaluator 同源校验 (dad4585/0c19d99);
  • 复测: 宽范围随机 8000 例 + 典型 LLM 形状 6000 例 违规率 6%/18% → 0 违规。
【修复说明 · 乱码重写】原评论提交时编码损坏、内容不可恢复, 以下按 git 记录 / issue 正文 / 残留文本重建 (要点级, 非逐字原稿): [P1] 推荐方案不经约束自检、回灌 evaluate 大量不可行 (随机 6%~18%) 已修复: - constraints.py 收敛为**单一约束源** check_plan_constraints (生成/评估同用, commit 16a84ac); - router._wrap_checked 生成后自检 + 不可行时回退可行候选, evaluator 同源校验 (dad4585/0c19d99); - 复测: 宽范围随机 8000 例 + 典型 LLM 形状 6000 例 违规率 6%/18% → 0 违规。
admin closed this issue 2026-09-03 12:05:42 +00:00
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#5
No description provided.