v1.3 修订:B 符号规范化——方案 B 与 Batch 明确区分(B 矩阵保留)

This commit is contained in:
2026-08-31 07:30:45 +00:00
parent 3128845dcc
commit 0c3f2f0c33

View File

@@ -2,25 +2,25 @@
> 目标芯片:昇腾 950PRDAV_3510。本文自包含——不依赖其他分析文档全部推导在文内完成仅引用外部公开资料昇腾白皮书、CANN 文档、开源算子源码仓)。
> 版本v1.32026-08-31修正 $T_{MTE2}$ 模型:分子 kL1→K稳态流水约掉证明三维主导项判定取代单一 K* 判据;面积型/周长型缩放分类§2.5 方形结论严格证明§4.3 符号交代§7.2 按修正模型全面刷新——主流场景 B1 零损失)
> 历史v1.1 新增 §七 B1 无脑版门限与损失分析v1.0 首版(三策略两两对比与 B/M/K/N 判定流程)
> 历史v1.0 首版(三策略两两对比与 B/M/K/N 判定流程)
> 历史v1.1 新增 §七 B1 无脑版门限与损失分析v1.0 首版(三策略两两对比与 Batch/M/K/N 判定流程)
> 历史v1.0 首版(三策略两两对比与 Batch/M/K/N 判定流程)
---
## 摘要
BMMBatchMatMul算子在核间切分 M/N 后,总输出块数 $N_{blk} = B \cdot mCnt \cdot nCnt$ 一般不是核数 C 的整数倍,尾轮只有 $r = N_{blk} \bmod C$ 个核工作、其余核空转。本文对四种尾轮处理策略做严格的两两对比:**A0不重切、A1a尾轮整数倍切分、A1b尾轮 tile 重选凑满核、B整轮均匀重切**,在计算 Bound 与访存 Bound 两类场景下给出完整的时延公式与适用条件分界。
BMMBatchMatMul算子在核间切分 M/N 后,总输出块数 $N_{blk} = \text{Batch} \cdot mCnt \cdot nCnt$ 一般不是核数 C 的整数倍,尾轮只有 $r = N_{blk} \bmod C$ 个核工作、其余核空转。本文对四种尾轮处理策略做严格的两两对比:**A0不重切、A1a尾轮整数倍切分、A1b尾轮 tile 重选凑满核、B整轮均匀重切**,在计算 Bound 与访存 Bound 两类场景下给出完整的时延公式与适用条件分界。
核心结论:
1. **A0 从来不是最优**$r > 0$ 时 A1 或 B 严格优);
1. **A0 从来不是最优**$r > 0$ 时 A1 或方案 B 严格优);
2. **A1a 是 A1b 的真子集**枚举空间包含关系A1b 恒不劣于 A1a
3. **计算 Bound**A1b 与 B 理论时延严格相等(总计算量/C 守恒A1b 搬移周长和恒 ≤ B均值不等式——时延打平、按工程权衡选择
4. **访存 Bound**$\rho \ge \rho_{dv}$(尾轮占比 ≥ dValue 平方阈值)时 A1b 严格优;$\rho < \rho_{dv}$ A1b dValue 卡死B 严格优当且仅当 $\sqrt{\rho_{dv}} > n_{wave}/\sqrt{g} - (n_{wave}-1)$——**B 反超的唯一通道是 dValue**A1b 的尾轮 tile 缩放 $\sqrt{\rho}$ 恒狠于 B 的 $1/\sqrt{g}$$\rho < 1/g$ 恒成立卡死更深时 B 胜出该区间窄且临界实测打平
5. 给出**基于 B/M/K/N/dtype 的闭式判定流程**五步前置计算 + 决策表无需逐项仿真
6. **v1.1 新增 §七**B 的简化形态 **B1**无脑版满足门限就直接整数轮满核切门限闭式 $r>0 \land (K \ge K^* \lor g \le (sN \cdot dtype/256\text{B})^2)$)与 **B0/B1 相对 A1b 的损失分析**
3. **计算 Bound**A1b 与方案 B 理论时延严格相等(总计算量/C 守恒A1b 搬移周长和恒 ≤ 方案 B均值不等式——时延打平、按工程权衡选择
4. **访存 Bound**$\rho \ge \rho_{dv}$(尾轮占比 ≥ dValue 平方阈值)时 A1b 严格优;$\rho < \rho_{dv}$ A1b dValue 卡死方案 B 严格优当且仅当 $\sqrt{\rho_{dv}} > n_{wave}/\sqrt{g} - (n_{wave}-1)$——**方案 B 反超的唯一通道是 dValue**A1b 的尾轮 tile 缩放 $\sqrt{\rho}$ 恒狠于方案 B 的 $1/\sqrt{g}$$\rho < 1/g$ 恒成立卡死更深时方案 B 胜出该区间窄且临界实测打平
5. 给出**基于 Batch/M/K/N/dtype 的闭式判定流程**五步前置计算 + 决策表无需逐项仿真
6. **v1.1 新增 §七**方案 B 的简化形态 **B1**无脑版满足门限就直接整数轮满核切门限闭式 $r>0 \land (K \ge K^* \lor g \le (sN \cdot dtype/256\text{B})^2)$)与 **B0/B1 相对 A1b 的损失分析**
7. **v1.2 重写 §7.2**:损失公式逐步推导链与主流场景分析;
8. **v1.3 修正时延模型**$T_{MTE2}$ 分子 $k_{L1} \to K$(稳态流水下 $k_{L1}$ 约掉的完整证明——单块搬入总量 $K(sM+sN)dtype$ 与分次粒度无关);**三维主导项判定**取代单一 $K^*$ 判据MMAD vs MTE2 由 tile 决定、K 约掉MMAD vs FIX 由 K 决定,临界 304按**主导项缩放类型**重新分类面积型MMAD/FIX ∝ 面积周长型MTE2 ∝ 周长)——**主流 prefill/decode case 恒为面积型 → B1 与 A1b 时延严格相等(零损失)**decode 小 M 场景 B 因分解自由度不足常不可行 → A1b 是唯一可行重切方案§2.5 方形结论严格证明(均值不等式,更正"L1 主导形状自由"的伪结论——那是 $k_{L1}$ 误置时延分子的建模残余v1.2 的"~30% 极端例损失"是 $k_{L1}$ 错误模型产物,修正后该例打平(<1%)。
8. **v1.3 修正时延模型**$T_{MTE2}$ 分子 $k_{L1} \to K$(稳态流水下 $k_{L1}$ 约掉的完整证明——单块搬入总量 $K(sM+sN)dtype$ 与分次粒度无关);**三维主导项判定**取代单一 $K^*$ 判据MMAD vs MTE2 由 tile 决定、K 约掉MMAD vs FIX 由 K 决定,临界 304按**主导项缩放类型**重新分类面积型MMAD/FIX ∝ 面积周长型MTE2 ∝ 周长)——**主流 prefill/decode case 恒为面积型 → B1 与 A1b 时延严格相等(零损失)**decode 小 M 场景方案 B 因分解自由度不足常不可行 → A1b 是唯一可行重切方案§2.5 方形结论严格证明(均值不等式,更正"L1 主导形状自由"的伪结论——那是 $k_{L1}$ 误置时延分子的建模残余v1.2 的"~30% 极端例损失"是 $k_{L1}$ 错误模型产物,修正后该例打平(<1%)。
---
@@ -28,7 +28,7 @@ BMMBatchMatMul算子在核间切分 M/N 后,总输出块数 $N_{blk} = B
### 1.1 BMM 的核间切分与数据流
BatchMatMulV3 在昇腾 NPU 上的兜底分支ASW_Basic按输出块并行。**适用范围说明**ASW_Basic 是兜底分支——能进入更靠前特殊分支K=0、转 Matmul/MulStreamKMergeBatchIterBatchAL1/BL1 全载等 case 会被优先截胡不会进入 ASW_Basic因此本文只讨论 ASW_Basic 场景核间切 M/N的尾轮处理那些在特殊分支下被承接的 case 不在本文对比范围输出平面 $M \times N$ 被切为 $mCnt \times nCnt$ 个块乘上 batch 维共 $N_{blk} = B \cdot mCnt \cdot nCnt$ 个独立输出块按序分配到 $C$ AIC 每个核内执行标准 Cube 数据流
BatchMatMulV3 在昇腾 NPU 上的兜底分支ASW_Basic按输出块并行。**适用范围说明**ASW_Basic 是兜底分支——能进入更靠前特殊分支K=0、转 Matmul/MulStreamKMergeBatchIterBatchAL1/BL1 全载等 case 会被优先截胡不会进入 ASW_Basic因此本文只讨论 ASW_Basic 场景核间切 M/N的尾轮处理那些在特殊分支下被承接的 case 不在本文对比范围输出平面 $M \times N$ 被切为 $mCnt \times nCnt$ 个块乘上 batch 维共 $N_{blk} = \text{Batch} \cdot mCnt \cdot nCnt$ 个独立输出块按序分配到 $C$ AIC 每个核内执行标准 Cube 数据流
```
GM ──MTE2──> L1 ──MTE1──> L0A/L0B ──MMAD──> L0C ──Fixpipe──> GM
@@ -41,7 +41,7 @@ GM ──MTE2──> L1 ──MTE1──> L0A/L0B ──MMAD──> L0C ──Fi
块按序分配 $i$ 处理块 $i, i+C, i+2C, \ldots$。总块数 $N_{blk}$ 不能被 $C$ 整除时最后一轮尾轮只有 $r = N_{blk} \bmod C$ 个核有块可算$C - r$ 个核空转一个整块时间
**问题**给定 BMKNdtype 与首轮切分singleCoreM/N如何处理尾轮使端到端时延最小
**问题**给定 BatchMKNdtype 与首轮切分singleCoreM/N如何处理尾轮使端到端时延最小
### 1.3 硬件规格与符号定义
@@ -59,7 +59,7 @@ GM ──MTE2──> L1 ──MTE1──> L0A/L0B ──MMAD──> L0C ──Fi
*Tiling 符号*$sM, sN$ = 单核输出 tile M/N 维度singleCoreM/N 的简写$k_{L1}$ = GML1 K 向粒度$mCnt = \lceil M/sM \rceil$、$nCnt = \lceil N/sN \rceil$。
*尾轮符号*$N_{blk} = B \cdot mCnt \cdot nCnt$总块数$n_{wave} = \lceil N_{blk}/C \rceil$总轮次$r = N_{blk} \bmod C$尾轮块数$\rho = r/C$(尾轮占比)。
*尾轮符号*$N_{blk} = \text{Batch} \cdot mCnt \cdot nCnt$总块数$n_{wave} = \lceil N_{blk}/C \rceil$总轮次$r = N_{blk} \bmod C$尾轮块数$\rho = r/C$(尾轮占比)。
---
@@ -137,9 +137,9 @@ GM→L1 搬移Nd2Nz DMA的两级效率阈值
首轮切分 $(mCnt, nCnt, sM, sN)$ 的确定是尾轮分析的前提本节给出完整推导链**问题 建模 证明 离散修正 结论**。
**问题**$B < C$ 时须切分 M/N 填满 C 选什么样的 $(sM, sN)$ 使端到端时延最小
**问题**$\text{Batch} < C$ 时须切分 M/N 填满 C 选什么样的 $(sM, sN)$ 使端到端时延最小
**建模** §2.1主导项中唯一随切分变化的是搬入MMAD/FIX 只依赖全量 B/M/N/K)。单核搬入总量 = 每核块数 × 单块搬入量
**建模** §2.1主导项中唯一随切分变化的是搬入MMAD/FIX 只依赖全量 Batch/M/N/K)。单核搬入总量 = 每核块数 × 单块搬入量
$$
T_{MTE2}^{core} = \frac{B \cdot mCnt \cdot nCnt}{C} \cdot K(sM+sN) \cdot dtype
@@ -151,7 +151,7 @@ $$
T_{MTE2}^{core} = \frac{B \cdot M \cdot N \cdot K \cdot dtype}{C} \cdot \Big(\frac{1}{sM} + \frac{1}{sN}\Big)
$$
**目标函数**$\min\; (1/sM + 1/sN)$$B, M, N, K, dtype, C$ 均为常数)。约束:①并行度 $mCnt \cdot nCnt \ge \lceil C/B \rceil \triangleq P$;②L1 容量 $2(sM+sN) k_{L1} \cdot dtype \le L1$;③搬移效率dValuemin_TileSize,§2.3);④$sM, sN$ 16 倍数且为 BaseM/N 整数倍
**目标函数**$\min\; (1/sM + 1/sN)$$\text{Batch}, M, N, K, dtype, C$ 均为常数)。约束:①并行度 $mCnt \cdot nCnt \ge \lceil C/\text{Batch} \rceil \triangleq P$;②L1 容量 $2(sM+sN) k_{L1} \cdot dtype \le L1$;③搬移效率dValuemin_TileSize,§2.3);④$sM, sN$ 16 倍数且为 BaseM/N 整数倍
**证明(两步)**
@@ -179,14 +179,14 @@ $$
1. **整数与对齐**$sM = sN = \sqrt{A_0}$ 一般非 16 倍数 $mCnt = M/sM$ 须整数——在连续方形附近枚举满足约束 的整除组合取目标函数最小者枚举才是最终裁决者方形是其连续极限的解析刻画
2. **dValue 非对称**B 非转置时 $sN \cdot dtype \ge 256$B $sN$ 下限A dValue $k_{L1}$ 保证不卡 $sM$)——极端长宽比时方形可能违反取满足 dValue 的最近组合
3. **$B \ge C$P=1退化**:不切分,$sM = M, sN = N$——tile 跟随 M/N此时"方形"无意义零重复读优先)。
3. **$\text{Batch} \ge C$P=1退化**:不切分,$sM = M, sN = N$——tile 跟随 M/N此时"方形"无意义零重复读优先)。
**对前一版本表述的更正**v1.2 及之前版本曾以"K 全载 regime 方形最优L1 主导 regime 仅面积相关形状自由"描述方形结论的适用范围——该说法源自把 $k_{L1}$ 误置时延分子的建模$(1/sM+1/sN) \cdot k_{L1}$ $k_{L1} = L1/(2(sM{+}sN)dtype)$ 恰好抵消周长)。§2.1 已证 $k_{L1}$ 在稳态流水中约掉正确目标函数为 $(1/sM+1/sN) \cdot K$——**形状敏感性在两个 regime 下统一存在方形恒为连续最优**$k_{L1}$ 只通过 dValue/min_TileSize 约束(§2.3影响可行性不影响目标函数的排序
**小结**
1. 首轮切分目标$\min (1/sM + 1/sN)$搬入时延最小化唯一随切分变化的主导项
2. 最少块数原则$mCnt \cdot nCnt = P = \lceil C/B \rceil$$B \ge C$ 时不切分
2. 最少块数原则$mCnt \cdot nCnt = P = \lceil C/\text{Batch} \rceil$$\text{Batch} \ge C$ 时不切分
3. **方形严格最优**均值不等式面积固定时周长最小)——离散修正仅来自 16 对齐/整数分解/dValue 非对称由枚举裁决
4. 方形结论不依赖任何 regime 假设——$K$ 作为公共因子不进排序
@@ -202,7 +202,7 @@ $$
| **A0不重切** | 尾轮 $r$ 核各处理 1 个整块$C-r$ 核空转 | 主轮尾轮同大小 |
| **A1a尾轮整数倍切分** | 尾轮每块沿 N M $s^*$ $r \cdot s^*$ 个小块分给 C | 主轮整块 + 尾轮 $1/s^*$ 小块 |
| **A1b尾轮 tile 重选凑满核** | 尾轮 $r$ 个原块覆盖的区域面积 $r \cdot sM \cdot sN$用更小 tile $(sM_t, sN_t)$ 重新切分凑满 C | 主轮整块 + 尾轮小 tile |
| **B整轮均匀重切** | 总块数向上取整到 $N_{blk}' = n_{wave} \cdot C$全局重新枚举 tile 使每轮每核恰好一个同样大小的块 | 全部块同大小 |
| **方案 B整轮均匀重切** | 总块数向上取整到 $N_{blk}' = n_{wave} \cdot C$全局重新枚举 tile 使每轮每核恰好一个同样大小的块 | 全部块同大小 |
**实现方式对比**
@@ -211,9 +211,9 @@ $$
| A0 | 一套参数 | 线性映射 `index = blockIdx + round × usedCoreNum`尾轮不满载核跳过 | 1 |
| A1a | 主参数 + 尾轮切分参数$s^*$ | 最后一轮切换小块尺寸 | 2 |
| A1b | 主参数 + 尾轮 tile$sM_t, sN_t$ | 尾轮区域独立子网格映射 | 2 |
| B | 一套重切后参数 | 全程统一 tile无尾轮分支 | 1 |
| 方案 B | 一套重切后参数 | 全程统一 tile无尾轮分支 | 1 |
**对齐约束的平等性**16 对齐是 Cube 计算粒度16×16×16 基本块的硬件要求**四种策略的 tile——无论重切前后——都必须是 16 的倍数**无一例外差异只在枚举空间A1b 对尾轮子区域B 对全局 tile 套数
**对齐约束的平等性**16 对齐是 Cube 计算粒度16×16×16 基本块的硬件要求**四种策略的 tile——无论重切前后——都必须是 16 的倍数**无一例外差异只在枚举空间A1b 对尾轮子区域方案 B 对全局 tile 套数
### 3.2 A1b 的 tile 确定与 A1a ⊆ A1b 证明
@@ -265,7 +265,7 @@ $$
\Delta_{A0 \to B}^{calc} = n_{wave} T_{MMAD} - T_{MMAD}\Big(n_{wave} - 1 + \frac{r}{C}\Big) = T_{MMAD} \cdot \frac{C - r}{C} > 0
$$
**B 恒优于 A0**(可行性校验:搬移掩盖 $\sqrt{g} \le T_{MMAD}/T_{MTE2}$;分解对齐)。
**方案 B 恒优于 A0**(可行性校验:搬移掩盖 $\sqrt{g} \le T_{MMAD}/T_{MTE2}$;分解对齐)。
### 4.3 A1 vs B
@@ -284,7 +284,7 @@ $$
S_{A1b} = 2sC\big(n_{wave} - 1\big) + 2s\sqrt{\rho} \cdot C = 2sC\big(n_{wave} - 1 + \sqrt{\rho}\big)
$$
**B**$n_{wave} C$ 块均匀 tile边长 $s_B = s\sqrt{N_{blk}/(n_{wave}C)}$(总面积守恒 $n_{wave} C \cdot s_B^2 = N_{blk} \cdot s^2$
**方案 B**$n_{wave} C$ 块均匀 tile边长 $s_B = s\sqrt{N_{blk}/(n_{wave}C)}$(总面积守恒 $n_{wave} C \cdot s_B^2 = N_{blk} \cdot s^2$
$$
S_B = n_{wave} C \cdot 2s_B = 2sC\sqrt{n_{wave}\Big(n_{wave} - 1 + \rho\Big)}
@@ -296,36 +296,36 @@ $$
\big(n_{wave}-1+\sqrt{\rho}\big)^2 \le n_{wave}(n_{wave}-1+\rho) \iff 2\sqrt{\rho} \le 1 + \rho \iff (\sqrt{\rho}-1)^2 \ge 0 \quad \checkmark
$$
**均值不等式A1b 周长和恒 ≤ B**(等号当 $\rho = 1$ 即无尾轮)。搬入总量少意味着 L2 重复读少、周长型项的掩盖余量更大。
**均值不等式A1b 周长和恒 ≤ 方案 B**(等号当 $\rho = 1$ 即无尾轮)。搬入总量少意味着 L2 重复读少、周长型项的掩盖余量更大。
**结论(面积型主导)**A1b 与 B 理论时延严格相等;离散 16 对齐后互有胜负数值依赖、无系统性优劣——对齐约束对两者平等A1b 搬入总量恒 ≤ B结构性。**工程简洁选 B一套 tile追求搬移下限选 A1b。**
**结论(面积型主导)**A1b 与方案 B 理论时延严格相等;离散 16 对齐后互有胜负数值依赖、无系统性优劣——对齐约束对两者平等A1b 搬入总量恒 ≤ 方案 B结构性。**工程简洁选方案 B一套 tile追求搬移下限选 A1b。**
### 4.4 数值实例
*例 1MMAD 主导,$r > C/2$*B=1、M=N=1792、K=4096、BF16、C=32。首轮 $mCnt=nCnt=7$$sM=sN=256$$N_{blk}=49$、$n_{wave}=2$、$r=17$、$\rho=0.53$。单块 $T_{MMAD}=35.3\mu s$、$T_{MTE2}^{L2}=25.8\mu s$、$T_{FIX}=2.6\mu s$——MMAD 面积型主导 ✓。
*例 1MMAD 主导,$r > C/2$*Batch=1、M=N=1792、K=4096、BF16、C=32。首轮 $mCnt=nCnt=7$$sM=sN=256$$N_{blk}=49$、$n_{wave}=2$、$r=17$、$\rho=0.53$。单块 $T_{MMAD}=35.3\mu s$、$T_{MTE2}^{L2}=25.8\mu s$、$T_{FIX}=2.6\mu s$——MMAD 面积型主导 ✓。
- A0$70.6\mu s$A1a$s^* = \lfloor 32/17 \rfloor = 1$ 失效;
- A1b 非方形枚举 $(sM_t, sN_t) = (224, 160)$:尾轮 32 块恰好凑满,$T_{A1b} = 35.3 + 19.3 = 54.6\mu s$
- B$N_{blk}'=64=8\times8$、$sM'=sN'=224$$T_B = 54.1\mu s$。
- 方案 B$N_{blk}'=64=8\times8$、$sM'=sN'=224$$T_B = 54.1\mu s$。
A1b 与 B 打平54.6 vs 54.1,差 <1%纯离散对齐的数值依赖)。**相对 A0 均省约 23%**。
A1b 与方案 B 打平54.6 vs 54.1,差 <1%纯离散对齐的数值依赖)。**相对 A0 均省约 23%**。
*例 2MMAD 主导,$r \mid C$ 完美点)*M=1536、N=2048、K=4096、BF16。$N_{blk}=48$、$r=16$。A1a$s^* = 2 = C/r$ 完美$T_{A1a} = 53.0\mu s$B$T_B = 53.0\mu s$。**A1a = B**$1/s^* = r/C$ A1a搬移增量小)。
*例 2MMAD 主导,$r \mid C$ 完美点)*M=1536、N=2048、K=4096、BF16。$N_{blk}=48$、$r=16$。A1a$s^* = 2 = C/r$ 完美$T_{A1a} = 53.0\mu s$方案 B$T_B = 53.0\mu s$。**A1a = 方案 B**$1/s^* = r/C$ A1a搬移增量小)。
*例 3FIX 主导,$r$ 小、尾轮小块搬入翻出)*M=N=1536、K=256、BF16。$mCnt=nCnt=6$、$N_{blk}=36$、$n_{wave}=2$、$r=4$、$\rho=0.125$。单块 $T_{FIX} = 2.62\mu s$、$T_{MMAD}=2.21\mu s$、$T_{MTE2}^{L2}=1.61\mu s$——**FIX 面积型主导**$K=256 < 304$)。
- A0$5.24\mu s$A1a$s^* = \min(8, 2) = 2$dValue$T_{A1a} = 2.62 + 2.62/2 = 3.93\mu s$
- A1b$s_t = 256\sqrt{0.125} = 90.5 \to 96$16 对齐尾轮 $\lceil 4 \times 256^2/96^2 \rceil = 29$ 块凑 29 ——但小块 $96^2$ 的搬入 $T_{MTE2} = 256 \times 192 \times 2/162.5\text{G} = 0.61\mu s$ **翻出为尾轮主导项**$> T_{FIX,t} = 0.37\mu s$tile 缩小使周长/面积比上升,见 §7.2.4$T_{A1b} = 2.62 + 0.61 = 3.23\mu s$
- B$N_{blk}'=64=8\times8$、$sM'=sN'=192$$T_{FIX}' = 1.47\mu s$ 仍主导($T_{MTE2}' = 1.21\mu s$$T_B = 2.95\mu s$。
- 方案 B$N_{blk}'=64=8\times8$、$sM'=sN'=192$$T_{FIX}' = 1.47\mu s$ 仍主导($T_{MTE2}' = 1.21\mu s$$T_B = 2.95\mu s$。
**翻出效应下 B 微优 8.5%**——$r$ 小时 A1b 的尾轮 tile 缩得太小、搬入翻出B 的全局 tile 缩得温和($1/\sqrt{g} = 0.75 > \sqrt{\rho} = 0.35$)不翻出。
**翻出效应下方案 B 微优 8.5%**——$r$ 小时 A1b 的尾轮 tile 缩得太小、搬入翻出,方案 B 的全局 tile 缩得温和($1/\sqrt{g} = 0.75 > \sqrt{\rho} = 0.35$)不翻出。
*例 4FIX 主导,$r$ 大、不翻出,打平)*M=N=2304、K=256、BF16。$mCnt=nCnt=9$、$N_{blk}=81$、$n_{wave}=3$、$r=17$、$\rho=0.53$。单块 $T_{FIX}=2.62\mu s$ 主导。
- A0$7.86\mu s$
- A1b$s_t = 256\sqrt{0.53} = 186.6 \to 192$,尾轮 $\lceil 17 \times 256^2/192^2 \rceil = 31$ 块,小块 $T_{FIX,t} = 1.47\mu s$ 主导($T_{MTE2,t} = 1.21\mu s$ 不翻出),$T_{A1b} = 2 \times 2.62 + 1.47 = 6.71\mu s$
- B$N_{blk}'=96$、分解 $(8,12)$$sM'=288, sN'=192$$T_{FIX}' = 2.21\mu s$$T_B = 6.64\mu s$。
- 方案 B$N_{blk}'=96$、分解 $(8,12)$$sM'=288, sN'=192$$T_{FIX}' = 2.21\mu s$$T_B = 6.64\mu s$。
**打平**6.71 vs 6.64,差 1%,离散对齐的数值依赖)——面积型主导且尾轮不翻出时 A1b 与 B 时延相等(总量守恒)的实证。
**打平**6.71 vs 6.64,差 1%,离散对齐的数值依赖)——面积型主导且尾轮不翻出时 A1b 与方案 B 时延相等(总量守恒)的实证。
---
@@ -357,7 +357,7 @@ $$
\Delta_{A0 \to B}^{mem} = n_{wave} T_{load}\Big(1 - \frac{1}{\sqrt{g}}\Big) > 0 \quad (g > 1)
$$
**B 恒优于 A0**dValue 约束 $g \le (sN \cdot dtype/256\text{B})^2$ 满足时)。物理解释:尾轮 $r$ 核聚合带宽仅 $r \cdot BW_{pc}$搬移不加速B 让所有轮次满核满带宽。
**方案 B 恒优于 A0**dValue 约束 $g \le (sN \cdot dtype/256\text{B})^2$ 满足时)。物理解释:尾轮 $r$ 核聚合带宽仅 $r \cdot BW_{pc}$,搬移不加速;方案 B 让所有轮次满核满带宽。
### 5.3 A1 vs B——完整分界推导
@@ -367,22 +367,22 @@ $$
\frac{T_{A1b}^{mem}}{T_B^{mem}} = \frac{n_{wave} - 1 + \sqrt{\rho}}{\sqrt{n_{wave}(n_{wave}-1+\rho)}} \le 1
$$
**A1b 恒不劣于 B**$\rho$ 小时优势大($\rho=0.1$、$n_{wave}=2$ 时优 11%)。
**A1b 恒不劣于方案 B**$\rho$ 小时优势大($\rho=0.1$、$n_{wave}=2$ 时优 11%)。
**ii关键结构事实A1b 的 dValue 约束恒比 B 更严**。A1b 的尾轮 tile 缩放因子为 $\sqrt{\rho}$B 的全局 tile 缩放因子为 $1/\sqrt{g} = \sqrt{(n_{wave}-1+\rho)/n_{wave}}$
**ii关键结构事实A1b 的 dValue 约束恒比方案 B 更严**。A1b 的尾轮 tile 缩放因子为 $\sqrt{\rho}$方案 B 的全局 tile 缩放因子为 $1/\sqrt{g} = \sqrt{(n_{wave}-1+\rho)/n_{wave}}$
$$
\rho < \frac{1}{g} \iff \rho \cdot n_{wave} < n_{wave} - 1 + \rho \iff \rho(n_{wave} - 1) < n_{wave} - 1 \iff \rho < 1 \quad \checkmark \text{} r < C \text{ 恒成立}
$$
**物理含义**A1b 只缩尾轮 $r$ 块的区域去凑满 C tile 必须缩得比 B 的全局缩放更狠——所以 A1b 的尾轮 tile 更早跌破 dValue 下限。**这是 B 可能反超的唯一通道**。
**物理含义**A1b 只缩尾轮 $r$ 块的区域去凑满 C tile 必须缩得比方案 B 的全局缩放更狠——所以 A1b 的尾轮 tile 更早跌破 dValue 下限。**这是方案 B 可能反超的唯一通道**。
**iii三区间判定**$\rho_{dv} = (256\text{B}/(sN \cdot dtype))^2$
| 区间 | 条件 | 结论 |
|---|---|---|
| I | $\rho \ge \rho_{dv}$A1b 凑满可行此时 $1/g > \rho \ge \rho_{dv}$ 故 B 也可行) | **A1b 恒优**(均值不等式) |
| II | $\rho < \rho_{dv} \le 1/g$A1b 卡死B 可行 | 分界公式判定 |
| I | $\rho \ge \rho_{dv}$A1b 凑满可行此时 $1/g > \rho \ge \rho_{dv}$ 故方案 B 也可行) | **A1b 恒优**(均值不等式) |
| II | $\rho < \rho_{dv} \le 1/g$A1b 卡死方案 B 可行 | 分界公式判定 |
| III | $\rho_{dv} > 1/g > \rho$(都卡死) | A0/A1a 兜底 |
区间 II 中 A1b 退化为 $s_t = 256\text{B}/dtype$dValue 下限),尾轮块数 $= r/\rho_{dv} < C$凑不满尾轮时延 $= \sqrt{\rho_{dv}} \cdot T_{load}$小块搬移按 $s_t/sN = \sqrt{\rho_{dv}}$ 缩放
@@ -391,60 +391,60 @@ $$
T_{A1b}^{dv} = T_{load}\big(n_{wave} - 1 + \sqrt{\rho_{dv}}\big),\qquad T_B = \frac{n_{wave}}{\sqrt{g}} \cdot T_{load}
$$
**B 严格优当且仅当**
**方案 B 严格优当且仅当**
$$
\sqrt{\rho_{dv}} > n_{wave} \cdot \sqrt{\frac{n_{wave} - 1 + \rho}{n_{wave}}} - (n_{wave} - 1)
$$
物理解读A1b 卡死后尾轮时延被锁在 $\sqrt{\rho_{dv}} \cdot T_{load}$dValue 下限决定),不再随 $\rho$ 减小;而 B 的 $n_{wave}/\sqrt{g}$ 随 $\rho$ 减小而降低(全局重切幅度减小)。$\rho$ 足够小(卡死足够深)时 B 反超。
物理解读A1b 卡死后尾轮时延被锁在 $\sqrt{\rho_{dv}} \cdot T_{load}$dValue 下限决定),不再随 $\rho$ 减小;而方案 B 的 $n_{wave}/\sqrt{g}$ 随 $\rho$ 减小而降低(全局重切幅度减小)。$\rho$ 足够小(卡死足够深)时方案 B 反超。
### 5.4 数值实例
**访存 Bound 数值实例周长型主导v1.3 重新构造)**
*例 3工作集超 L2、GM 直读的周长型B 不可行)*B=34、M=N=1024、K=2048、BF16tile $sM=sN=512$。输入总量 $34 \times 2 \times 1024 \times 2048 \times 2 = 285$MB > L2 128MB——工作集超 L2搬入部分回 GM 直读($BW_{eff} \to BW_{pc}=50$GB/s。单块$T_{MMAD} = 70.7\mu s$、$T_{MTE2} = 2048 \times 1024 \times 2/50\text{G} = 83.9\mu s$**周长型主导** ✓tile 判据 $512^2/1024 = 256 < 304$)、$T_{FIX} = 10.5\mu s$。$N_{blk} = 34 \times 4 = 136$、$n_{wave}=5$、$r=8$、$\rho=0.25 \ge \rho_{dv}=0.0625$。
*例 3工作集超 L2、GM 直读的周长型,方案 B 不可行)*Batch=34、M=N=1024、K=2048、BF16tile $sM=sN=512$。输入总量 $34 \times 2 \times 1024 \times 2048 \times 2 = 285$MB > L2 128MB——工作集超 L2搬入部分回 GM 直读($BW_{eff} \to BW_{pc}=50$GB/s。单块$T_{MMAD} = 70.7\mu s$、$T_{MTE2} = 2048 \times 1024 \times 2/50\text{G} = 83.9\mu s$**周长型主导** ✓tile 判据 $512^2/1024 = 256 < 304$)、$T_{FIX} = 10.5\mu s$。$N_{blk} = 34 \times 4 = 136$、$n_{wave}=5$、$r=8$、$\rho=0.25 \ge \rho_{dv}=0.0625$。
- A0$5 \times 83.9 = 419.5\mu s$
- A1a$s^* = \min(\lfloor 32/8 \rfloor, 512 \times 2/256\text{B}) = \min(4, 4) = 4$$T_{A1a} = 4 \times 83.9 + 83.9 \times (1+1/4)/2 = 388\mu s$
- A1b$s_t = 512\sqrt{0.25} = 256$dValue $=512$B ✓),尾轮 8 $512^2$ 区域重切为 $8 \times 4 = 32$ $256^2$ 恰好凑满$T_{tail} = 2048 \times 512 \times 2/50\text{G} = 41.9\mu s$$T_{A1b} = 4 \times 83.9 + 41.9 = 377.5\mu s$** 10%**
- B$N_{blk}' = 160$ 要求 $mCnt' \cdot nCnt' \cdot 34 = 160$——34 不整除 160**B 不可行**即使 batch 对齐$M=N=1024$、dValue 下限 128 使 $nCnt' \le 8$、$mCnt' \le 8$$B \times 64 = 2176$ 的分解也无法凑出 $n_{wave} C = 160$ 的整数轮——**周长型场景 B 常因分解自由度不足而不可行** §7.2.3)。
- 方案 B$N_{blk}' = 160$ 要求 $mCnt' \cdot nCnt' \cdot 34 = 160$——34 不整除 160**方案 B 不可行**即使 batch 对齐$M=N=1024$、dValue 下限 128 使 $nCnt' \le 8$、$mCnt' \le 8$$\text{Batch} \times 64 = 2176$ 的分解也无法凑出 $n_{wave} C = 160$ 的整数轮——**周长型场景方案 B 常因分解自由度不足而不可行** §7.2.3)。
*例 4周长型、B 可行的打平区)*B=8、M=N=2176、K=4096、BF16tile $sM=sN=256$。输入 $8 \times 2 \times 2176 \times 4096 \times 2 = 285$MB L2 GM 直读周长型tile 判据 $128 < 304$ ✓)。$T_{load} = 4096 \times 512 \times 2/50\text{G} = 83.9\mu s$。$N_{blk} = 8 \times 81 = 648$、$n_{wave}=21$、$r=8$、$\rho=0.038 < \rho_{dv}=0.25$A1b 凑满卡死)。
*例 4周长型、方案 B 可行的打平区)*Batch=8、M=N=2176、K=4096、BF16tile $sM=sN=256$。输入 $8 \times 2 \times 2176 \times 4096 \times 2 = 285$MB L2 GM 直读周长型tile 判据 $128 < 304$ ✓)。$T_{load} = 4096 \times 512 \times 2/50\text{G} = 83.9\mu s$。$N_{blk} = 8 \times 81 = 648$、$n_{wave}=21$、$r=8$、$\rho=0.038 < \rho_{dv}=0.25$A1b 凑满卡死)。
- A1b$s_t$ 下限 128dValue尾轮 8 $256^2$ 重切为 $8 \times 4 = 32$ $128^2$ 恰好凑满$T_{tail} = 4096 \times 256 \times 2/50\text{G} = 41.9\mu s$$T_{A1b} = 20 \times 83.9 + 41.9 = 1720\mu s$
- A0$1762\mu s$B$N_{blk}'=672$ 要求 $mCnt'nCnt' = 84$ 且整除 $M=N=2176$16 对齐)——$2176 = 16 \times 136$ 的因子分解受 dValue 约束后无可行组合**B 不可行**A1b 为最优 2.4%)。
- A0$1762\mu s$方案 B$N_{blk}'=672$ 要求 $mCnt'nCnt' = 84$ 且整除 $M=N=2176$16 对齐)——$2176 = 16 \times 136$ 的因子分解受 dValue 约束后无可行组合**方案 B 不可行**A1b 为最优 2.4%)。
**周长型场景的规律**工作集超 L2 case 通常 $B$ 大或形状大 $N_{blk}$ $n_{wave}$ 尾轮占比小$\rho$ 小或 $w$ 损失/收益天然被稀释 $B$ 的分解可行性$N_{blk}' = n_{wave} C$ 须分解为 $B \cdot mCnt' \cdot nCnt'$ 16 对齐 + dValue在此类场景常不满足。**周长型场景的"收益/损失"更多是可行性问题而非时延百分比问题**。
**周长型场景的规律**工作集超 L2 case 通常 Batch 大或形状大 $N_{blk}$ $n_{wave}$ 尾轮占比小$\rho$ 小或 $w$ 损失/收益天然被稀释方案 B 的分解可行性$N_{blk}' = n_{wave} C$ 须分解为 $\text{Batch} \cdot mCnt' \cdot nCnt'$ 16 对齐 + dValue在此类场景常不满足。**周长型场景的"收益/损失"更多是可行性问题而非时延百分比问题**。
---
## 六、决策总表与基于 B/M/K/N 的判定流程
## 六、决策总表与基于 Batch/M/K/N 的判定流程
### 6.1 决策总表
主导项判定(§2.1 三维判据**面积型主导** = $T_{MMAD}$ $T_{FIX}$ 最大tile 判据 $\frac{sM \cdot sN}{sM+sN} \ge 93.5$L2 命中 MMAD/FIX 间由 $K \gtrless 304$ **周长型主导** = $T_{MTE2}$ 最大 tile 或工作集超 L2 GM 直读)。
| 场景 | A0 vs A1 | A0 vs B | A1 vs B | 最优策略 |
| 场景 | A0 vs A1 | A0 vs 方案 B | A1 vs 方案 B | 最优策略 |
|---|---|---|---|---|
| 面积型主导$r \le C/2$ $r \mid C$ | A1a | B | A1a = B A1a搬移少 | A1a |
| 面积型主导$r \le C/2$ $r \nmid C$ | A1a | B | B 略优取整损失 | A1a/B 皆可 |
| 面积型主导$r > C/2$ | A1b 优(不退化) | B 优 | **时延严格相等**(总量守恒),离散打平 | A1b 或 B工程简洁选 B搬移下限选 A1b |
| 面积型主导 + $r$ 小($\rho < (187/s)^2$,尾轮翻出) | A1b 优但尾轮翻出 | B 优 | B 微优(~6-8%,翻出效应 §7.2.4 | B |
| 周长型主导,$\rho \ge \rho_{dv}$ 且 B 可行 | A1b 优 | B 优 | **A1b 恒优**(均值不等式) | A1b |
| 周长型主导,$\rho < \rho_{dv}$ 且分界公式成立且 B 可行 | A1b 部分凑满 | B | **B 严格优** | B |
| 周长型主导$\rho < \rho_{dv}$ 且分界公式不成立 | A1b 部分凑满 | B | 打平 | A1b/B 皆可 |
| 周长型主导B 不可行分解自由度不足decode M B L2 | A1b | B 不可行 | 不可比A1b 唯一 | A1b |
| dValue 全面卡死A1b 也不可凑满 | A1a$s^* \ge 2$ A0 | B 不可行 | | A1a/A0 |
| 面积型主导$r \le C/2$ $r \mid C$ | A1a | 方案 B | A1a = 方案 B A1a搬移少 | A1a |
| 面积型主导$r \le C/2$ $r \nmid C$ | A1a | 方案 B | 方案 B 略优取整损失 | A1a/方案 B 皆可 |
| 面积型主导$r > C/2$ | A1b 优(不退化) | 方案 B 优 | **时延严格相等**(总量守恒),离散打平 | A1b 或方案 B工程简洁选方案 B搬移下限选 A1b |
| 面积型主导 + $r$ 小($\rho < (187/s)^2$,尾轮翻出) | A1b 优但尾轮翻出 | 方案 B 优 | 方案 B 微优(~6-8%,翻出效应 §7.2.4 | 方案 B |
| 周长型主导,$\rho \ge \rho_{dv}$ 且方案 B 可行 | A1b 优 | 方案 B 优 | **A1b 恒优**(均值不等式) | A1b |
| 周长型主导,$\rho < \rho_{dv}$ 且分界公式成立且方案 B 可行 | A1b 部分凑满 | 方案 B | **方案 B 严格优** | 方案 B |
| 周长型主导$\rho < \rho_{dv}$ 且分界公式不成立 | A1b 部分凑满 | 方案 B | 打平 | A1b/方案 B 皆可 |
| 周长型主导方案 B 不可行分解自由度不足decode M Batch L2 | A1b | 方案 B 不可行 | 不可比A1b 唯一 | A1b |
| dValue 全面卡死A1b 也不可凑满 | A1a$s^* \ge 2$ A0 | 方案 B 不可行 | | A1a/A0 |
### 6.2 基于 B/M/K/N/dtype 的直接判定流程
### 6.2 基于 Batch/M/K/N/dtype 的直接判定流程
五步闭式前置计算后查表即得最优策略无需逐项建模仿真
1. **首轮切分** §2.5 搬入时延最小化枚举得 $mCnt, nCnt, sM, sN, k_{L1}$
2. **尾轮参数**$N_{blk} = B \cdot mCnt \cdot nCnt$$n_{wave} = \lceil N_{blk}/C \rceil$$r = N_{blk} \bmod C$$\rho = r/C$
2. **尾轮参数**$N_{blk} = \text{Batch} \cdot mCnt \cdot nCnt$$n_{wave} = \lceil N_{blk}/C \rceil$$r = N_{blk} \bmod C$$\rho = r/C$
3. **主导项判定**(§2.1 三维判据 $T_{MMAD}, T_{MTE2}, T_{FIX}$ 取最大注意 $BW_{eff}$ 依工作集是否超 L2 162.5GB/s命中 50GB/sGM 直读
4. **dValue 可行性**$\rho_{dv} = (256\text{B}/(sN \cdot dtype))^2$$g = n_{wave}C/N_{blk}$$g_{dv} = (sN \cdot dtype/256\text{B})^2$**B 分解可行性**$N_{blk}' = n_{wave} C$ 可分解为 $B \cdot mCnt' \cdot nCnt'$ 16 对齐 + $sN' \cdot dtype \ge 256$B
4. **dValue 可行性**$\rho_{dv} = (256\text{B}/(sN \cdot dtype))^2$$g = n_{wave}C/N_{blk}$$g_{dv} = (sN \cdot dtype/256\text{B})^2$**方案 B 分解可行性**$N_{blk}' = n_{wave} C$ 可分解为 $\text{Batch} \cdot mCnt' \cdot nCnt'$ 16 对齐 + $sN' \cdot dtype \ge 256$B
5. **单块主导项**$T_{block} = \max(T_{MMAD}, T_{MTE2}, T_{FIX})$。
**决策表**
@@ -453,16 +453,16 @@ $$
|---|---|---|---|
| 1 | $r = 0$ | A0无尾轮 | $n_{wave} \cdot T_{block}$ |
| 2 | 面积型主导$0 < r \le C/2$无翻出 | A1a$s^* = \lfloor C/r \rfloor$ | $T_{block}(n_{wave} - 1 + 1/s^*)$ |
| 3 | 面积型主导$r > C/2$,无翻出 | A1b 或 B——时延严格相等 | $T_{block}(n_{wave} - 1 + \rho)$ |
| 4 | 面积型主导,$\rho < (187/s)^2$(翻出) | B翻出时 A1b 尾轮变周长型) | $T_{block} \cdot n_{wave}/g$(近似) |
| 5 | 周长型主导,$\rho \ge \rho_{dv}$B 可行 | A1b | $T_{load}(n_{wave} - 1 + \sqrt{\rho})$ |
| 6 | 周长型主导,$\rho < \rho_{dv}$ $\sqrt{\rho_{dv}} > n_{wave}/\sqrt{g} - (n_{wave}-1)$ 且 B 可行 | B | $T_{load} \cdot n_{wave}/\sqrt{g}$ |
| 7 | 周长型主导B 不可行 | A1b凑不满则部分凑满/ A1a / A0 | 按实际分解计算 |
| 3 | 面积型主导$r > C/2$,无翻出 | A1b 或方案 B——时延严格相等 | $T_{block}(n_{wave} - 1 + \rho)$ |
| 4 | 面积型主导,$\rho < (187/s)^2$(翻出) | 方案 B翻出时 A1b 尾轮变周长型) | $T_{block} \cdot n_{wave}/g$(近似) |
| 5 | 周长型主导,$\rho \ge \rho_{dv}$方案 B 可行 | A1b | $T_{load}(n_{wave} - 1 + \sqrt{\rho})$ |
| 6 | 周长型主导,$\rho < \rho_{dv}$ $\sqrt{\rho_{dv}} > n_{wave}/\sqrt{g} - (n_{wave}-1)$ 且方案 B 可行 | 方案 B | $T_{load} \cdot n_{wave}/\sqrt{g}$ |
| 7 | 周长型主导,方案 B 不可行 | A1b凑不满则部分凑满/ A1a / A0 | 按实际分解计算 |
**判定流程图**
```
[B, M, K, N, dtype]
[Batch, M, K, N, dtype]
<首轮枚举§2.5)→ mCnt, nCnt, sM, sN>
@@ -476,40 +476,40 @@ $$
├─ 面积型MMAD 或 FIX 最大)
│ │
│ ├─ ρ < (187/s)²(尾轮翻出)? ── 是 ─▶ B
│ ├─ ρ < (187/s)²(尾轮翻出)? ── 是 ─▶ 方案 B
│ │ 否 ── r ≤ C/2 ? ── 是 ─▶ A1as* = ⌊C/r⌋
│ │ 否 ─▶ A1b 或 B时延严格相等
│ │ (工程简洁选 B
│ │ 否 ─▶ A1b 或方案 B时延严格相等
│ │ (工程简洁选方案 B
└─ 周长型MTE2 最大)
├─ B 分解可行 ? ── 否 ─▶ A1b唯一可行重切/ A1a / A0
├─ 方案 B 分解可行 ? ── 否 ─▶ A1b唯一可行重切/ A1a / A0
└─ 可行 ── ρρ_dv ? ── 是 ─▶ A1b周长和恒 ≤ B
└─ 可行 ── ρρ_dv ? ── 是 ─▶ A1b周长和恒 ≤ 方案 B
└─ 否 ─▶ 分界公式判定:
ρ_dv > n_wave/√g (n_wave1) ? ── 是 ─▶ B
└─ 否 ─▶ A1b/B 打平
ρ_dv > n_wave/√g (n_wave1) ? ── 是 ─▶ 方案 B
└─ 否 ─▶ A1b/方案 B 打平
```
---
## 七、B 方案的简化形态 B1 与 B0/B1 相对 A1b 的损失分析
## 七、方案 B 的简化形态 B1 与 B0/B1 相对 A1b 的损失分析
前文方案 B整轮均匀重切与 A1b 的分界判定需要逐 case 计算 $\rho$、$\rho_{dv}$、分界公式——本节回答两个工程问题:①能否给 B 一个**无脑版门限**(满足条件就直接整数轮满核切,不做 A1b/B 分界)?②若完全采用 B无论无脑版 B1 还是完整版 B0相对理论最优的 A1b 会损失多少、最大损失多少?
前文方案 B整轮均匀重切与 A1b 的分界判定需要逐 case 计算 $\rho$、$\rho_{dv}$、分界公式——本节回答两个工程问题:①能否给方案 B 一个**无脑版门限**(满足条件就直接整数轮满核切,不做 A1b/方案 B 分界)?②若完全采用方案 B无论无脑版 B1 还是完整版 B0相对理论最优的 A1b 会损失多少、最大损失多少?
### 7.1 B0 与 B1 的定义
- **B0完整版 B**:§三~§五的方案 B——与 A1b 做分界判定后选择(访存 Bound 且 $\rho \ge \rho_{dv}$ 时应选 A1b 而非 B
- **B1无脑版 B**:不做 A1b/B 分界,只要门限满足就**直接按整数轮满核切**(无论计算 Bound 还是访存 Bound
- **B0完整版方案 B**:§三~§五的方案 B——与 A1b 做分界判定后选择(访存 Bound 且 $\rho \ge \rho_{dv}$ 时应选 A1b 而非方案 B
- **B1无脑版方案 B**:不做 A1b/方案 B 分界,只要门限满足就**直接按整数轮满核切**(无论计算 Bound 还是访存 Bound
**B1 门限推导**B1 要成立需两个条件——
*条件 1有尾轮*$r = N_{blk} \bmod C > 0$(否则无尾轮可处理);
*条件 2可行 + 值得)*B0 恒优于 A0§4.2/§5.2 已证),故"可行即值得"。可行性只在访存 Bound 下受 dValue 约束($g \le g_{dv}$);计算 Bound 下无条件dValue 放宽为搬移掩盖,且 §4.3 已证 B 与 A1b 时延严格相等)。
*条件 2可行 + 值得)*B0 恒优于 A0§4.2/§5.2 已证),故"可行即值得"。可行性只在访存 Bound 下受 dValue 约束($g \le g_{dv}$);计算 Bound 下无条件dValue 放宽为搬移掩盖,且 §4.3 已证方案 B 与 A1b 时延严格相等)。
合起来,**B1 的判定门限(闭式,仅依赖 B/M/K/N/dtype**
合起来,**B1 的判定门限(闭式,仅依赖 Batch/M/K/N/dtype**
$$
\boxed{\; r > 0 \;\land\; \Big( K \ge K^* \;\lor\; g \le \Big(\frac{sN \cdot dtype}{256\text{B}}\Big)^2 \Big) \;}
@@ -519,17 +519,17 @@ $$
### 7.2 B0/B1 相对 A1b 的损失分析v1.3 按修正模型重写)
B0/B1 相对 A1b 的"损失"定义为 $T_B/T_{A1b} - 1$B 更慢为正)。按 §2.1 的主导项缩放类型分两类讨论——**v1.3 修正模型($T_{MTE2}$ 用全量 K、三维主导项判定结论与 v1.2 有实质差异**。
B0/B1 相对 A1b 的"损失"定义为 $T_B/T_{A1b} - 1$方案 B 更慢为正)。按 §2.1 的主导项缩放类型分两类讨论——**v1.3 修正模型($T_{MTE2}$ 用全量 K、三维主导项判定结论与 v1.2 有实质差异**。
#### 7.2.1 面积型主导:损失严格为 0总量守恒
面积型主导项MMAD 或 FIX的时延 $\propto$ 块面积。设主导项单块时延 $T_{block} = c \cdot sM \cdot sN$$c$ 为与 tile 无关的系数MMAD 时 $c = 2K/Q_{16}$FIX 时 $c = outB/BW_{pc}$)。总量守恒:所有块的面积之和 = 总输出 $B \cdot M \cdot N$,与切分方式无关。轮轮满载时:
面积型主导项MMAD 或 FIX的时延 $\propto$ 块面积。设主导项单块时延 $T_{block} = c \cdot sM \cdot sN$$c$ 为与 tile 无关的系数MMAD 时 $c = 2K/Q_{16}$FIX 时 $c = outB/BW_{pc}$)。总量守恒:所有块的面积之和 = 总输出 $\text{Batch} \cdot M \cdot N$,与切分方式无关。轮轮满载时:
$$
T = \frac{\text{主导项总量}}{C} = \frac{c \cdot B \cdot M \cdot N}{C}
T = \frac{\text{主导项总量}}{C} = \frac{c \cdot \text{Batch} \cdot M \cdot N}{C}
$$
A1b主轮整块 + 尾轮凑满)与 B全局均匀重切都做到轮轮满载 → **时延严格相等,损失恒为 0**
A1b主轮整块 + 尾轮凑满)与方案 B全局均匀重切都做到轮轮满载 → **时延严格相等,损失恒为 0**
*证明*$T_{A1b} = (n_{wave}-1) \cdot c \cdot A + \rho \cdot c \cdot A = cA(n_{wave}-1+\rho)$(尾轮凑满时尾轮小块面积 $= \rho A$、时延 $\rho \cdot cA$$T_B = n_{wave} \cdot c \cdot A/g = cA(n_{wave}-1+\rho)$$n_{wave}/g = N_{blk}/C = n_{wave}-1+\rho$)。**严格相等**。
@@ -545,7 +545,7 @@ $$
T_{A1b} = (n_{wave}-1) \cdot T_{load} + \sqrt{\rho} \cdot T_{load} = T_{load}\big(n_{wave} - 1 + \sqrt{\rho}\big)
$$
B$N_{blk}' = n_{wave} C$ 块均匀重切单块搬移缩 $\sqrt{g}$ $g = n_{wave} C/N_{blk}$
方案 B$N_{blk}' = n_{wave} C$ 块均匀重切单块搬移缩 $\sqrt{g}$ $g = n_{wave} C/N_{blk}$
$$
T_B = \frac{n_{wave}}{\sqrt{g}} \cdot T_{load}
@@ -572,7 +572,7 @@ $$
数值核验$sN=256$、$r=8$、$n_{wave}=2$、$N_{blk}=40$、$g=1.6$$T_B = 2/\sqrt{1.6} = 1.581\,T_{load}$ vs $T_{A1b} = (1+\sqrt{0.25})\,T_{load} = 1.5\,T_{load}$ $f = 1.054$ ✓。
#### 7.2.3 理论公式的可靠性:三个近似与 B 的可行性约束
#### 7.2.3 理论公式的可靠性:三个近似与方案 B 的可行性约束
损失公式建立在三个近似上逐一审视
@@ -582,16 +582,16 @@ $$
\frac{T_B}{T_{A1b}} = \frac{n_{wave} \cdot p_B / \sqrt{g}}{(n_{wave}-1) + \sqrt{\rho} \cdot p_t}
$$
非方形惩罚同时作用于 $p_B$B 全局分解 $p_t$A1b 尾轮分解)——**损失方向由均值不等式的结构保持**两策略在同一基准形状上缩放**大小偏离理论值**$p_B > p_t$ 时放大、$p_B < p_t$ 时缩小甚至反超理论值应视为**损失下界**。
非方形惩罚同时作用于 $p_B$方案 B 全局分解 $p_t$A1b 尾轮分解)——**损失方向由均值不等式的结构保持**两策略在同一基准形状上缩放**大小偏离理论值**$p_B > p_t$ 时放大、$p_B < p_t$ 时缩小甚至反超理论值应视为**损失下界**。
**2$k_{L1}$ 的角色更正**v1.3 修正)。$k_{L1}$ 不进时延分子(§2.1 已证稳态约掉其影响通过 dValue/min_TileSize 约束体现重切使周长缩小 $k_{L1}$ L1 容量上限放松 dValue 下限 $sN' \cdot dtype \ge 256$B 不变——**约束检查的对象是 tile 尺寸本身$k_{L1}$ 不产生额外的时延放大**。v1.2 "$k_{L1}$ regime 使搬移反升"的解释是 $k_{L1}$ 版错误建模的残余本版删除
**3B 的可行性约束周长型场景的决定性因素**。B 要求 $N_{blk}' = n_{wave} C$ 分解为 $B \cdot mCnt' \cdot nCnt'$ 16 对齐 + dValue三重约束叠加下**周长型场景工作集超 L2 的大 B 小形状 decode M B 常不可行**
**3方案 B 的可行性约束周长型场景的决定性因素**。方案 B 要求 $N_{blk}' = n_{wave} C$ 分解为 $\text{Batch} \cdot mCnt' \cdot nCnt'$ 16 对齐 + dValue三重约束叠加下**周长型场景工作集超 L2 的大 Batch 小形状 decode M方案 B 常不可行**
- decode $M$ $M \le 128$$mCnt = 1$ 固定B 只能沿 N 加密——$nCnt' = n_{wave} C / B$ 常使 $sN' = N/nCnt' < 16$ 或跌破 dValue 下限 **B 不可行A1b 是唯一可行的重切方案**B=100、M=64、N=3328$N_{blk}'=1312$ 要求 $sN'=2.5$不可行
- 工作集超 L2 的大 B case$N_{blk}'$ 、$mCnt'nCnt'$ 分解受 dValue/整除约束 常不可行(§5.4 3/4)。
- decode $M$ $M \le 128$$mCnt = 1$ 固定方案 B 只能沿 N 加密——$nCnt' = n_{wave} C / \text{Batch}$ 常使 $sN' = N/nCnt' < 16$ 或跌破 dValue 下限 **方案 B 不可行A1b 是唯一可行的重切方案**Batch=100、M=64、N=3328$N_{blk}'=1312$ 要求 $sN'=2.5$不可行
- 工作集超 L2 的大 Batch case$N_{blk}'$ 、$mCnt'nCnt'$ 分解受 dValue/整除约束 常不可行(§5.4 3/4)。
**此时"损失"问题转化为可行性问题——B 不可用A1b/A1a/A0 承接。**
**此时"损失"问题转化为可行性问题——方案 B 不可用A1b/A1a/A0 承接。**
#### 7.2.4 尾轮小块的主导项翻转(面积型场景的边界修正)
@@ -601,64 +601,64 @@ $$
s\sqrt{\rho} < 187 \iff \rho < \Big(\frac{187}{s}\Big)^2
$$
$s=256$ $\rho < 0.533$$r < 17$即翻出此时 A1b 尾轮时延按周长型计算$T_{tail} = T_{load}(s_t)$B 的全局 tile $s/\sqrt{g}$ 缩得更温和$1/\sqrt{g} > \sqrt{\rho}$ 恒成立)更不易翻出——**$r$ 小的面积型 case 中 B 可微优M=N=1536、K=256 的 FIX 主导 caseB 微优约 6%**。
$s=256$ $\rho < 0.533$$r < 17$即翻出此时 A1b 尾轮时延按周长型计算$T_{tail} = T_{load}(s_t)$方案 B 的全局 tile $s/\sqrt{g}$ 缩得更温和$1/\sqrt{g} > \sqrt{\rho}$ 恒成立)更不易翻出——**$r$ 小的面积型 case 中方案 B 可微优M=N=1536、K=256 的 FIX 主导 case方案 B 微优约 6%**。
#### 7.2.5 主流 prefill/decode 场景的实际损失
大模型推理 BMM 典型形状prefill B∈[2,128]、M∈[4k,128k]、K/N∈[128,10240]decode B∈[2,128]、M∈[1,128]、K/N∈[128,10240]。
大模型推理 BMM 典型形状prefill Batch∈[2,128]、M∈[4k,128k]、K/N∈[128,10240]decode Batch∈[2,128]、M∈[1,128]、K/N∈[128,10240]。
**1prefillM 大):面积型主导 + 大 $n_{wave}$ → 损失 0**
- $M, N$ 为 256 倍数(主流模型维度 4096/8192/14336 均是):$mCnt = M/256$、$nCnt = N/256$ 含充足 2 的幂因子,$N_{blk} = B \cdot mCnt \cdot nCnt$ 对 $B \ge 2$ 几乎恒为 32 倍数 → **$r=0$ 无尾轮,损失 0**
- $M$ 奇异seq_len 非 256 倍数,如 M=4224$N_{blk}$ 大、$n_{wave} \ge 9$ → 即使触发尾轮,面积型主导下 A1b 与 B 严格打平 → **损失 0**
- $M, N$ 为 256 倍数(主流模型维度 4096/8192/14336 均是):$mCnt = M/256$、$nCnt = N/256$ 含充足 2 的幂因子,$N_{blk} = \text{Batch} \cdot mCnt \cdot nCnt$ 对 $\text{Batch} \ge 2$ 几乎恒为 32 倍数 → **$r=0$ 无尾轮,损失 0**
- $M$ 奇异seq_len 非 256 倍数,如 M=4224$N_{blk}$ 大、$n_{wave} \ge 9$ → 即使触发尾轮,面积型主导下 A1b 与方案 B 严格打平 → **损失 0**
- tile 判据:$sM=sN=256$、$sM \cdot sN/(sM+sN) = 128 > 93.5$L2 命中临界)→ 搬入不主导K 任意时 MMAD$K \ge 304$)或 FIX$K < 304$主导——**恒面积型**。
**2decodeM 128 周长型主导但 B 常不可行 A1b 主力**
**2decodeM 128 周长型主导但方案 B 常不可行 A1b 主力**
- $M$ tile 面积小$sM = M$)→ tile 判据 $M \cdot sN/(M+sN)$ M=64、sN=256$51.2 < 93.5$)→ **周长型主导**
- $mCnt=1$ 固定 B 的全局重切只能沿 N 加密$sN' = N/(n_{wave} C/B)$ 常跌破 16 dValue 下限 **B 不可行**(§7.2.3(3)
- A1b 尾轮局部重切tile $(M, sN_t)$ 只缩 N 可行 **A1b 是唯一可行的重切方案无损失可言B 不在可选集)**
- $w=1$$N_{blk} < C$ B=8、N=512核填不满属降核/并行度不足场景,不在尾轮讨论范围。
- $mCnt=1$ 固定 方案 B 的全局重切只能沿 N 加密$sN' = N/(n_{wave} C/\text{Batch})$ 常跌破 16 dValue 下限 **方案 B 不可行**(§7.2.3(3)
- A1b 尾轮局部重切tile $(M, sN_t)$ 只缩 N 可行 **A1b 是唯一可行的重切方案,无损失可言(方案 B 不在可选集)**
- $w=1$$N_{blk} < C$ Batch=8、N=512核填不满属降核/并行度不足场景,不在尾轮讨论范围。
**3主流场景损失结论**
| 场景 | 主导项类型 | B 可行性 | B0/B1 相对 A1b 损失 |
| 场景 | 主导项类型 | 方案 B 可行性 | B0/B1 相对 A1b 损失 |
|---|---|---|---|
| prefill$M,N$ 256 倍数 | | | **0$r=0$ 无尾轮)** |
| prefill$M$ 奇异 | 面积型 | 可行 | **0严格打平离散 <3% 互有胜负)** |
| decode$M \le 128$ | 周长型 | **常不可行** | 不可比A1b 唯一可行 |
| 工作集超 L2 的大 B case | 周长型 | 常不可行 | 不可比 / A1b |
| 周长型 + B 可行 + $\rho \ge \rho_{dv}$ + $n_{wave}=2$ | 周长型 | 可行 | **5.4%**$sN=256$/ 16.6%$sN=512$,理论下界) |
| 面积型 + $r$ $\rho < 0.53$ | 面积型尾轮翻出周长型 | 可行 | 0B 微优 ~6%翻出效应 |
| 工作集超 L2 的大 Batch case | 周长型 | 常不可行 | 不可比 / A1b |
| 周长型 + 方案 B 可行 + $\rho \ge \rho_{dv}$ + $n_{wave}=2$ | 周长型 | 可行 | **5.4%**$sN=256$/ 16.6%$sN=512$,理论下界) |
| 面积型 + $r$ $\rho < 0.53$ | 面积型尾轮翻出周长型 | 可行 | 0方案 B 微优 ~6%翻出效应 |
**v1.2 的"~30% 极端例损失"是 $k_{L1}$ 错误模型的产物**——正确模型K + 三维主导项下该例M=16896、N=512、K=140 FIX 面积型主导A1b B 打平差异 <1%)。**主流 prefill/decode case B1 零损失或不可比B 不可行时 A1b 承接)——B1 在主流场景是安全的工程选择。**
**v1.2 的"~30% 极端例损失"是 $k_{L1}$ 错误模型的产物**——正确模型K + 三维主导项下该例M=16896、N=512、K=140 FIX 面积型主导A1b 方案 B 打平差异 <1%)。**主流 prefill/decode case B1 零损失或不可比方案 B 不可行时 A1b 承接)——B1 在主流场景是安全的工程选择。**
### 7.3 损失汇总与工程建议
| 场景修正模型K $T_{MTE2}$ + 三维主导项 | B0/B1 相对 A1b 的损失 | 说明 |
|---|---|---|
| 面积型主导MMAD$K \ge 304$FIX$K < 304$ tile | **0**严格打平总量守恒 | 主流 prefill/decode 均属此类离散对齐 <3% 互有胜负 |
| 面积型主导 + $r$ $\rho < (187/s)^2$尾轮翻出 | 0B 微优 ~6-8% | 翻出效应(§7.2.4A1b 尾轮 tile 太小 |
| 周长型主导MTE2B 可行$\rho \ge \rho_{dv}$$n_{wave}=2$ | **5.4%**$sN=256$/ 16.6%$sN=512$,理论下界) | $f(\rho)-1$ 公式实际 case 罕见 |
| 周长型主导B 不可行decode M B L2 | 不可比A1b 唯一可行 | 可行性问题而非损失问题 |
| 周长型主导$\rho < \rho_{dv}$A1b dValue 卡死 B 可行 | 0B 反超或打平 | 分界公式 §5.3(iii) |
| 面积型主导 + $r$ $\rho < (187/s)^2$尾轮翻出 | 0方案 B 微优 ~6-8% | 翻出效应(§7.2.4A1b 尾轮 tile 太小 |
| 周长型主导MTE2方案 B 可行$\rho \ge \rho_{dv}$$n_{wave}=2$ | **5.4%**$sN=256$/ 16.6%$sN=512$,理论下界) | $f(\rho)-1$ 公式实际 case 罕见 |
| 周长型主导方案 B 不可行decode M Batch L2 | 不可比A1b 唯一可行 | 可行性问题而非损失问题 |
| 周长型主导$\rho < \rho_{dv}$A1b dValue 卡死方案 B 可行 | 0方案 B 反超或打平 | 分界公式 §5.3(iii) |
| 主流 prefill/decode case | **0 ~ 2.5%** | §7.2.5 |
**工程建议**v1.3 刷新
1. **B1无脑整数轮满核切在主流场景是安全的**面积型主导下与 A1b 时延严格相等零损失prefill M/N 场景 $r=0$ 居多256 倍数
2. **decode 小 M 场景 B 常不可行**$mCnt=1$、分解自由度不足——A1b 是唯一可行的重切方案B1 门限须包含分解可行性检查不可行时回落 A1b
3. **周长型 + B 可行 + $n_{wave}=2$ + $\rho=\rho_{dv}$ 的边角 case**损失理论 5.4%~16.6%下界此类 case 应落到 A1b 或按 §5.3 分界公式精确判定B0
2. **decode 小 M 场景方案 B 常不可行**$mCnt=1$、分解自由度不足——A1b 是唯一可行的重切方案B1 门限须包含分解可行性检查不可行时回落 A1b
3. **周长型 + 方案 B 可行 + $n_{wave}=2$ + $\rho=\rho_{dv}$ 的边角 case**损失理论 5.4%~16.6%下界此类 case 应落到 A1b 或按 §5.3 分界公式精确判定B0
4. v1.2 "~30% 极端例损失" $k_{L1}$ 错误模型产物修正模型下该例打平<1%)——**不存在 30% 量级的真实损失场景**
5. B1 门限闭式(§7.1host 端零成本
## 八、边界说明
1. **带宽模型敏感性**访存 Bound 结论依赖"每核 MTE2 带宽上限 $BW_{pc}$"假设 HBM 为全局共享池尾轮 $r$ 核可吃满 $W_{GM}$A0 尾轮搬移时延已是 $\rho \cdot T_{load}$ 接近理想A1b/B 的搬移增量无带宽补偿结论反转昇腾 950PR MTE2 为每核独立 DMA 引擎带宽按核数配平采用固定份额结论临界 case 建议实测复核
1. **带宽模型敏感性**访存 Bound 结论依赖"每核 MTE2 带宽上限 $BW_{pc}$"假设 HBM 为全局共享池尾轮 $r$ 核可吃满 $W_{GM}$A0 尾轮搬移时延已是 $\rho \cdot T_{load}$ 接近理想A1b/方案 B 的搬移增量无带宽补偿结论反转昇腾 950PR MTE2 为每核独立 DMA 引擎带宽按核数配平采用固定份额结论临界 case 建议实测复核
2. **A1b 的工程代价**需两套 tile 参数主轮大 tile + 尾轮小 tile与尾轮区域的边界处理$r$ 个原块的并一般为 L 按矩形分解重切host 端多一次枚举NPU kernel 需支持尾轮 tile 尺寸切换这些复杂度不改变时延结论但影响实现成本
3. **方形基准的适用条件**:§2.5 已述——K 全载时方形严格最优L1 主导时仅面积相关非方形分解的实际收益由同一目标函数评估 5 的非方形惩罚即此体现
4. **B 不整除 $N_{blk}'$**$B \nmid N_{blk}'$ 时按 batch 分组切分部分 batch 多一块收益略降判定不变
4. **Batch 不整除 $N_{blk}'$**$\text{Batch} \nmid N_{blk}'$ 时按 batch 分组切分部分 batch 多一块收益略降判定不变
---