Fix #34: ASW_Basic 兜底恒出方案; 搬移效率下限不满足降级为 warning (不判违规)
- constraints.py: ASW_Basic/ASW_Basic_降核 的 dValue 效率下限不再计违规 (DMA 仍能工作只是效率低; 真正不可行的只有容量/核数硬约束); IterBatch/MergeBatch/StreamK 等有替代分支的分支仍按违规处理 (不满足条件不该进) - asw_basic 枚举尾部: 严格 256B 偏好无解 -> 放开约束4 按 128B 硬下限给最优可行 tile, note 标注"效率降级"; 128B 硬下限也不满足的极端形状 (如 N=8 int8, B 侧 dValue=8B 物理不可满足) 仍给 Base tile 方案 + 标注效率降级 (搬移效率崩塌) - evaluator advice / router 仲裁文案含"效率降级"提示 (plan.note 同步) - docs/06 Step1 增加"兜底分支恒出方案"段落 (效率降级 vs 违规的语义分层) - 回归: b32_m16_n8192_k7168 分解 = Base 16x1024 + tile 16x1024 + k_l1=112 (L1 双缓冲 ⌊L1/(2·(16+1024)·2)⌋16=112 反推) 入测试; 极端形状 feasible=True + 效率降级标注; 压力 10000 例 0 崩溃/0 NaN/0 硬违规/0 GM<V_in; examples 重生成 0 diff
This commit is contained in:
@@ -93,6 +93,15 @@ GM→L1 搬移效率与 L2 重复读率:
|
||||
|
||||
mCnt = ⌈M/singleCoreM⌉, nCnt = ⌈N/singleCoreN⌉(按实际 tile 反推)。
|
||||
|
||||
> **兜底分支恒出方案 (issue#34)**:枚举无可行候选时,不再产出"违规/不可行"方案——
|
||||
> 先放开约束 4(Base 整数倍)按 16 对齐网格 + dValue 128B 硬下限再搜;仍无解
|
||||
> (极端形状,如 N=8 int8 大 K 时 B 侧 dValue = sN·dt 物理上不可能 ≥ 下限)时退回
|
||||
> Base tile 并标注**效率降级**(warning,搬移效率低于模型假设、时延可能低估,
|
||||
> 建议调 dtype/布局),**不是违规/不可行**:dValue/minTile 是效率下限(DMA 仍能工作),
|
||||
> 真正不可行的只有容量/核数硬约束(L0C/L0A/L0B/L1 超容、used_core_num 超核数)。
|
||||
> 对比:IterBatch/MergeBatch/StreamK 等**有替代分支**的分支仍按违规处理
|
||||
> (不满足条件不该进,由路由另择或落 ASW)。
|
||||
|
||||
**Step 2: mCnt/nCnt 与核间分配**:`mCnt=⌈M/sM⌉`,`nCnt=⌈N/sN⌉`,总块数 B·mCnt·nCnt,B→M→N 线性映射。
|
||||
|
||||
**Step 3: 切分维度选择(按共享代价从低到高)**:切 B(零共享先试)→ 切 M(右矩阵 ≤L2 则驻留)→ 切 N(对称)→ 混合切 → 降核。
|
||||
|
||||
Reference in New Issue
Block a user