diff --git a/BMM算子优化分析_Release/BMM算子优化分析_v0.91.html b/BMM算子优化分析_Release/BMM算子优化分析_v0.91.html index 9abc5a8..6be257f 100644 --- a/BMM算子优化分析_Release/BMM算子优化分析_v0.91.html +++ b/BMM算子优化分析_Release/BMM算子优化分析_v0.91.html @@ -169,6 +169,20 @@ $$ \text{penalty} = \begin{cases} (b_0-1)(T_{comp} + T_{write}) & \text{L1 绑定(}k_{L1} \lt K\text{)} \\ (b_0^2-1)T_{comp} + (b_0-1)T_{write} & \text{K 截断(}k_{L1} = K\text{)} \end{cases}$$
K 截断时 MergeBatch 的 $k_{L1}$ 不减半 → 每分块计算量 $b_0^2$ 倍(而非 $b_0$ 倍)→ drain 惩罚更大。小 MN 时 $T_{comp}$ 小 → penalty 小 → MergeBatch 更容易赢;大 B 时 $b_{core}$ 大 → 边界节省多 → MergeBatch 更容易赢。
条件 1($b_{core} \ge 2b_0$)是该分界在典型 $T_{bd}$ 下的保守近似。精确边界依赖 $T_{bd}$ 实测标定。
+**$T_{bd}$ 的物理成因**(batch 边界处硬件必须完成的固定动作):
+这些开销与 batch 的计算量无关,是每次 batch 切换的固定成本。大 batch 时被大量计算分摊,占比可忽略;小 batch 时每个 batch 绝对时延短,边界开销占比显著。MergeBatch 把 $b_0$ 个 batch 并为一次大矩阵计算,边界数降 $b_0$ 倍——这是 MergeBatch 的结构性收益来源。
+MergeBatch vs IterBatch 优势总结:
+| 维度 | IterBatch | MergeBatch | 差异来源 |
|---|---|---|---|
| 稳态搬移吞吐 | 相同 | 相同 | 总搬移量、每块大小、总块数相同 |
| batch 边界开销 | $b_{core} \cdot T_{bd}$ | $b_{core}/b_0 \cdot T_{bd}$ | **MergeBatch 少 $b_0$ 倍** ← 核心优势 |
| drain 暴露 | $T_{comp} + T_{write}$ | $b_0(T_{comp} + T_{write})$ | IterBatch 少 $b_0$ 倍 ← 核心劣势 |
| L0C 利用率 | $MN \cdot 4\text{B}$ | $b_0^2 MN \cdot 4\text{B}$ | 访存 Bound 下不影响时延 |
净收益 = 边界节省 - drain 惩罚 = $b_{core}(1-\frac{1}{b_0})T_{bd} - (b_0-1)(T_{comp}+T_{write})$。大 B($b_{core}$ 大)且小 MN($T_{comp}$ 小)时 MergeBatch 最优。
L0C 利用率说明:小 MN 时 IterBatch 的 L0C tile($MN \cdot 4\text{B}$)远小于 L0C 容量,MergeBatch 合并后更接近满载。但访存 Bound 下计算被搬移掩盖,L0C 利用率不影响总时延——不构成 MergeBatch 的优势。