Fix review issues #17-#22: 恢复 #11/#12/#14 (StreamK fixpipe 单次计账/K=1 AIV单缓冲/advice) + 占位方案不可评估 + 转置 dValue 判据三处同源(form c 双缓冲适配修复) + 恢复 #13/#15 回归测试 + 清理临时 csv/.gitignore + 文档同步

This commit is contained in:
2026-09-03 21:10:05 +08:00
parent f5a0b6fe81
commit 9afe6eec02
22 changed files with 219 additions and 76 deletions

View File

@@ -20,13 +20,14 @@ K 维度是 CubeMMAD存在的意义——`C = Σ_k A[..,k]·B[k,..]` 的
- 数据流GM→UB读 A、B→ Mul → GM写 C全程 AIV
- 时延:`T = max(搬入, 搬出)`AIV 算力远剩,瓶颈在搬移:`T ≈ B·(MK + KN + MN)·dt / W_GM`
- **触发条件**`B ≥ 2×AIV核数 = 128`(开 UB 乒乓需要每核至少 2 个 batch 块)且单 batch 输入输出能驻留 UB
- **触发条件**`B ≥ 2×AIV核数 = 128`(开 UB 乒乓需要每核至少 2 个 batch 块)且单 batch 输入输出能驻留 UB
- **B < 128 时并不无解**issue#12/#17退化为 **AIV 单缓冲**——无乒乓 batch 串行搬入计算仍远优于 Cube 通路K=1 Cube 16×16×16 浪费 15/16只是流水掩盖能力下降软件 `special.py` `B ≥ 128` 自动选择"UB乒乓 / AIV单缓冲"模式
## 4. 软件处理
`router.py` 前置归约中`k ≤ 1` 直接路由到特殊分支
- `K=0` 标注" AIV 写值"评估时延 = 写出时延;
- `K=1` → 标注"AIV 逐元素乘",评估时延 = 搬入/搬出较大者。
- `K=1` 标注"AIV 逐元素乘"评估时延 = 搬入/搬出较大者plan `B ≥ 128` 自动选择"UB乒乓 / AIV单缓冲"模式`l1_form` `note` 中可见)。
不进入 Cube 切分体系 ImplPlan tile 字段 used_core_num = AIV 核数外均不适用)。

View File

@@ -134,6 +134,7 @@ bmmv3: b0 = min(L0C/(2·M·N·4), ceil(B/C), 607.5·(M+N)/(2·M·N))
|---|---|---|
| fp40.5Bdtype 支持 | 高 | ✅ **已补(本期)**——`DTYPE_BYTES``"fp4": 0.5` / `"fp4_e2m1": 0.5``dtype_bytes()` 返回 float |
| 转置对 dValue/base_k 的影响建模 | 高 | ✅ **已补(本期)**——MergeBatch 加条件 6A 转置对齐IterBatch dValue 判定按转置调整连续维 |
| 转置判据三处同源 | 中 | ✅ **已补issue#19**——`models.dvalue_contig_dims` 统一连续维 dValue`l1_form` c/d 生成守卫 / IterBatch 条件 4 / `constraints` 校验共用同一判据,非转置行为不变 |
| XLSX 原表追加输出 | 中 | 待做 |
| c1/c2 的 step 幂次搜索 | 低 | 不做(理论极限不需要离散化) |
@@ -172,4 +173,4 @@ bmmv3: b0 = min(L0C/(2·M·N·4), ceil(B/C), 607.5·(M+N)/(2·M·N))
---
*版本v1.0 | 2026-09-03 | 基于 BMM_Theory 最新版(含 issue#11-#16 修复)与 bmmv3 最新版对照*
*版本v1.1 | 2026-09-06 | 基于 BMM_Theory main(含 issue#11-#22 修复:含 #17 恢复 StreamK 单次计账/K=1 单缓冲/#14 advice#19 转置判据三处同源)与 bmmv3 最新版对照*