diff --git a/BMM算子优化分析_Release/MergeBatch_vs_IterBatch分析_v1.0.html b/BMM算子优化分析_Release/MergeBatch_vs_IterBatch分析_v1.0.html index 1e7fb70..36995fb 100644 --- a/BMM算子优化分析_Release/MergeBatch_vs_IterBatch分析_v1.0.html +++ b/BMM算子优化分析_Release/MergeBatch_vs_IterBatch分析_v1.0.html @@ -42,6 +42,8 @@ MathJax = {
目标芯片:昇腾 950PR(DAV_3510)。理论分析基于《BMM 算子优化分析 v0.96》,源码参考 [cann-ops-nn](https://gitcode.com/cann/ops-nn/tree/master/matmul/batch_mat_mul_v3) 实现。+
BMM 中当 B ≥ C 时核间切 B 免费,核内有 IterBatch(逐 batch)和 MergeBatch(合并 $b_0$ 个 batch)两种路径。本文从 GM→L1 搬移粒度差异出发,证明 MergeBatch 的核心优势是合并搬移减少 DMA 命令数(每次搬移有固定开销 $T_{cmd}$),核心劣势是 **drain 暴露放大 $b_0$ 倍。分界条件:MergeBatch 仅在 K 截断**($k_{L1} = K$,小 M/N)且 $b_{core}$ 足够大时优于 IterBatch;**L1 绑定情形($k_{L1} < K$)MergeBatch 恒劣于 IterBatch**。与源码对比发现:源码 MergeBatch 进入条件偏宽(缺搬移量/tile/算存比约束),IterBatch 只覆盖 L1 形态 b(缺 a/c/d)。
BMM(BatchMatMul)中,当 B ≥ C(batch 数 ≥ AIC 核数)时,核间切 B 是免费的——每核独立处理若干 batch,无共享无依赖。核内的两种实现路径: