v0.92: 同步HTML

This commit is contained in:
2026-08-25 07:58:03 +00:00
parent cf617a3a4f
commit 2795ad2062

View File

@@ -156,14 +156,22 @@ $$</div>
<tr><td>$T_{bd}$</td><td>batch 边界固定开销</td><td>fixpipe 启动握手(详见下文物理成因)</td></tr>
<tr><td>$BW_{pc}$</td><td>单核 GM 带宽份额</td><td>$W_{GM}/C$</td></tr></table>
<p> *端到端时延模型*对每核执行过程建模。稳态流水unitflag 交叠 batch 间 drain/startup加上 batch 边界固定开销 $T_{bd}$(每边界一次):</p>
<div class="math"> $$T_{iter} = \underbrace{b_{core} \cdot n_K \cdot \max(T_{load},\, T_{comp})}_{\text{稳态流水}} + \underbrace{T_{comp} + T_{write}}_{\text{末 batch drain}} + \underbrace{b_{core} \cdot T_{bd}}_{\text{边界开销}}$$</div>
<div class="math"> $$T_{mb} = \underbrace{b_{core} \cdot n_K \cdot \max(T_{load},\, b_0 T_{comp})}_{\text{稳态流水}} + \underbrace{b_0(T_{comp} + T_{write})}_{\text{末合并 batch drain}} + \underbrace{\frac{b_{core}}{b_0} \cdot T_{bd}}_{\text{边界开销}}$$</div>
<div class="math"> $$
T_{iter} = \underbrace{b_{core} \cdot n_K \cdot \max(T_{load},\, T_{comp})}_{\text{稳态流水}} + \underbrace{T_{comp} + T_{write}}_{\text{末 batch drain}} + \underbrace{b_{core} \cdot T_{bd}}_{\text{边界开销}}
$$</div>
<div class="math"> $$
T_{mb} = \underbrace{b_{core} \cdot n_K \cdot \max(T_{load},\, b_0 T_{comp})}_{\text{稳态流水}} + \underbrace{b_0(T_{comp} + T_{write})}_{\text{末合并 batch drain}} + \underbrace{\frac{b_{core}}{b_0} \cdot T_{bd}}_{\text{边界开销}}
$$</div>
<p> 其中 MergeBatch 合并后 $k_{L1}^m = \min(K,\; k_{L1}/b_0)$——L1 绑定($k_{L1}&lt;K$)时 $k_{L1}^m = k_{L1}/b_0$K 截断($k_{L1}=K$)时 $k_{L1}^m = K$ 不减半。以 L1 绑定为例。</p>
<p> 条件 5 保证合并后仍访存 Bound$T_{load} &gt; b_0 T_{comp}$),两式相减:</p>
<div class="math"> $$\Delta = T_{mb} - T_{iter} = \underbrace{(b_0-1)(T_{comp} + T_{write})}_{\text{drain 惩罚}} - \underbrace{b_{core}\Big(1-\frac{1}{b_0}\Big) T_{bd}}_{\text{边界节省}}$$</div>
<div class="math"> $$
\Delta = T_{mb} - T_{iter} = \underbrace{(b_0-1)(T_{comp} + T_{write})}_{\text{drain 惩罚}} - \underbrace{b_{core}\Big(1-\frac{1}{b_0}\Big) T_{bd}}_{\text{边界节省}}
$$</div>
<p> <b>分界条件</b>MergeBatch 优于 IterBatch 当且仅当 $\Delta &lt; 0$</p>
<div class="math"> $$b_{core} > \frac{b_0 \cdot \text{penalty}}{T_{bd}},\qquad
\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}$$</div>
<div class="math"> $$
b_{core} > \frac{b_0 \cdot \text{penalty}}{T_{bd}},\qquad
\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}
$$</div>
<p> penalty 两种情形的含义drain 暴露 = 末合并batch 最后一个 K 分块的计算时延 + 输出写回时延——这部分没有下一块搬移可交叠,是流水线的 drain 尾部。</p>
<ul class="tight">
<li><b>L1 绑定</b>$k_{L1} &lt; K$L1 容量限制了 K 分块粒度MergeBatch 合并后 tile 更大 → $k_{L1}$ 减半 → 每分块计算量 $b_0$ 倍 → drain 惩罚 $= (b_0-1)(T_{comp}+T_{write})$</li>