Files
matmul-analysis/BMM/BMM算子优化分析_Release/ASW_Basic分支分析/BMM尾轮处理策略对比分析_v1.5.html

529 lines
62 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BMM 尾轮处理策略对比分析 v1.5</title>
<script>
MathJax = {
tex: {
inlineMath: [['$','$']],
displayMath: [['$$','$$']],
tags: 'ams',
processEscapes: true
}
};
</script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<style>
:root{--ink:#1f2933;--muted:#5f6b7a;--accent:#0b6bcb;--accent2:#0e9f6e;--line:#d9e2ec;--code-bg:#f4f6f9}
*{box-sizing:border-box}
body{font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;color:var(--ink);background:#eef2f6;margin:0;line-height:1.8}
.page{max-width:1020px;margin:0 auto;padding:32px 44px 80px;background:#fff;box-shadow:0 0 24px rgba(0,0,0,.06)}
h1{font-size:28px;border-bottom:3px solid var(--accent);padding-bottom:12px;margin-top:8px}
h2{font-size:22px;margin-top:44px;border-left:6px solid var(--accent);padding-left:12px;color:#0b3d73}
h3{font-size:18px;margin-top:30px;color:#0b3d73;border-bottom:1px dashed var(--line);padding-bottom:6px}
h4{font-size:16px;margin-top:20px;color:#123}
table{border-collapse:collapse;width:100%;margin:14px 0;font-size:14px}
th,td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}
th{background:#eaf2fb;color:#0b3d73}
tr:nth-child(even) td{background:#f8fafc}
code,pre{font-family:"JetBrains Mono",Consolas,Menlo,monospace;font-size:13px}
code{background:var(--code-bg);padding:1px 5px;border-radius:4px;color:#9d2c5e}
pre{background:var(--code-bg);border:1px solid var(--line);border-radius:8px;padding:14px;overflow-x:auto;line-height:1.55}
pre code{background:none;color:#243447;padding:0}
blockquote{background:#eafaf3;border-left:5px solid var(--accent2);padding:10px 16px;border-radius:0 8px 8px 0;margin:14px 0}
.math{background:#fafbfc;border:1.5px solid #c3d6ee;border-radius:10px;padding:10px 22px;margin:14px 0;overflow-x:auto}
ul.tight li,ol.tight li{margin:3px 0}
hr{border:none;border-top:1px solid var(--line);margin:24px 0}
</style>
</head>
<body>
<div class="page">
<h1>BMM 尾轮处理策略对比分析:不重切 / 尾轮重切 / 整轮均匀重切</h1>
<blockquote>目标芯片:昇腾 950PRDAV_3510。本文自包含——不依赖其他分析文档全部推导在文内完成仅引用外部公开资料昇腾白皮书、CANN 文档、开源算子源码仓)。<br>版本v1.52026-08-31<b>方案 B 广义化公平性修正</b>:去掉 v1.4 的"整除满载"强约束,允许尾轮核利用率 ≥80%——广义方案 B ≡ 修正首轮枚举 min $w \times T_{block}$§2.5 补充枚举目标修正跨轮次边界§7.2.3 三例公平重算:方案 B 真实损失 5.9%/11.1%/3.7%v1.4 整除强约束的 89.6%/88.9%/6.8% 是不公平产物结论A1b 恒不劣于广义方案 B枚举空间包含方案 B 价值在工程简洁)<br>历史v1.1 新增 §七 B1 无脑版门限与损失分析v1.0 首版(三策略两两对比与 Batch/M/K/N 判定流程)<br>历史v1.0 首版(三策略两两对比与 Batch/M/K/N 判定流程)</blockquote>
<hr>
<h2>摘要</h2>
<p>BMMBatchMatMul算子在核间切分 M/N 后,总输出块数 $N_{blk} = \text{Batch} \cdot mCnt \cdot nCnt$ 一般不是核数 C 的整数倍,尾轮只有 $r = N_{blk} \bmod C$ 个核工作、其余核空转。本文对四种尾轮处理策略做严格的两两对比:<b>A0不重切、A1a尾轮整数倍切分、A1b尾轮 tile 重选凑满核、B整轮均匀重切</b>,在计算 Bound 与访存 Bound 两类场景下给出完整的时延公式与适用条件分界。</p>
<p>核心结论:</p>
<ol class="tight">
<li><b>A0 从来不是最优</b>$r &gt; 0$ 时 A1 或方案 B 严格优);</li>
<li><b>A1a 是 A1b 的真子集</b>枚举空间包含关系A1b 恒不劣于 A1a</li>
<li><b>计算 Bound</b>A1b 与方案 B 理论时延严格相等(总计算量/C 守恒A1b 搬移周长和恒 ≤ 方案 B均值不等式——时延打平、按工程权衡选择</li>
<li><b>访存 Bound</b>$\rho \ge \rho_{dv}$(尾轮占比 ≥ dValue 平方阈值)时 A1b 严格优;$\rho &lt; \rho_{dv}$ 时 A1b 被 dValue 卡死,方案 B 严格优当且仅当 $\sqrt{\rho_{dv}} &gt; n_{wave}/\sqrt{g} - (n_{wave}-1)$——<b>方案 B 反超的唯一通道是 dValue</b>A1b 的尾轮 tile 缩放 $\sqrt{\rho}$ 恒狠于方案 B 的 $1/\sqrt{g}$$\rho &lt; 1/g$ 恒成立),卡死更深时方案 B 胜出,该区间窄且临界实测打平;</li>
<li>给出<b>基于 Batch/M/K/N/dtype 的闭式判定流程</b>:五步前置计算 + 决策表,无需逐项仿真;</li>
<li><b>v1.1 新增 §七</b>:方案 B 的简化形态 <b>B1</b>(无脑版:满足门限就直接整数轮满核切,门限闭式 $r&gt;0 \land (K \ge K^* \lor g \le (sN \cdot dtype/256\text{B})^2)$)与 <b>B0/B1 相对 A1b 的损失分析</b></li>
<li><b>v1.2 重写 §7.2</b>:损失公式逐步推导链与主流场景分析;</li>
<li><b>v1.3 修正时延模型</b>$T_{MTE2}$ 分子 $k_{L1} \to K$(稳态流水下 $k_{L1}$ 约掉的完整证明——单块搬入总量 $K(sM+sN)dtype$ 与分次粒度无关);<b>三维主导项判定</b>取代单一 $K^*$ 判据MMAD vs MTE2 由 tile 决定、K 约掉MMAD vs FIX 由 K 决定,临界 304<b>主导项缩放类型</b>重新分类面积型MMAD/FIX ∝ 面积周长型MTE2 ∝ 周长)——<b>主流 prefill/decode case 恒为面积型 → B1 与 A1b 时延严格相等(零损失)</b>decode 小 M 场景方案 B 因分解自由度不足常不可行 → A1b 是唯一可行重切方案§2.5 方形结论严格证明(均值不等式,更正"L1 主导形状自由"的伪结论——那是 $k_{L1}$ 误置时延分子的建模残余v1.2 的"~30% 极端例损失"是 $k_{L1}$ 错误模型产物,修正后该例打平(&lt;1%</li>
<li><b>v1.4 重写 §7.2.3</b>:方案 B 的"不可行"改述为<b>整除冗余代价</b>——给出方案 B 最优可达性能与 $\gcd(\text{Batch}, C)$ 分层定量;</li>
<li><b>v1.5 方案 B 广义化公平性修正</b>v1.4 的"整除满载"约束($N_{blk}' \equiv 0 \pmod C$)过强不公平——广义化允许尾轮核利用率 ≥80%、所有分块统一重切。广义方案 B ≡ 修正首轮枚举 min $w \times T_{block}$§2.5 补充跨轮次边界修正)。三例公平重算:方案 B 真实损失 <b>5.9%(例 4/ 11.1%(例 3/ 3.7%decode</b>——v1.4 的 89.6%/88.9%/6.8% 是整除强约束的不公平产物。结论:<b>A1b 恒不劣于广义方案 B</b>(枚举空间包含),方案 B 价值在工程简洁(一套 tile、无尾轮分支</li>
</ol>
<hr>
<h2>一、问题背景与执行模型</h2>
<h3>1.1 BMM 的核间切分与数据流</h3>
<p>BatchMatMulV3 在昇腾 NPU 上的兜底分支ASW_Basic按输出块并行。<b>适用范围说明</b>ASW_Basic 是兜底分支——能进入更靠前特殊分支K=0、转 Matmul/Mul、StreamK、MergeBatch、IterBatch、AL1/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 数据流:</p>
<pre><code>GM ──MTE2──&gt; L1 ──MTE1──&gt; L0A/L0B ──MMAD──&gt; L0C ──Fixpipe──&gt; GM
↑_____________ L2 Cache读 5.2TB/s_____________↑</code></pre>
<p>核间不切 KsingleCoreK = K每个输出块独立累加完成后经 Fixpipe 写出 GM。块与块之间无依赖——这是尾轮可以独立重切的前提。</p>
<h3>1.2 尾轮问题</h3>
<p>块按序分配:核 $i$ 处理块 $i, i+C, i+2C, \ldots$。总块数 $N_{blk}$ 不能被 $C$ 整除时,最后一轮(尾轮)只有 $r = N_{blk} \bmod C$ 个核有块可算,$C - r$ 个核空转一个整块时间。</p>
<p><b>问题</b>:给定 Batch、M、K、N、dtype 与首轮切分singleCoreM/N如何处理尾轮使端到端时延最小</p>
<h3>1.3 硬件规格与符号定义</h3>
<p>昇腾 950PR 关键规格([昇腾 950 NPU 架构白皮书](https://public-download.obs.cn-east-2.myhuaweicloud.com/ascend/%E6%98%87%E8%85%BE950%20NPU%E6%9E%B6%E6%9E%84%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf)</p>
<table><tr><th>符号</th><th>含义</th><th>取值</th></tr>
<tr><td>$C$</td><td>AIC 核数</td><td>32</td></tr>
<tr><td>$Q_{16}$</td><td>单核 Cube BF16 峰值算力</td><td>486/32 ≈ 15.2 TFLOPS</td></tr>
<tr><td>$W_{GM}$</td><td>GMHBM总带宽</td><td>1.6 TB/s</td></tr>
<tr><td>$BW_{pc}$</td><td>单核 GM 带宽份额</td><td>$W_{GM}/C = 50$ GB/s</td></tr>
<tr><td>$L1$</td><td>L1 容量/核</td><td>512 KB</td></tr>
<tr><td>$L0C$</td><td>L0C 容量/核</td><td>256 KB</td></tr>
<tr><td>$dtype$ / $outB$</td><td>输入/输出元素字节数</td><td>BF16 → 2B</td></tr></table>
<p>*Tiling 符号*$sM, sN$ = 单核输出 tile 的 M/N 维度singleCoreM/N 的简写);$k_{L1}$ = GM→L1 的 K 向粒度;$mCnt = \lceil M/sM \rceil$、$nCnt = \lceil N/sN \rceil$。</p>
<p>*尾轮符号*$N_{blk} = \text{Batch} \cdot mCnt \cdot nCnt$(总块数);$n_{wave} = \lceil N_{blk}/C \rceil$(总轮次);$r = N_{blk} \bmod C$(尾轮块数);$\rho = r/C$(尾轮占比)。</p>
<hr>
<h2>二、基础模型</h2>
<h3>2.1 单块时延三项</h3>
<p>单个输出块 $[sM, sN]$K 维全量累加)的三段时延。先推导搬入项——这是本文的修正重点。</p>
<p>**搬入时延的推导(为什么分子是 K 而不是 $k_{L1}$**:块 $[sM, sN]$ 的输入为 A 行带 $[sM, K]$ 与 B 列带 $[K, sN]$,总搬入量</p>
<div class="math">$$
S_{blk} = K \cdot (sM + sN) \cdot dtype
$$</div>
<p>GM→L1 按 $k_{L1}$ 的 K 向粒度分 $K/k_{L1}$ 次搬入,每次搬 $k_{L1}(sM+sN) \cdot dtype$,与 MMAD 流水。稳态下总搬入时延 = 次数 × 单次时延:</p>
<div class="math">$$
T_{MTE2} = \frac{K}{k_{L1}} \cdot \frac{k_{L1}(sM+sN) \cdot dtype}{BW_{eff}} = \frac{K(sM+sN) \cdot dtype}{BW_{eff}}
$$</div>
<p>**$k_{L1}$ 在稳态流水中约掉**——搬入总时延只取决于总数据量与有效带宽,与分次粒度无关。$k_{L1}$ 的真实角色是<b>搬移效率约束</b>§2.3$k_{L1} \cdot dtype \ge 256$BdValue 下限)与单次搬移量 ≥ 16KB 决定是否触发带宽打折,不满足时体现为 $BW_{eff}$ 下降,而不是出现在时延分子中。</p>
<p>**有效带宽 $BW_{eff}$ 的分层**:尾轮分析执行时,主轮已把输入工作集读入 L2——工作集 ≤ L2128MB时尾轮小块的搬入全部 L2 命中,$BW_{eff} = BW_{L2}/C = 5.2\text{TB/s}/32 \approx 162.5$ GB/s工作集超 L2 时部分回 GM$BW_{eff}$ 介于 $BW_{pc} = 50$ GB/sGM 直读下界)与 162.5 GB/s 之间。</p>
<p><b>三段时延汇总</b></p>
<div class="math">$$
T_{MMAD} = \frac{2 \cdot sM \cdot sN \cdot K}{Q_{16}},\qquad T_{MTE2} = \frac{K(sM+sN) \cdot dtype}{BW_{eff}},\qquad T_{FIX} = \frac{sM \cdot sN \cdot outB}{BW_{pc}}
$$</div>
<p>单块时延取主导项:$T_{block} = \max(T_{MMAD}, T_{MTE2}, T_{FIX})$。</p>
<p><b>三维主导项判定</b>(两两比值,取代此前单以 K 判定的不完整做法):</p>
<table><tr><th>对比</th><th>比值</th><th>判据</th><th>决定因素</th></tr>
<tr><td>MMAD vs MTE2</td><td>$\dfrac{2 sM \cdot sN \cdot BW_{eff}}{(sM+sN) \cdot dtype \cdot Q_{16}}$</td><td>$\dfrac{sM \cdot sN}{sM+sN} \gtrless \dfrac{dtype \cdot Q_{16}}{2 BW_{eff}}$</td><td><b>tile 尺寸</b>K 约掉)</td></tr>
<tr><td>MMAD vs FIX</td><td>$\dfrac{2K \cdot BW_{pc}}{outB \cdot Q_{16}}$</td><td>$K \gtrless \dfrac{outB \cdot Q_{16}}{2 BW_{pc}}$</td><td><b>K</b>BF16 输出临界 ≈304</td></tr>
<tr><td>MTE2 vs FIX</td><td>由前两条推出</td><td></td><td></td></tr></table>
<p>两个临界值BF16、L2 命中 $BW_{eff}$=162.5GB/stile 临界 $\dfrac{sM \cdot sN}{sM+sN} \approx 93.5$(方形 $sM=sN$ 时 $s \approx 187$GM 直读 $BW_{eff}$=50GB/s 时临界 304、方形 $s \approx 608$K 临界 304。</p>
<p><b>关键推论(缩放类型二分)</b>:三项中 MMAD 与 FIX 都 $\propto$ <b>面积</b> $sM \cdot sN$MTE2 $\propto$ <b>周长</b> $(sM+sN)$。主导项的缩放类型决定尾轮分析的结构:</p>
<ul class="tight">
<li><b>面积型主导</b>MMAD 或 FIX 最大tile 大(方形 $s \ge 187$)且($K \ge 304$ 时 MMAD、$K &lt; 304$ 时 FIX——<b>主流 case 均属此类</b></li>
<li><b>周长型主导</b>MTE2 最大tile 小($s &lt; 187$)或工作集超 L2GM 直读、$s &lt; 608$)——边角 case。</li>
</ul>
<p>注意:<b>"K 大计算 Bound"的准确含义是"K 大使 MMAD 超过 FIX"</b>(写出量与 K 无关MMAD 与 MTE2 的相对大小与 K 无关(两者都 $\propto K$)。此前版本以 $K^*$ 单一判据分类的做法混淆了这两个维度,本版更正。</p>
<h3>2.2 块几何缩放律(全文分析的枢纽)</h3>
<p>把块数放大 $g$ 倍(面积缩 $g$ 倍、线性尺寸缩 $\sqrt{g}$ 倍,近方形比例)时:</p>
<table><tr><th>时延项</th><th>依赖</th><th>缩放律</th></tr>
<tr><td>$T_{MMAD}$</td><td>$\propto$ 面积 $sM \cdot sN$</td><td>$\propto g^{-1}$</td></tr>
<tr><td>$T_{MTE2}$</td><td>$\propto$ 周长 $(sM + sN)$</td><td>$\propto g^{-1/2}$</td></tr>
<tr><td>$T_{FIX}$</td><td>$\propto$ 面积</td><td>$\propto g^{-1}$(总量与切分无关)</td></tr></table>
<p><b>搬移随周长缩放是关键</b>:切分越多,计算缩 $g$ 倍而搬移只缩 $\sqrt{g}$ 倍——"切分越多重复读越多"在每块粒度上的体现输出是面积、输入搬运是周长A 行带 $sM \times K$ + B 列带 $K \times sN$)。</p>
<h3>2.3 搬移效率约束</h3>
<p>GM→L1 搬移Nd2Nz DMA的两级效率阈值</p>
<ol class="tight">
<li><b>dValue ≥ 256B</b>DMA 硬件突发下限dValue 是 ND 排布中连续维的字节数——B 矩阵非转置 $[K, N]$ 时连续维为 NdValue = $sN \cdot dtype$B 转置 $[N, K]$ 时连续维为 KdValue = $k_{L1} \cdot dtype$A 非转置 $[M, K]$ 的 dValue = $k_{L1} \cdot dtype$**A 的 dValue 由 K 向保证,不约束 $sM$B 非转置时 $sN$ 有 256B 下限——约束非对称**</li>
<li><b>单次搬移量 ≥ min_TileSize</b>(推荐 16KB如 $k_{L1} \cdot sN \cdot dtype \ge 16$KB。</li>
</ol>
<h3>2.4 带宽模型声明</h3>
<p>昇腾 950PR 每核 MTE2 为独立 DMA 引擎、带宽按核数配平,建模为<b>每核带宽上限 = 聚合带宽/核数</b>。该假设对 GM 与 L2 两层同构GM 层每核 $BW_{pc} = W_{GM}/C = 50$ GB/sL2 层每核 $BW_{L2}/C = 5.2\text{TB/s}/32 \approx 162.5$ GB/s§2.1 的 $BW_{eff}$ 按工作集是否驻留 L2 在两层间取值)。尾轮 $r$ 核的聚合带宽 = $r \times$ 单核份额 &lt; 满载聚合——尾轮搬移不加速,$r$ 个整块用 $r$ 核、每核 1 块,时延仍为一个整块搬移时间 $T_{load} = T_{MTE2}$。HBM 全局共享池模型的敏感性见 §八边界说明。</p>
<h3>2.5 首轮切分基准(近方形的严格推导与证明)</h3>
<p>首轮切分 $(mCnt, nCnt, sM, sN)$ 的确定是尾轮分析的前提。本节给出完整推导链:<b>问题 → 建模 → 证明 → 离散修正 → 结论</b></p>
<p><b>问题</b>$\text{Batch} &lt; C$ 时须切分 M/N 填满 C 核。选什么样的 $(sM, sN)$ 使端到端时延最小?</p>
<p><b>建模</b>:由 §2.1主导项中唯一随切分变化的是搬入MMAD/FIX 只依赖全量 Batch/M/N/K。单核搬入总量 = 每核块数 × 单块搬入量:</p>
<div class="math">$$
T_{MTE2}^{core} = \frac{B \cdot mCnt \cdot nCnt}{C} \cdot K(sM+sN) \cdot dtype
$$</div>
<p>代入 $mCnt = \lceil M/sM \rceil$、$nCnt = \lceil N/sN \rceil$(连续近似下取等号):</p>
<div class="math">$$
T_{MTE2}^{core} = \frac{B \cdot M \cdot N \cdot K \cdot dtype}{C} \cdot \Big(\frac{1}{sM} + \frac{1}{sN}\Big)
$$</div>
<p><b>目标函数</b>$\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$③搬移效率dValue、min_TileSize§2.3);④$sM, sN$ 为 16 倍数且为 BaseM/N 整数倍。</p>
<p><b>证明(两步)</b></p>
<p>*第一步:块数最少原则*。目标函数展开为 $\dfrac{B \cdot K \cdot dtype}{C} \cdot \big(mCnt \cdot N + nCnt \cdot M\big)$——块数越多($mCnt, nCnt$ 越大)搬入越多(重复读),故取<b>最少块数</b> $mCnt \cdot nCnt = P$(并行度下界取等)。此时单块面积固定:</p>
<div class="math">$$
sM \cdot sN = \frac{M \cdot N}{P} \triangleq A_0 \quad \text{(常数)}
$$</div>
<p>*第二步:面积固定 → 方形严格最优*。目标函数改写为周长形式:</p>
<div class="math">$$
\frac{1}{sM} + \frac{1}{sN} = \frac{sM + sN}{sM \cdot sN} = \frac{sM + sN}{A_0}
$$</div>
<p>面积 $A_0$ 固定时最小化周长 $sM + sN$。由均值不等式(或等周不等式——矩形面积固定时周长最小当且仅当方形):</p>
<div class="math">$$
sM + sN \ge 2\sqrt{sM \cdot sN} = 2\sqrt{A_0}, \qquad \text{等号} \iff sM = sN
$$</div>
<p><b>严格成立</b>——无任何近似。物理本质输出是面积、输入搬运是周长A 行带 $sM \times K$ + B 列带 $K \times sN$),方形使"边界/面积比"最小,即单位输出的输入搬运最少。</p>
<p><b>离散修正</b>(连续最优 → 工程可行):</p>
<ol class="tight">
<li><b>整数与对齐</b>$sM = sN = \sqrt{A_0}$ 一般非 16 倍数,且 $mCnt = M/sM$ 须整数——在连续方形附近枚举满足约束 ④ 的整除组合,取目标函数最小者(枚举才是最终裁决者,方形是其连续极限的解析刻画);</li>
<li><b>dValue 非对称</b>B 非转置时 $sN \cdot dtype \ge 256$B 卡 $sN$ 下限A 的 dValue 由 $k_{L1}$ 保证、不卡 $sM$)——极端长宽比时方形可能违反,取满足 dValue 的最近组合;</li>
<li>**$\text{Batch} \ge C$P=1退化**:不切分,$sM = M, sN = N$——tile 跟随 M/N此时"方形"无意义,零重复读优先)。</li>
</ol>
<p><b>对前一版本表述的更正</b>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$——<b>形状敏感性在两个 regime 下统一存在,方形恒为连续最优</b>$k_{L1}$ 只通过 dValue/min_TileSize 约束§2.3)影响可行性,不影响目标函数的排序。</p>
<p><b>小结</b></p>
<ol class="tight">
<li>首轮切分目标:$\min (1/sM + 1/sN)$(搬入时延最小化,唯一随切分变化的主导项);</li>
<li>最少块数原则:$mCnt \cdot nCnt = P = \lceil C/\text{Batch} \rceil$$\text{Batch} \ge C$ 时不切分);</li>
<li><b>方形严格最优</b>(均值不等式,面积固定时周长最小)——离散修正仅来自 16 对齐/整数分解/dValue 非对称,由枚举裁决;</li>
<li>方形结论不依赖任何 regime 假设——$K$ 作为公共因子不进排序。</li>
</ol>
<p>*枚举目标修正v1.5*:上文约束 1$mCnt \cdot nCnt \ge P$,填满 C 核)是"核必须填满"的启发式;严格目标应为**全局枚举 min $w \times T_{block}$**$w = \lceil \text{Batch} \cdot mCnt \cdot nCnt / C \rceil$)——允许核不满载(如 88%)换取块数跨过轮次边界($w$ 跳降。例Batch=7、M=1280、N=256$(5,1)$35 块、$w=2$、$T=335.6\mu s$)满足约束 1 但非全局最优;$(4,1)$28 块、$w=1$、核利用 88%、$T=188.7\mu s$)跨边界更优——约束 1 排除了 $(4,1)$$4 &lt; P=5$),是启发式的局限。**周长型主导下($T_{block}$ 随 tile 增大而增)跨边界收益显著;面积型主导下 $w$ 不变时 $T_{block}$ 不变,跨边界无额外收益**。</p>
<hr>
<h2>三、四种策略定义与实现方式</h2>
<h3>3.1 策略定义</h3>
<table><tr><th>策略</th><th>做法</th><th>块大小</th></tr>
<tr><td><b>A0不重切</b></td><td>尾轮 $r$ 核各处理 1 个整块,$C-r$ 核空转</td><td>主轮尾轮同大小</td></tr>
<tr><td><b>A1a尾轮整数倍切分</b></td><td>尾轮每块沿 N或 M切 $s^*$ 份,$r \cdot s^*$ 个小块分给 C 核</td><td>主轮整块 + 尾轮 $1/s^*$ 小块</td></tr>
<tr><td><b>A1b尾轮 tile 重选凑满核</b></td><td>尾轮 $r$ 个原块覆盖的区域(面积 $r \cdot sM \cdot sN$)用更小 tile $(sM_t, sN_t)$ 重新切分,凑满 C 核</td><td>主轮整块 + 尾轮小 tile</td></tr>
<tr><td><b>方案 B整轮均匀重切</b></td><td>总块数向上取整到 $N_{blk}' = n_{wave} \cdot C$,全局重新枚举 tile 使每轮每核恰好一个同样大小的块</td><td>全部块同大小</td></tr></table>
<p><b>实现方式对比</b></p>
<table><tr><th>策略</th><th>host 侧 tiling</th><th>kernel 侧执行</th><th>tile 参数套数</th></tr>
<tr><td>A0</td><td>一套参数</td><td>线性映射 <code>index = blockIdx + round × usedCoreNum</code>,尾轮不满载核跳过</td><td>1</td></tr>
<tr><td>A1a</td><td>主参数 + 尾轮切分参数($s^*$</td><td>最后一轮切换小块尺寸</td><td>2</td></tr>
<tr><td>A1b</td><td>主参数 + 尾轮 tile$sM_t, sN_t$</td><td>尾轮区域独立子网格映射</td><td>2</td></tr>
<tr><td>方案 B</td><td>一套重切后参数</td><td>全程统一 tile无尾轮分支</td><td>1</td></tr></table>
<p><b>对齐约束的平等性</b>16 对齐是 Cube 计算粒度16×16×16 基本块)的硬件要求,<b>四种策略的 tile——无论重切前后——都必须是 16 的倍数</b>无一例外。差异只在枚举空间A1b 对尾轮子区域、方案 B 对全局)与 tile 套数。</p>
<h3>3.2 A1b 的 tile 确定与 A1a ⊆ A1b 证明</h3>
<p>A1b 的理想 tile方形同步缩小</p>
<div class="math">$$
s_t^* = sM \cdot \sqrt{\frac{r}{C}} \quad (sM = sN \text{ 时})
$$</div>
<p>再按 16 对齐调整,使重切块数 $\lceil r \cdot sM \cdot sN / (sM_t \cdot sN_t) \rceil \le C$;也允许非方形枚举($(sM_t, sN_t)$ 独立按 16 步进)选最贴合的组合。</p>
<p><b>A1a 是 A1b 的真子集</b>A1a 的尾轮 tile 为 $(sM, sN/s^*)$ 或 $(sM/s^*, sN)$$s^* \in \{2, \ldots, \lfloor C/r \rfloor\}$ 整数),恰为 A1b 枚举空间中 $sM_t = sM$、$sN_t = sN/s^*$ 的特定组合——其 16 对齐、dValue、块数约束在 A1b 枚举中同样检查。记 A1b 枚举空间为 $\Omega_{A1b}$A1a 解空间 $\Omega_{A1a} \subseteq \Omega_{A1b}$,枚举取最优:</p>
<div class="math">$$
T_{A1b} = \min_{\Omega_{A1b}} T \;\le\; \min_{\Omega_{A1a} \subseteq \Omega_{A1b}} T = T_{A1a}
$$</div>
<p><b>A1b 恒不劣于 A1a</b>且通常严格优A1a 受"$s^*$ 整数"与"每块切同样份数"双重限制($r &gt; C/2$ 时 $s^* = \lfloor C/r \rfloor = 1$ 完全失效A1b 允许非整数比例与凑满 C 核(无 $r \le C/2$ 限制)。下文 A1 一律指 A1bA1a 视为退化形态)。</p>
<h3>3.3 三策略通用时延式</h3>
<div class="math">$$
T_{A0} = n_{wave} \cdot T_{block},\qquad T_{A1} = (n_{wave}-1) \cdot T_{block} + T_{tail},\qquad T_B = n_{wave} \cdot T_{block}'
$$</div>
<p>A1a 时 $T_{tail} = T_{block}/s^*$(计算 BoundA1b 凑满 C 核时尾轮小块面积为 $\rho \cdot sM \cdot sN$,计算 Bound 下 $T_{tail}^{A1b} = \rho \cdot T_{block}$。</p>
<hr>
<h2>四、面积型主导完整推导($T_{MMAD}$ 或 $T_{FIX}$ 最大)</h2>
<p><b>本章适用条件</b>:主导项为面积型($\propto sM \cdot sN$——MMAD 主导($K \ge 304$ 且 tile 判据满足§2.1)或 FIX 主导($K &lt; 304$)。两子型缩放律相同(都 $\propto$ 面积),推导中以 $T_{MMAD}$ 为记号FIX 主导时将 $T_{MMAD}$ 替换为 $T_{FIX}$ 结论不变。<b>主流 prefill/decode case 均属本章范畴</b></p>
<h3>4.1 A0 vs A1</h3>
<p>A1a 可行时($r \le C/2$$\Delta_{A0 \to A1a} = T_{MMAD}(1 - 1/s^*)$。$r &gt; C/2$ 时 A1a 失效,但 A1b 不退化:</p>
<div class="math">$$
\Delta_{A0 \to A1b}^{calc} = T_{MMAD}\Big(1 - \frac{r}{C}\Big)
$$</div>
<p><b>A1 恒优于 A0</b>$r &gt; 0$A0 在计算 Bound 下永不最优。</p>
<h3>4.2 A0 vs B</h3>
<p>代入 $T_{block}' = T_{MMAD}/g$ 与 $n_{wave}/g = N_{blk}/C = n_{wave}-1+\rho$</p>
<div class="math">$$
\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
$$</div>
<p><b>方案 B 恒优于 A0</b>(可行性校验:搬移掩盖 $\sqrt{g} \le T_{MMAD}/T_{MTE2}$;分解对齐)。</p>
<h3>4.3 A1 vs B</h3>
<p>A1b 凑满核时 $T_{A1b} = T_{MMAD}(n_{wave} - 1 + \rho)$,与 $T_B = T_{MMAD}(n_{wave} - 1 + r/C)$ <b>理论时延严格相等</b>——两者都是"总计算量/C"(面积型主导项下时延与切分方式无关,只要轮轮满载)。</p>
<p>结构性差异在<b>搬入总量</b>。先交代符号v1.3 补充,避免误读):</p>
<ul class="tight">
<li>$s$<b>首轮方形 tile 的边长</b>$sM = sN = s$ 的基准,不是 $sM + sN$</li>
<li><b>周长和</b> $S \triangleq \sum_{\text{块}} (sM_{blk} + sN_{blk})$——所有块的周长之和。由 §2.1,单块搬入量 $= K(sM+sN) \cdot dtype$,故**总搬入量 $= K \cdot dtype \cdot S$**。同一 case 下 $K, dtype$ 是公共常数,**比较周长和 $S$ 即比较搬入总量**$K$ 作为公共因子约掉,故 $S$ 的表达式中不含 $K$——不是没有 $K$,而是 $K$ 被提出约掉了)。</li>
</ul>
<p>两策略的周长和:</p>
<p><b>A1b</b>:主轮 $(n_{wave}-1)C$ 块保持大 tile周长 $2s$+ 尾轮 C 块小 tile边长 $s\sqrt{\rho}$,周长 $2s\sqrt{\rho}$</p>
<div class="math">$$
S_{A1b} = 2sC\big(n_{wave} - 1\big) + 2s\sqrt{\rho} \cdot C = 2sC\big(n_{wave} - 1 + \sqrt{\rho}\big)
$$</div>
<p><b>方案 B</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$</p>
<div class="math">$$
S_B = n_{wave} C \cdot 2s_B = 2sC\sqrt{n_{wave}\Big(n_{wave} - 1 + \rho\Big)}
$$</div>
<p>比较(两边约去 $2sC$</p>
<div class="math">$$
\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
$$</div>
<p><b>均值不等式A1b 周长和恒 ≤ 方案 B</b>(等号当 $\rho = 1$ 即无尾轮)。搬入总量少意味着 L2 重复读少、周长型项的掩盖余量更大。</p>
<p><b>结论(面积型主导)</b>A1b 与方案 B 理论时延严格相等;离散 16 对齐后互有胜负数值依赖、无系统性优劣——对齐约束对两者平等A1b 搬入总量恒 ≤ 方案 B结构性<b>工程简洁选方案 B一套 tile追求搬移下限选 A1b。</b></p>
<h3>4.4 数值实例</h3>
<p>*例 1MMAD 主导,$r &gt; 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 面积型主导 ✓。</p>
<ul class="tight">
<li>A0$70.6\mu s$A1a$s^* = \lfloor 32/17 \rfloor = 1$ 失效;</li>
<li>A1b 非方形枚举 $(sM_t, sN_t) = (224, 160)$:尾轮 32 块恰好凑满,$T_{A1b} = 35.3 + 19.3 = 54.6\mu s$</li>
<li>方案 B$N_{blk}'=64=8\times8$、$sM'=sN'=224$$T_B = 54.1\mu s$。</li>
</ul>
<p>A1b 与方案 B 打平54.6 vs 54.1,差 &lt;1%,纯离散对齐的数值依赖)。<b>相对 A0 均省约 23%</b></p>
<p>*例 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$。<b>A1a = 方案 B</b>$1/s^* = r/C$),选 A1a搬移增量小</p>
<p>*例 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$——<b>FIX 面积型主导</b>$K=256 &lt; 304$)。</p>
<ul class="tight">
<li>A0$5.24\mu s$A1a$s^* = \min(8, 2) = 2$dValue$T_{A1a} = 2.62 + 2.62/2 = 3.93\mu s$</li>
<li>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$ <b>翻出为尾轮主导项</b>$&gt; T_{FIX,t} = 0.37\mu s$tile 缩小使周长/面积比上升,见 §7.2.4$T_{A1b} = 2.62 + 0.61 = 3.23\mu s$</li>
<li>方案 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$。</li>
</ul>
<p><b>翻出效应下方案 B 微优 8.5%</b>——$r$ 小时 A1b 的尾轮 tile 缩得太小、搬入翻出,方案 B 的全局 tile 缩得温和($1/\sqrt{g} = 0.75 &gt; \sqrt{\rho} = 0.35$)不翻出。</p>
<p>*例 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$ 主导。</p>
<ul class="tight">
<li>A0$7.86\mu s$</li>
<li>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$</li>
<li>方案 B$N_{blk}'=96$、分解 $(8,12)$$sM'=288, sN'=192$$T_{FIX}' = 2.21\mu s$$T_B = 6.64\mu s$。</li>
</ul>
<p><b>打平</b>6.71 vs 6.64,差 1%,离散对齐的数值依赖)——面积型主导且尾轮不翻出时 A1b 与方案 B 时延相等(总量守恒)的实证。</p>
<hr>
<h2>五、周长型主导完整推导($T_{MTE2}$ 最大)</h2>
<p><b>本章适用条件</b>:主导项为周长型 $T_{MTE2}$$\propto$ 周长 $(sM+sN)$)——小 tile$sM \cdot sN/(sM+sN) &lt; 93.5$L2 命中)或工作集超 L2 的 GM 直读($&lt; 304$)场景。主导项 $T_{block} = T_{load} = K(sM + sN) \cdot dtype / BW_{eff}$§2.1 修正后的 K 版;$K$ 在单 case 三策略比较中为公共因子,可约掉)。</p>
<h3>5.1 A0 vs A1</h3>
<p>A1a$r \le C/2$):尾轮沿 N 切 $s^*$ 份,小块搬移 $(sM + sN/s^*) k_{L1} dtype$**A 行带 $[sM, k_{L1}]$ 每个小块都要完整搬一次,不随 $s^*$ 缩小**——结构性弱点),方形下 $T_{tail} = T_{load}(1+1/s^*)/2$</p>
<div class="math">$$
\Delta_{A0 \to A1a}^{mem} = \frac{T_{load}}{2}\Big(1 - \frac{1}{s^*}\Big)
$$</div>
<p>受 dValue 硬约束 $s^* \le sN \cdot dtype/256\text{B}$BF16、sN=256 时 $s^* \le 2$)。</p>
<p>A1b任意 $r$):尾轮区域用 $s_t = s\sqrt{\rho}$ tile 重切凑满 C 核,尾轮总搬移 $= C \cdot 2s\sqrt{\rho} \cdot k_{L1}$C 核满载聚合带宽 $C \cdot BW_{pc}$</p>
<div class="math">$$
T_{tail}^{A1b} = \sqrt{\rho} \cdot T_{load},\qquad \Delta_{A0 \to A1b}^{mem} = T_{load}\big(1 - \sqrt{\rho}\big) > 0
$$</div>
<p><b>A1 恒优于 A0</b>dValue 允许时)。</p>
<h3>5.2 A0 vs B</h3>
<div class="math">$$
\Delta_{A0 \to B}^{mem} = n_{wave} T_{load}\Big(1 - \frac{1}{\sqrt{g}}\Big) > 0 \quad (g > 1)
$$</div>
<p><b>方案 B 恒优于 A0</b>dValue 约束 $g \le (sN \cdot dtype/256\text{B})^2$ 满足时)。物理解释:尾轮 $r$ 核聚合带宽仅 $r \cdot BW_{pc}$,搬移不加速;方案 B 让所有轮次满核满带宽。</p>
<h3>5.3 A1 vs B——完整分界推导</h3>
<p>**i无约束 regime$\rho \ge \rho_{dv}$A1b 可凑满)**:总时延正比于周长和(满载轮聚合带宽相同),由 §4.3 的均值不等式:</p>
<div class="math">$$
\frac{T_{A1b}^{mem}}{T_B^{mem}} = \frac{n_{wave} - 1 + \sqrt{\rho}}{\sqrt{n_{wave}(n_{wave}-1+\rho)}} \le 1
$$</div>
<p><b>A1b 恒不劣于方案 B</b>$\rho$ 小时优势大($\rho=0.1$、$n_{wave}=2$ 时优 11%)。</p>
<p><b>ii关键结构事实A1b 的 dValue 约束恒比方案 B 更严</b>。A1b 的尾轮 tile 缩放因子为 $\sqrt{\rho}$,方案 B 的全局 tile 缩放因子为 $1/\sqrt{g} = \sqrt{(n_{wave}-1+\rho)/n_{wave}}$</p>
<div class="math">$$
\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{ 恒成立}
$$</div>
<p><b>物理含义</b>A1b 只缩尾轮 $r$ 块的区域去凑满 C 核tile 必须缩得比方案 B 的全局缩放更狠——所以 A1b 的尾轮 tile 更早跌破 dValue 下限。<b>这是方案 B 可能反超的唯一通道</b></p>
<p><b>iii三区间判定</b>$\rho_{dv} = (256\text{B}/(sN \cdot dtype))^2$</p>
<table><tr><th>区间</th><th>条件</th><th>结论</th></tr>
<tr><td>I</td><td>$\rho \ge \rho_{dv}$A1b 凑满可行;此时 $1/g &gt; \rho \ge \rho_{dv}$ 故方案 B 也可行)</td><td><b>A1b 恒优</b>(均值不等式)</td></tr>
<tr><td>II</td><td>$\rho &lt; \rho_{dv} \le 1/g$A1b 卡死、方案 B 可行)</td><td>分界公式判定(下)</td></tr>
<tr><td>III</td><td>$\rho_{dv} &gt; 1/g &gt; \rho$(都卡死)</td><td>A0/A1a 兜底</td></tr></table>
<p>区间 II 中 A1b 退化为 $s_t = 256\text{B}/dtype$dValue 下限),尾轮块数 $= r/\rho_{dv} &lt; C$(凑不满),尾轮时延 $= \sqrt{\rho_{dv}} \cdot T_{load}$(小块搬移按 $s_t/sN = \sqrt{\rho_{dv}}$ 缩放):</p>
<div class="math">$$
T_{A1b}^{dv} = T_{load}\big(n_{wave} - 1 + \sqrt{\rho_{dv}}\big),\qquad T_B = \frac{n_{wave}}{\sqrt{g}} \cdot T_{load}
$$</div>
<p><b>方案 B 严格优当且仅当</b></p>
<div class="math">$$
\sqrt{\rho_{dv}} > n_{wave} \cdot \sqrt{\frac{n_{wave} - 1 + \rho}{n_{wave}}} - (n_{wave} - 1)
$$</div>
<p>物理解读A1b 卡死后尾轮时延被锁在 $\sqrt{\rho_{dv}} \cdot T_{load}$dValue 下限决定),不再随 $\rho$ 减小;而方案 B 的 $n_{wave}/\sqrt{g}$ 随 $\rho$ 减小而降低(全局重切幅度减小)。$\rho$ 足够小(卡死足够深)时方案 B 反超。</p>
<h3>5.4 数值实例</h3>
<p><b>访存 Bound 数值实例周长型主导v1.3 重新构造)</b></p>
<p>*例 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 &gt; 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$<b>周长型主导</b>tile 判据 $512^2/1024 = 256 &lt; 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$。</p>
<ul class="tight">
<li>A0$5 \times 83.9 = 419.5\mu s$</li>
<li>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$</li>
<li>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$<b>省 10%</b></li>
<li>方案 Bv1.5 广义化——允许尾轮核利用 ≥80%,去掉整除强约束):广义枚举 min $w \times T_{block}$,块数减少方向($(1,1)$/$(1,2)$)均违反 dValue$k_{L1}$ 跌破 128增加方向 $(2,3)$/$(4,4)$ 周长和增大——**最优 = $(2,2)$ 原切分419.4μs<b>(同 A0。相对 A1b377.5μs</b>损失 11.1%**v1.4 整除强约束的 88.9% 是不公平产物——强迫 $(4,4)$ 16 块/batch 使周长和 ×2</li>
</ul>
<p>*例 4周长型、Batch=7、广义方案 B 跨边界最优)*Batch=7、M=1280、N=256、K=8192、BF16。输入总量 $7 \times (1280 \times 8192 + 8192 \times 256) \times 2 = 176$MB &gt; L2 128MB → GM 直读周长型tile 判据 $128 &lt; 304$ ✓)。</p>
<p>广义枚举min $w \times T_{block}$§2.5 v1.5 修正):</p>
<table><tr><th>切分</th><th>$sM' \times sN'$</th><th>$N_{blk}$</th><th>$w$</th><th>核利用</th><th>$T_{block}$</th><th>总时延</th></tr>
<tr><td>$(5,1)$(旧 §2.5 最优)</td><td>$256 \times 256$</td><td>35</td><td>2</td><td>55%</td><td>167.8μs</td><td>335.6μs</td></tr>
<tr><td>**$(4,1)$(全局最优)**</td><td>$320 \times 256$</td><td>28</td><td><b>1</b></td><td>88%</td><td>188.7μs</td><td><b>188.7μs</b></td></tr>
<tr><td>$(3,1)$</td><td>$432 \times 256$</td><td>21</td><td>1</td><td>66%</td><td>225.4μs</td><td>225.4μs</td></tr>
<tr><td>$(2,2)$</td><td>$640 \times 128$</td><td>28</td><td>1</td><td>88%</td><td>251.7μs</td><td>251.7μs</td></tr></table>
<ul class="tight">
<li>A0首轮 $(5,1)$335.6μs</li>
<li>**广义方案 B首轮 $(4,1)$ 全局最优)**188.7μs——块数跨边界 $w: 2 \to 1$,比 A0 省 44%</li>
<li>A1b首轮 $(4,1)$ + 尾轮 28 块凑 32 核tile $(320,224)$$8192 \times 544 \times 2/50\text{G} = 178.3\mu s$。</li>
</ul>
<p><b>A1b 最优178.3μs广义方案 B188.7μs损失 5.9%</b>——公平对比(允许核利用 88%)下方案 B 的真实损失。v1.4 的"方案 B 最优 477.1μs、损失 89.6%"是整除强约束($\gcd(7,32)=1$ 强迫 $(16,2)$ 32 块/batch的不公平产物。</p>
<p><b>周长型场景的规律</b>:工作集超 L2 的 case 通常 Batch 大或形状大 → $N_{blk}$ 大 → $n_{wave}$ 大 → 尾轮占比小($\rho$ 小或 $w$ 大),损失/收益天然被稀释;广义方案 Bv1.5,允许尾轮核利用 ≥80%)在此类场景<b>退回原切分</b>(块数减少方向常违反 dValue<b>跨边界反超</b>(例 4$w: 2 \to 1$)——真实损失 5.9%~11.1%A1b 恒不劣,因枚举空间包含尾轮凑满)。</p>
<hr>
<h2>六、决策总表与基于 Batch/M/K/N 的判定流程</h2>
<h3>6.1 决策总表</h3>
<p>主导项判定§2.1 三维判据):<b>面积型主导</b> = $T_{MMAD}$ 或 $T_{FIX}$ 最大tile 判据 $\frac{sM \cdot sN}{sM+sN} \ge 93.5$L2 命中)且 MMAD/FIX 间由 $K \gtrless 304$ 分);<b>周长型主导</b> = $T_{MTE2}$ 最大(小 tile 或工作集超 L2 的 GM 直读)。</p>
<table><tr><th>场景</th><th>A0 vs A1</th><th>A0 vs 方案 B</th><th>A1 vs 方案 B</th><th>最优策略</th></tr>
<tr><td>面积型主导,$r \le C/2$ 且 $r \mid C$</td><td>A1a 优</td><td>方案 B 优</td><td>A1a = 方案 B选 A1a搬移少</td><td>A1a</td></tr>
<tr><td>面积型主导,$r \le C/2$ 且 $r \nmid C$</td><td>A1a 优</td><td>方案 B 优</td><td>方案 B 略优(取整损失)</td><td>A1a/方案 B 皆可</td></tr>
<tr><td>面积型主导,$r &gt; C/2$</td><td>A1b 优(不退化)</td><td>方案 B 优</td><td><b>时延严格相等</b>(总量守恒),离散打平</td><td>A1b 或方案 B工程简洁选方案 B搬移下限选 A1b</td></tr>
<tr><td>面积型主导 + $r$ 小($\rho &lt; (187/s)^2$,尾轮翻出)</td><td>A1b 优但尾轮翻出</td><td>方案 B 优</td><td>方案 B 微优(~6-8%,翻出效应 §7.2.4</td><td>方案 B</td></tr>
<tr><td>周长型主导,$\rho \ge \rho_{dv}$ 且方案 B 可行</td><td>A1b 优</td><td>方案 B 优</td><td><b>A1b 恒优</b>(均值不等式)</td><td>A1b</td></tr>
<tr><td>周长型主导,$\rho &lt; \rho_{dv}$ 且分界公式成立且方案 B 可行</td><td>A1b 部分凑满</td><td>方案 B 优</td><td><b>方案 B 严格优</b></td><td>方案 B</td></tr>
<tr><td>周长型主导,$\rho &lt; \rho_{dv}$ 且分界公式不成立</td><td>A1b 部分凑满</td><td>方案 B 优</td><td>打平</td><td>A1b/方案 B 皆可</td></tr>
<tr><td>周长型主导</td><td>A1b 优</td><td>广义方案 B 损失 5.9%~11.1%(枚举空间被 A1b 包含)</td><td>A1b</td><td>A1b</td></tr>
<tr><td>dValue 全面卡死A1b 也不可凑满)</td><td>A1a$s^* \ge 2$)或 A0</td><td>方案 B 整除代价更大</td><td></td><td>A1a/A0</td></tr></table>
<h3>6.2 基于 Batch/M/K/N/dtype 的直接判定流程</h3>
<p>五步闭式前置计算后查表即得最优策略,无需逐项建模仿真:</p>
<ol class="tight">
<li><b>首轮切分</b>:按 §2.5 搬入时延最小化枚举得 $mCnt, nCnt, sM, sN, k_{L1}$</li>
<li><b>尾轮参数</b>$N_{blk} = \text{Batch} \cdot mCnt \cdot nCnt$$n_{wave} = \lceil N_{blk}/C \rceil$$r = N_{blk} \bmod C$$\rho = r/C$</li>
<li><b>主导项判定</b>§2.1 三维判据):算 $T_{MMAD}, T_{MTE2}, T_{FIX}$ 取最大;注意 $BW_{eff}$ 依工作集是否超 L2 取 162.5GB/s命中或 50GB/sGM 直读);</li>
<li><b>dValue 可行性</b>$\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>广义方案 B 枚举</b>min $w' \times T_{block}'$(允许核利用 ≥80%,去掉整除强约束)——结果与 A1b 比较A1b 恒不劣);</li>
<li><b>单块主导项</b>$T_{block} = \max(T_{MMAD}, T_{MTE2}, T_{FIX})$。</li>
</ol>
<p><b>决策表</b></p>
<table><tr><th>#</th><th>条件</th><th>最优策略</th><th>端到端时延</th></tr>
<tr><td>1</td><td>$r = 0$</td><td>A0无尾轮</td><td>$n_{wave} \cdot T_{block}$</td></tr>
<tr><td>2</td><td>面积型主导,$0 &lt; r \le C/2$,无翻出</td><td>A1a$s^* = \lfloor C/r \rfloor$</td><td>$T_{block}(n_{wave} - 1 + 1/s^*)$</td></tr>
<tr><td>3</td><td>面积型主导,$r &gt; C/2$,无翻出</td><td>A1b 或方案 B——时延严格相等</td><td>$T_{block}(n_{wave} - 1 + \rho)$</td></tr>
<tr><td>4</td><td>面积型主导,$\rho &lt; (187/s)^2$(翻出)</td><td>方案 B翻出时 A1b 尾轮变周长型)</td><td>$T_{block} \cdot n_{wave}/g$(近似)</td></tr>
<tr><td>5</td><td>周长型主导,$\rho \ge \rho_{dv}$,方案 B 可行</td><td>A1b</td><td>$T_{load}(n_{wave} - 1 + \sqrt{\rho})$</td></tr>
<tr><td>6</td><td>周长型主导,$\rho &lt; \rho_{dv}$ 且 $\sqrt{\rho_{dv}} &gt; n_{wave}/\sqrt{g} - (n_{wave}-1)$ 且方案 B 可行</td><td>方案 B</td><td>$T_{load} \cdot n_{wave}/\sqrt{g}$</td></tr>
<tr><td>7</td><td>周长型主导,广义方案 B 损失 &gt; 0</td><td>A1b恒不劣于方案 B</td><td>广义枚举 min w×T_block</td></tr></table>
<p><b>判定流程图</b></p>
<pre><code>[Batch, M, K, N, dtype]
&lt;首轮枚举§2.5)→ mCnt, nCnt, sM, sN&gt;
&lt;N_blk, n_wave, r, ρ = r/C&gt;
├─ r = 0 ────────────────────▶ A0无尾轮
&lt;三维主导项判定§2.1&gt;
├─ 面积型MMAD 或 FIX 最大)
│ │
│ ├─ ρ &lt; (187/s)²(尾轮翻出)? ── 是 ─▶ 方案 B
│ │ 否 ── r ≤ C/2 ? ── 是 ─▶ A1as* = ⌊C/r⌋
│ │ 否 ─▶ A1b 或方案 B时延严格相等
│ │ (工程简洁选方案 B
└─ 周长型MTE2 最大)
├─ 广义方案 B 枚举min w×T_block核利用≥80%
│ 损失 &gt; 0A1b 恒不劣)─▶ A1b / A1a / A0
└─ 可行 ── ρρ_dv ? ── 是 ─▶ A1b周长和恒 ≤ 方案 B
└─ 否 ─▶ 分界公式判定:
ρ_dv &gt; n_wave/√g (n_wave1) ? ── 是 ─▶ 方案 B
└─ 否 ─▶ A1b/方案 B 打平</code></pre>
<hr>
<h2>七、方案 B 的简化形态 B1 与 B0/B1 相对 A1b 的损失分析</h2>
<p>前文方案 B整轮均匀重切与 A1b 的分界判定需要逐 case 计算 $\rho$、$\rho_{dv}$、分界公式——本节回答两个工程问题:①能否给方案 B 一个<b>无脑版门限</b>(满足条件就直接整数轮满核切,不做 A1b/方案 B 分界)?②若完全采用方案 B无论无脑版 B1 还是完整版 B0相对理论最优的 A1b 会损失多少、最大损失多少?</p>
<h3>7.1 B0 与 B1 的定义</h3>
<ul class="tight">
<li><b>B0完整版方案 B</b>:§三~§五的方案 B——与 A1b 做分界判定后选择(访存 Bound 且 $\rho \ge \rho_{dv}$ 时应选 A1b 而非方案 B</li>
<li><b>B1无脑版方案 B</b>:不做 A1b/方案 B 分界,只要门限满足就<b>直接按整数轮满核切</b>(无论计算 Bound 还是访存 Bound</li>
</ul>
<p><b>B1 门限推导</b>B1 要成立需两个条件——</p>
<p>*条件 1有尾轮*$r = N_{blk} \bmod C &gt; 0$(否则无尾轮可处理);</p>
<p>*条件 2可行 + 值得)*B0 恒优于 A0§4.2/§5.2 已证),故"可行即值得"。可行性只在访存 Bound 下受 dValue 约束($g \le g_{dv}$);计算 Bound 下无条件dValue 放宽为搬移掩盖,且 §4.3 已证方案 B 与 A1b 时延严格相等)。</p>
<p>合起来,<b>B1 的判定门限(闭式,仅依赖 Batch/M/K/N/dtype</b></p>
<div class="math">$$
\boxed{\; r > 0 \;\land\; \Big( K \ge K^* \;\lor\; g \le \Big(\frac{sN \cdot dtype}{256\text{B}}\Big)^2 \Big) \;}
$$</div>
<p>即:**计算 Bound 时无条件直接整数轮满核切;访存 Bound 时满足 dValue 门限($g \le g_{dv}$)就直接整数轮满核切**。门限的全部输入($r$、$g$、$K^*$、$sN$都来自首轮切分结果host 端一次计算即可。</p>
<h3>7.2 B0/B1 相对 A1b 的损失分析v1.3 按修正模型重写)</h3>
<p>B0/B1 相对 A1b 的"损失"定义为 $T_B/T_{A1b} - 1$(方案 B 更慢为正)。按 §2.1 的主导项缩放类型分两类讨论——**v1.3 修正模型($T_{MTE2}$ 用全量 K、三维主导项判定结论与 v1.2 有实质差异**。</p>
<h4>7.2.1 面积型主导:损失严格为 0总量守恒</h4>
<p>面积型主导项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$,与切分方式无关。轮轮满载时:</p>
<div class="math">$$
T = \frac{\text{主导项总量}}{C} = \frac{c \cdot \text{Batch} \cdot M \cdot N}{C}
$$</div>
<p>A1b主轮整块 + 尾轮凑满)与方案 B全局均匀重切都做到轮轮满载 → <b>时延严格相等,损失恒为 0</b></p>
<p>*证明*$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$)。<b>严格相等</b></p>
<p>离散 16 对齐后互有胜负(&lt;3%,数值依赖、无系统性方向)。<b>面积型主导下 B1 零损失</b>——这是 v1.3 相对 v1.2 最重要的修正v1.2 用 $k_{L1}$ 版错误模型把大量面积型 case 误标为"访存 Bound"并算出 5.4%~30% 的虚假损失)。</p>
<h4>7.2.2 周长型主导:损失公式的逐步推导</h4>
<p>周长型主导MTE2 最大:小 tile 或工作集超 L2 的 GM 直读)时,时延 $\propto$ 周长和。分四步:</p>
<p><b>第一步:两策略时延表达式</b>。A1b 主轮整块 + 尾轮 tile 缩 $\sqrt{\rho}$ 凑满 C 核:</p>
<div class="math">$$
T_{A1b} = (n_{wave}-1) \cdot T_{load} + \sqrt{\rho} \cdot T_{load} = T_{load}\big(n_{wave} - 1 + \sqrt{\rho}\big)
$$</div>
<p>方案 B$N_{blk}' = n_{wave} C$ 块均匀重切、单块搬移缩 $\sqrt{g}$ 倍($g = n_{wave} C/N_{blk}$</p>
<div class="math">$$
T_B = \frac{n_{wave}}{\sqrt{g}} \cdot T_{load}
$$</div>
<p><b>第二步:消元</b>。$N_{blk}/C = n_{wave}-1+\rho$ 代入 $1/\sqrt{g} = \sqrt{N_{blk}/(n_{wave} C)}$</p>
<div class="math">$$
T_B = T_{load}\sqrt{n_{wave}\big(n_{wave} - 1 + \rho\big)}
$$</div>
<p><b>第三步:作比</b></p>
<div class="math">$$
f(\rho, n_{wave}) \triangleq \frac{T_B}{T_{A1b}} = \frac{\sqrt{n_{wave}\big(n_{wave}-1+\rho\big)}}{n_{wave} - 1 + \sqrt{\rho}},\qquad \text{损失} = f - 1
$$</div>
<p><b>第四步:最大值定位</b>。$f$ 对 $\rho$ 单调减、对 $n_{wave}$ 单调减($\rho \to 1$ 或 $n_{wave} \to \infty$ 时 $f \to 1$),最大损失在 $\rho = \rho_{min} = \max(1/C, \rho_{dv})$、$n_{wave} = 2$ 处:</p>
<table><tr><th>$sN$BF16</th><th>$\rho_{dv}$</th><th>$f_{max}-1$(理论,方形近似)</th></tr>
<tr><td>256</td><td>0.25r=8</td><td><b>5.4%</b></td></tr>
<tr><td>512</td><td>0.0625r=2</td><td><b>16.6%</b></td></tr></table>
<p>数值核验($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$ ✓。</p>
<h4>7.2.3 理论公式的可靠性:三个近似与方案 B 的可行性约束</h4>
<p>损失公式建立在三个近似上,逐一审视:</p>
<p><b>1方形近似与非方形惩罚</b>。$N_{blk}'$ 的整数分解偏离方形比例时周长和上升,惩罚因子 $p(\lambda) = (\sqrt{\lambda} + 1/\sqrt{\lambda})/2 \ge 1$$\lambda$ 为分解长宽比)。修正后:</p>
<div class="math">$$
\frac{T_B}{T_{A1b}} = \frac{n_{wave} \cdot p_B / \sqrt{g}}{(n_{wave}-1) + \sqrt{\rho} \cdot p_t}
$$</div>
<p>非方形惩罚同时作用于 $p_B$(方案 B 全局分解)与 $p_t$A1b 尾轮分解)——<b>损失方向由均值不等式的结构保持</b>(两策略在同一基准形状上缩放),但<b>大小偏离理论值</b>$p_B &gt; p_t$ 时放大、$p_B &lt; p_t$ 时缩小甚至反超。理论值应视为<b>损失下界</b></p>
<p>**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}$ 版错误建模的残余,本版删除。</p>
<p><b>3方案 B 的整除冗余代价v1.5 重写——广义化方案 B取代 v1.4 的"整除满载"强约束)</b>。v1.4 要求方案 B 满足 $N_{blk}' \equiv 0 \pmod C$(每轮每核满载),这是<b>过强且不公平的约束</b>——真实方案 B 允许尾轮核利用率 &lt; 100%(如 ≥80%),只需所有分块统一重切为新 tile一套 SingleCoreM/SingleCoreN。广义化定义</p>
<p>*广义方案 B*:枚举所有可行 $(mCnt', nCnt')$16 对齐、dValue、覆盖统一重切 tile $(sM', sN')$<b>不要求整除满载</b>,允许尾轮核利用率 $\ge \eta_{min}$(如 80%)。最优性能:</p>
<div class="math">$$
T_B^* = \min_{(mCnt',\, nCnt')} \; w' \cdot T_{block}', \qquad w' = \left\lceil \frac{\text{Batch} \cdot mCnt' \cdot nCnt'}{C} \right\rceil
$$</div>
<p><b>广义方案 B ≡ 修正的首轮切分枚举</b>min $w \times T_{block}$ 全局枚举,允许核不满载跨轮次边界)——这正是 §2.5 枚举目标的正确形式(见 §2.5 末尾 v1.5 修正)。</p>
<p>*与 A1b 的关系*A1b = 首轮(修正枚举)+ 尾轮区域重切凑满核。A1b 的枚举空间 ⊇ 广义方案 BA1b 可退化为"全局统一 tile + 不凑满"),故 <b>A1b 恒不劣于广义方案 B</b>;差距 = 尾轮凑满的收益(尾轮 r 块区域重切更小 tile 多凑 $(C-r)$ 核)。</p>
<p>*三个实例的公平对比v1.5 重算)*</p>
<table><tr><th>Case</th><th>广义方案 B 最优</th><th>A1b</th><th>方案 B 损失</th></tr>
<tr><td>例 4Batch=7、互素</td><td>$(4,1)$ tile $(320,256)$、28 块、$w=1$、核利用 88%、<b>188.7μs</b></td><td>首轮 $(4,1)$ + 尾轮 28 块凑 32tile $(320,224)$)、<b>178.3μs</b></td><td><b>+5.9%</b></td></tr>
<tr><td>例 3Batch=34、gcd=2</td><td>$(2,2)$ tile $512^2$= 原切分,块数减少方向均违反 dValue、136 块、$w=5$、<b>419.4μs</b></td><td>377.5μs</td><td><b>+11.1%</b></td></tr>
<tr><td>decodeBatch=100、gcd=4</td><td>$(1,4)$ tile $(64,832)$= 原切分,$mCnt=1$ 锁死、块数减少方向违反 dValue、400 块、$w=13$、<b>73.4μs</b></td><td>70.8μs</td><td><b>+3.7%</b></td></tr></table>
<p>*例 4 的完整推导*Batch=7、M=1280、N=256、K=8192、GM 直读周长型广义枚举min $w \times T_{block}$)结果——</p>
<ul class="tight">
<li>$(5,1)$$N_{blk}=35$、$w=2$、$T=2 \times 167.8 = 335.6\mu s$(旧 §2.5 约束 1 的"最优"——填核启发式错过更优解);</li>
<li>**$(4,1)$$sM'=320$、$N_{blk}=28$、$w=1$、核利用 88%、$T = 1 \times 188.7 = 188.7\mu s$(全局最优——块数跨过轮次边界 $2 \to 1$**</li>
<li>$(3,1)$21 块、$w=1$、$T=225.4\mu s$tile 更大、周长和增);</li>
<li>$(2,2)$28 块、$w=1$、$T=251.7\mu s$(非方形惩罚)。</li>
</ul>
<p>广义方案 B 最优 $(4,1)$ = 188.7μs。A1b 首轮同为 $(4,1)$(修正枚举),尾轮 28 块($w=1$ 全为尾轮)重切 tile $(320, 224)$ 凑满 32 核($28 \times 256/224 = 32$ ✓):$T_{A1b} = 8192 \times 544 \times 2/50\text{G} = 178.3\mu s$。<b>A1b 优 5.9%——这是公平对比下方案 B 的真实损失,远小于 v1.4 整除强约束的 89.6%</b></p>
<p>*v1.4 的 89.6% 损失根源*:整除强约束($g=\gcd(7,32)=1$ → $mCnt' \cdot nCnt' \equiv 0 \pmod{32}$)迫使方案 B 用 $(16,2)$ 32 块/batch——这不是方案 B 的合理设计。广义化后方案 B 用 $(4,1)$ 28 块88% 核利用)→ 188.7μs接近 A1b。</p>
<p>*结论*:公平对比下(广义方案 B方案 B 损失 3.7%~11.1%(均劣于 A1b因 A1b 枚举空间更大、含尾轮凑满)。<b>方案 B 的价值不在时延最优,而在工程简洁(一套 tile、无尾轮分支</b>——损失 &lt;12% 换实现简化是合理的工程权衡。</p>
<h4>7.2.4 尾轮小块的主导项翻转(面积型场景的边界修正)</h4>
<p>面积型主导下 A1b 的尾轮 tile 缩到 $s_t = s\sqrt{\rho}$tile 缩小使周长/面积比上升,$s_t$ 跌破搬入临界($s_t \lesssim 187$L2 命中)时<b>尾轮小块的主导项从面积型翻转为周长型</b>(搬入翻出),尾轮时延高于面积型公式 $\rho \cdot T_{block}$。翻转条件:</p>
<div class="math">$$
s\sqrt{\rho} < 187 \iff \rho < \Big(\frac{187}{s}\Big)^2
$$</div>
<p>$s=256$ 时 $\rho &lt; 0.533$$r &lt; 17$)即翻出。此时 A1b 尾轮时延按周长型计算($T_{tail} = T_{load}(s_t)$),方案 B 的全局 tile $s/\sqrt{g}$ 缩得更温和($1/\sqrt{g} &gt; \sqrt{\rho}$ 恒成立)更不易翻出——**$r$ 小的面积型 case 中方案 B 可微优M=N=1536、K=256 的 FIX 主导 case方案 B 微优约 6%**。</p>
<h4>7.2.5 主流 prefill/decode 场景的实际损失</h4>
<p>大模型推理 BMM 典型形状prefill Batch∈[2,128]、M∈[4k,128k]、K/N∈[128,10240]decode Batch∈[2,128]、M∈[1,128]、K/N∈[128,10240]。</p>
<p>**1prefillM 大):面积型主导 + 大 $n_{wave}$ → 损失 0**</p>
<ul class="tight">
<li>$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**</li>
<li>$M$ 奇异seq_len 非 256 倍数,如 M=4224$N_{blk}$ 大、$n_{wave} \ge 9$ → 即使触发尾轮,面积型主导下 A1b 与方案 B 严格打平 → <b>损失 0</b></li>
<li>tile 判据:$sM=sN=256$、$sM \cdot sN/(sM+sN) = 128 &gt; 93.5$L2 命中临界)→ 搬入不主导K 任意时 MMAD$K \ge 304$)或 FIX$K &lt; 304$)主导——<b>恒面积型</b></li>
</ul>
<p>**2decodeM ≤ 128 小):周长型主导,广义方案 B 退回原切分($mCnt=1$ 锁死)→ A1b 主力**</p>
<ul class="tight">
<li>$M$ 小 → tile 面积小($sM = M$)→ tile 判据 $M \cdot sN/(M+sN)$ 小(如 M=64、sN=256$51.2 &lt; 93.5$)→ <b>周长型主导</b></li>
<li>$mCnt=1$ 固定 → 广义方案 B 只能沿 N 调整块数,块数减少方向($nCnt'&lt;4$)违反 dValue$k_{L1}$ 跌破 128<b>广义方案 B 退回原切分(= A0</b>Batch=100、M=64、N=3328方案 B 73.4μs vs A1b 70.8μs损失 3.7%§7.2.3 完整推导);</li>
<li>A1b 尾轮局部重切tile $(M, sN_t)$ 只缩 N 向)不受此限 → <b>decode 场景 A1b 为主力(恒不劣于广义方案 B</b></li>
<li>$w=1$$N_{blk} &lt; C$,如 Batch=8、N=512核填不满属降核/并行度不足场景,不在尾轮讨论范围。</li>
</ul>
<p><b>3主流场景损失结论</b></p>
<table><tr><th>场景</th><th>主导项类型</th><th>方案 B 可行性</th><th>B0/B1 相对 A1b 损失</th></tr>
<tr><td>prefill$M,N$ 为 256 倍数</td><td></td><td></td><td>**0$r=0$ 无尾轮)**</td></tr>
<tr><td>prefill$M$ 奇异</td><td>面积型</td><td>可行</td><td><b>0严格打平离散 &lt;3% 互有胜负)</b></td></tr>
<tr><td>decode$M \le 128$</td><td>周长型</td><td>广义方案 B 退回原切分</td><td>损失 ~3.7%</td></tr>
<tr><td>工作集超 L2 的大 Batch case</td><td>周长型</td><td>广义方案 B 退回原切分或跨边界</td><td>损失 5.9%~11.1%</td></tr>
<tr><td>周长型 + 方案 B 可行 + $\rho \ge \rho_{dv}$ + $n_{wave}=2$</td><td>周长型</td><td>可行</td><td><b>5.4%</b>$sN=256$/ 16.6%$sN=512$,理论下界)</td></tr>
<tr><td>面积型 + $r$ 小($\rho &lt; 0.53$</td><td>面积型(尾轮翻出周长型)</td><td>可行</td><td>≤ 0方案 B 微优 ~6%,翻出效应)</td></tr></table>
<p>**v1.2 的"~30% 极端例损失"是 $k_{L1}$ 错误模型的产物<b>——正确模型K 版 + 三维主导项下该例M=16896、N=512、K=140为 FIX 面积型主导A1b 与方案 B 打平(差异 &lt;1%)。</b>主流 prefill/decode case 中 B1 零损失(面积型)或按 gcd 评估整除代价(周长型,代价大时 A1b 承接——B1 在主流场景是安全的工程选择。**</p>
<h3>7.3 损失汇总与工程建议</h3>
<table><tr><th>场景修正模型K 版 $T_{MTE2}$ + 三维主导项)</th><th>B0/B1 相对 A1b 的损失</th><th>说明</th></tr>
<tr><td>面积型主导MMAD$K \ge 304$FIX$K &lt; 304$ 且 tile 大)</td><td><b>0</b>(严格打平,总量守恒)</td><td>主流 prefill/decode 均属此类;离散对齐 &lt;3% 互有胜负</td></tr>
<tr><td>面积型主导 + $r$ 小($\rho &lt; (187/s)^2$,尾轮翻出)</td><td>≤ 0方案 B 微优 ~6-8%</td><td>翻出效应§7.2.4A1b 尾轮 tile 太小</td></tr>
<tr><td>周长型主导MTE2方案 B 可行,$\rho \ge \rho_{dv}$$n_{wave}=2$</td><td><b>5.4%</b>$sN=256$/ 16.6%$sN=512$,理论下界)</td><td>$f(\rho)-1$ 公式;实际 case 罕见</td></tr>
<tr><td>周长型主导</td><td>广义方案 B 损失 5.9%~11.1%(恒劣于 A1b枚举空间被包含</td><td>v1.5 公平对比</td></tr>
<tr><td>周长型主导,$\rho &lt; \rho_{dv}$A1b dValue 卡死)且方案 B 可行</td><td>≤ 0方案 B 反超)或打平</td><td>分界公式 §5.3(iii)</td></tr>
<tr><td>主流 prefill/decode case</td><td><b>0 ~ 2.5%</b></td><td>§7.2.5</td></tr></table>
<p><b>工程建议</b>v1.3 刷新):</p>
<ol class="tight">
<li><b>B1无脑整数轮满核切在主流场景是安全的</b>:面积型主导下与 A1b 时延严格相等零损失prefill 大 M/N 场景 $r=0$ 居多256 倍数);</li>
<li><b>decode 小 M / 大 Batch 超 L2 场景广义方案 B 退回原切分</b>dValue 边界块数不可减——A1b 恒不劣于广义方案 B枚举空间包含方案 B 价值在工程简洁(一套 tile损失 &lt;12% 换实现简化;</li>
<li>**周长型 + 方案 B 可行 + $n_{wave}=2$ + $\rho=\rho_{dv}$ 的边角 case**损失理论 5.4%~16.6%(下界),此类 case 应落到 A1b 或按 §5.3 分界公式精确判定B0</li>
<li>v1.2 的"~30% 极端例损失"是 $k_{L1}$ 错误模型产物,修正模型下该例打平(&lt;1%)——<b>不存在 30% 量级的真实损失场景</b></li>
<li>B1 门限闭式§7.1host 端零成本。</li>
</ol>
<h2>八、边界说明</h2>
<ol class="tight">
<li><b>带宽模型敏感性</b>:访存 Bound 结论依赖"每核 MTE2 带宽上限 $BW_{pc}$"假设。若 HBM 为全局共享池(尾轮 $r$ 核可吃满 $W_{GM}$A0 尾轮搬移时延已是 $\rho \cdot T_{load}$ 接近理想A1b/方案 B 的搬移增量无带宽补偿,结论反转。昇腾 950PR 的 MTE2 为每核独立 DMA 引擎、带宽按核数配平,采用固定份额结论;临界 case 建议实测复核。</li>
<li><b>A1b 的工程代价</b>:需两套 tile 参数(主轮大 tile + 尾轮小 tile与尾轮区域的边界处理$r$ 个原块的并一般为 L 形按矩形分解重切host 端多一次枚举NPU 侧 kernel 需支持尾轮 tile 尺寸切换。这些复杂度不改变时延结论,但影响实现成本。</li>
<li><b>方形基准的适用条件</b>§2.5 已述——K 全载时方形严格最优、L1 主导时仅面积相关。非方形分解的实际收益由同一目标函数评估,例 5 的非方形惩罚即此体现。</li>
<li>**Batch 不整除 $N_{blk}'$**$\text{Batch} \nmid N_{blk}'$ 时按 batch 分组切分、部分 batch 多一块,收益略降,判定不变。</li>
</ol>
<hr>
<h2>参考文献</h2>
<ol class="tight">
<li>[昇腾 950 NPU 架构白皮书](https://public-download.obs.cn-east-2.myhuaweicloud.com/ascend/%E6%98%87%E8%85%BE950%20NPU%E6%9E%B6%E6%9E%84%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf)华为技术有限公司2026</li>
<li>[cann-ops-nn 源码仓BatchMatMulV3](https://gitcode.com/cann/ops-nn/tree/master/matmul/batch_mat_mul_v3)kernel 侧尾轮线性映射见 <code>op_kernel/arch35/batch_mat_mul_v3_asw_block_advanced.h</code><code>UpdateBasicIndex</code><code>index = newBlockIdx + roundIdx × usedCoreNum</code><code>if (index &lt; totalCnt)</code> 跳过空转核——即本文的策略 A0</li>
</ol>
</div>
</body>
</html>