v0.96: 同步HTML

This commit is contained in:
2026-08-26 12:19:29 +00:00
parent 1326cd8ec2
commit 29a3e029b0

View File

@@ -361,6 +361,30 @@ $$</div>
</ul>
<p>max 取更严格的 8192。修正后的归约阈值θ_c≈12grid_K=32 时 K&gt;396远低于 8192说明 <b>8192 的绑定约束是 dValue条件 2不是归约代价条件 3</b>。源码不动态计算 grid_K用固定阈值同时覆盖条件 2 的最保守情形和条件 3是两条条件的保守合并近似。</p>
<h3>实现方案</h3>
<p><b>核间组织</b>:先按 B/M/N 切出输出块,剩余核预算折成 K 向份数:</p>
<div class="math">$$
blocksPerBatch = \Big\lfloor \frac{C}{B} \Big\rfloor,\qquad
grid_K = \frac{blocksPerBatch}{mCnt \cdot nCnt}
$$</div>
<p>mCnt、nCnt 收拢为 blocksPerBatch 的因子(避免碎核尾块);由条件 1 知 $mCnt \cdot nCnt \le blocksPerBatch/2$,故 $grid_K \ge 2$。归约组内核 c 负责 K 段 $[cK/grid_K,\; (c{+}1)K/grid_K)$。</p>
<p><b>核内流水</b>:对自己的 K 段做标准分块流水MTE2→L1→L0→mmad段内多轮在 L0C 原地累加;段完部分和经 Fixpipe 写出。</p>
<p><b>归约</b>$grid_K$ 个核的部分和经归约Fixpipe 模式或 AIV求和为最终结果。</p>
<hr>
<h2>八、ASW_Basic 分支</h2>
<p>ASW_Basic 是 BMM 的<b>兜底分支</b>——核间切 M/N或混合切不做 batch 合并或 K 维切分。它是实践中最常命中的分支B 可大可小可等 1交叉广播也由此承接。</p>
<h3>进入分支条件(汇总)</h3>
<ol class="tight">
<li>$P = \dfrac{B \cdot MN \cdot 4\text{B}}{L0C} \ge C$(并行度补齐)</li>
<li>无 batch 结构限制BatchA=BatchB、交叉广播均可典型进入路径$B &lt; C$(切 B 买不满核),或 $B \ge C$ 但 IterBatch/MergeBatch 条件不满足时的兜底</li>
<li><b>降核模式</b>$P &lt; C$ 且不满足 StreamK 进入条件 → 只用 $\lceil P \rceil$ 个核,其余核闲置</li>
</ol>
<h3>逐条解释</h3>
<ol class="tight">
<li><b>并行度补齐</b>:以 L0C 满载为基本块粒度B×M×N 能切出至少 C 个独立输出块,则切 M/N或混合切并行度够用。切 M/N 的固有代价是共享矩阵被多核重复读,但共享部分驻留 128MB L2 时重复读以 5.2TB/s 命中 L2 而非 1.6TB/s 的 GM代价大部分被吸收。</li>
<li><b>兜底性质</b>ASW_Basic 是实践中最常命中的分支——B 可大可小可等 1交叉广播也由此承接对广播侧做 L1/L2 驻留,共享关系与切 M/N 同构)。</li>
<li><b>降核模式</b>P &lt; C 且 K 也不够格走 StreamK 时,并行度凑不满核。此时与其强行把 M/N 切得更碎tile 跌破 min_TileSize、dValue 跌破 128B搬移效率崩塌反而更慢不如<b>只用 ⌈P⌉ 个核</b>、每核承担一个完整输出块L0C 满载粒度),其余核闲置。这类 case 的时延绝对值小,继续切分引入的调度与搬移效率损失大于并行收益——降核是理性选择而非偷懒。</li>
</ol>
<h3>实现方案</h3>
<p><b>Step 0BaseM / BaseN 的确定</b>L0 级 tile先把 L0C 用满)</p>
<p>L0C 是 Cube 的累加器BaseM × BaseN 是每次 Cube 计算的输出 tile。BaseM/N 应<b>尽量把 L0C 用满</b>——L0C 利用率越高,每次 Cube 计算的输出越大,单位计算的启动/排空开销摊得越薄:</p>
<div class="math">$$