v0.9: 同步HTML
This commit is contained in:
@@ -238,40 +238,48 @@ $$</div>
|
||||
<ol class="tight">
|
||||
<li><b>并行缺口</b>:P 以"L0C 满载的输出基本块"为粒度估计不切 K 的最大并行度——基本块按 L0C 最大利用率取($M^t N^t \cdot 4\text{B} = L0C$),免去预先估计 M/N 具体切分。<b>阈值取 C/2 而非 C</b>:StreamK 的定义就是 grid_K ≥ 2(至少 2 路切 K),且同一 batch 内所有输出块共享同一个 grid_K;grid_K=2 时每块需要 2 个核,总核数需求 = P × 2 ≤ C,即 P ≤ C/2。若 C/2 ≤ P < C,切 2 路就超核数(2P > C),不切又浪费一半核——这个区间由降核 ASW_Basic 承接更合适。P < C/2 才意味着不切 K 时连一半核都填不满,K 是唯一剩余的并行维度。</li>
|
||||
<li><b>单核 K 段下限</b>:每核 K 段内轴连续长度不小于 dValue 推荐值 256B(BF16 为 128 元素),保证段内搬移效率不崩。</li>
|
||||
<li><b>归约代价可接受</b>。StreamK 切 K 引入归约串行尾,收益判据——切 K 后总时延须小于不切 K(降核 ASW):</li>
|
||||
<li><b>归约代价可接受</b>。StreamK 切 K 引入归约串行尾,收益判据——切 K 后芯片级总时延须小于不切 K(降核 ASW)。</li>
|
||||
</ol>
|
||||
<div class="math">$$T_{SK} = \frac{T_{pipe}}{grid_K} + T_{Reduce} < T_{pipe} \;\Longleftrightarrow\; T_{Reduce} < T_{pipe}\left(1-\frac{1}{grid_K}\right)$$</div>
|
||||
<p>$T_{pipe}=\max(T_{MTE2},\,T_{MMAD})$ 为不切 K 时单输出块的流水瓶颈。等价于 $T_{pipe} > \dfrac{grid_K}{grid_K-1}\cdot T_{Reduce}$——安全系数 α = grid_K/(grid_K-1) 由流水分析导出(grid_K=2 时 α=2),非经验值。</p>
|
||||
<p>**$T_{Reduce}$ 构成**(每输出块,部分和驻留 L2、AIV 归约;符号定义见 §二):</p>
|
||||
<div class="math">$$
|
||||
T_{Reduce} = \underbrace{\frac{grid_K \cdot MN \cdot 4\text{B}}{W_{L2}}}_{\text{AIC 写部分和}} + \underbrace{\frac{grid_K \cdot MN \cdot 4\text{B}}{W_{L2}}}_{\text{AIV 读回}} + \underbrace{\frac{grid_K \cdot MN}{Q_{AIV}}}_{\text{AIV 求和}} + \underbrace{\frac{MN \cdot outB}{W_{L2}}}_{\text{写回}}
|
||||
$$</div>
|
||||
<p><b>K 闭式阈值推导</b>——分两种瓶颈情形:</p>
|
||||
<p><b>计算 Bound</b>($T_{pipe} = T_{MMAD} = \dfrac{2MNK}{Q_{16}}$),代入判据:</p>
|
||||
<div class="math">$$
|
||||
\frac{2MNK}{Q_{16}}\cdot\frac{grid_K-1}{grid_K} > grid_K \cdot MN\Big(\frac{8\text{B}}{W_{L2}}+\frac{1}{Q_{AIV}}\Big) + \frac{MN\cdot outB}{W_{L2}}
|
||||
$$</div>
|
||||
<p>两边除以 MN、解 K(末项 $\theta_c' \approx 3$ 相对 $\theta_c$ 仅 12%,略去):</p>
|
||||
<div class="math">$$
|
||||
K > \frac{grid_K^2}{grid_K-1}\cdot\theta_c,\qquad
|
||||
\theta_c = \frac{Q_{16}}{2}\Big(\frac{8\text{B}}{W_{L2}}+\frac{1}{Q_{AIV}}\Big)
|
||||
$$</div>
|
||||
<p>代入数值($Q_{16}$=15.2 TFLOPS,$W_{L2}$=5.2 TB/s,$Q_{AIV}$≈13.5 Tops/s):</p>
|
||||
<div class="math">$$
|
||||
\theta_c = \frac{15.2\times10^{12}}{2}\Big(\underbrace{\frac{8}{5.2\times10^{12}}}_{1.54\,\text{ps/元素}} + \underbrace{\frac{1}{13.5\times10^{12}}}_{0.07\,\text{ps/元素}}\Big) = 7.6\times10^{12} \times 1.61\times10^{-12} \approx 12
|
||||
$$</div>
|
||||
<p>L2 读写(1.54 ps/元素)是主导项,AIV 求和(0.07)仅占 5%。grid_K=2→K>49;4→K>66;8→K>112。</p>
|
||||
<p><b>访存 Bound</b>($T_{pipe} = T_{MTE2} = \dfrac{K(M+N)\cdot\text{dtype}}{BW_{pc}}$,$BW_{pc}=W_{GM}/C$ 为单核 GM 带宽份额),同理:</p>
|
||||
<div class="math">$$
|
||||
K > \frac{grid_K^2}{grid_K-1}\cdot\frac{MN}{M+N}\cdot\theta_m,\qquad
|
||||
\theta_m = \frac{BW_{pc}}{\text{dtype}}\Big(\frac{8\text{B}}{W_{L2}}+\frac{1}{Q_{AIV}}\Big) \approx 0.04
|
||||
$$</div>
|
||||
<p><b>访存 Bound 阈值远低于计算 Bound</b>——两情形阈值比值:</p>
|
||||
<div class="math">$$
|
||||
\frac{\theta_m \cdot MN/(M+N)}{\theta_c} = \frac{2\cdot BW_{pc}}{Q_{16}\cdot\text{dtype}}\cdot\frac{MN}{M+N} = \frac{MN/(M+N)}{152}
|
||||
$$</div>
|
||||
<p>StreamK case 的 M、N 小(P<C/2),MN/(M+N) ~ O(10) → 比值 ≪ 1。直觉:访存 Bound 时 $T_{pipe} = T_{MTE2} > T_{MMAD}$,瓶颈时延更大,给归约留出的预算更充裕。<b>汇总条件取计算 Bound 阈值</b>(保守,同时覆盖两种情形)。</p>
|
||||
<p>注意 θ_c 对 workspace 落点敏感:部分和落 GM 时读写带宽从 5.2TB/s 降到 ~0.64TB/s,θ_c 升至约 97。设计时应优先保证 workspace 驻留 L2。</p>
|
||||
<p> <b>降核 ASW 的芯片级→核级映射</b>:P < C/2 时 B×M×N 填不满 C 核,以 L0C 满载粒度切为 P 个输出 tile(每 tile 尺寸 $M^t N^t = L0C/4\text{B}$),$\lceil P \rceil$ 个核各处理一个 tile。芯片级总时延 $T_{alt}$ = 单 tile 流水时延 $T_{pipe}$(所有核并行)。$T_{pipe} = \max(T_{MMAD}^t,\,T_{MTE2}^t)$,其中:</p>
|
||||
<div class="math"> $$
|
||||
T_{MMAD}^t = \frac{2 M^t N^t K}{Q_{16}} = \frac{2K}{Q_{16}}\cdot\frac{L0C}{4\text{B}},\qquad
|
||||
T_{MTE2}^t = \frac{K(M^t+N^t)\cdot\text{dtype}}{BW_{pc}}
|
||||
$$</div>
|
||||
<p> <b>StreamK 的芯片级→核级映射</b>:同样 P 个 tile,每 tile 由 $grid_K$ 个核共同完成(各算 $K/grid_K$ 段)。流水时延 $T_{pipe}/grid_K$,归约时延 $T_{Reduce}^t$ 串行追加。芯片级总时延:</p>
|
||||
<div class="math"> $$
|
||||
T_{SK} = \frac{T_{pipe}}{grid_K} + T_{Reduce}^t
|
||||
$$</div>
|
||||
<p> <b>收益判据</b> $T_{SK} < T_{alt}$ ⟺ $T_{Reduce}^t < T_{pipe}\left(1-\dfrac{1}{grid_K}\right)$。等价于 $T_{pipe} > \dfrac{grid_K}{grid_K-1}\cdot T_{Reduce}^t$——α = grid_K/(grid_K-1) 由流水分析导出(grid_K=2 时 α=2),非经验值。</p>
|
||||
<p> **$T_{Reduce}^t$ 构成**(每 tile,部分和驻留 L2、AIV 归约;$M^t N^t = L0C/4\text{B}$,符号定义见 §二):</p>
|
||||
<div class="math"> $$
|
||||
T_{Reduce}^t = \underbrace{\frac{grid_K \cdot M^t N^t \cdot 4\text{B}}{W_{L2}}}_{\text{AIC 写部分和}} + \underbrace{\frac{grid_K \cdot M^t N^t \cdot 4\text{B}}{W_{L2}}}_{\text{AIV 读回}} + \underbrace{\frac{grid_K \cdot M^t N^t}{Q_{AIV}}}_{\text{AIV 求和}} + \underbrace{\frac{M^t N^t \cdot outB}{W_{L2}}}_{\text{写回}}
|
||||
$$</div>
|
||||
<p> <b>K 闭式阈值推导</b>——分两种瓶颈情形:</p>
|
||||
<p> <b>计算 Bound</b>($T_{pipe} = T_{MMAD}^t$),代入判据:</p>
|
||||
<div class="math"> $$
|
||||
\frac{2K}{Q_{16}}\cdot\frac{L0C}{4\text{B}}\cdot\frac{grid_K-1}{grid_K} > grid_K\cdot\frac{L0C}{4\text{B}}\Big(\frac{8\text{B}}{W_{L2}}+\frac{1}{Q_{AIV}}\Big) + \frac{L0C}{4\text{B}}\cdot\frac{outB}{W_{L2}}
|
||||
$$</div>
|
||||
<p> 两边除以 $L0C/4\text{B}$(tile 输出元素数),<b>tile 尺寸消去</b>——K 阈值不依赖 M、N 的具体值:</p>
|
||||
<div class="math"> $$
|
||||
K > \frac{grid_K^2}{grid_K-1}\cdot\theta_c,\qquad
|
||||
\theta_c = \frac{Q_{16}}{2}\Big(\frac{8\text{B}}{W_{L2}}+\frac{1}{Q_{AIV}}\Big)
|
||||
$$</div>
|
||||
<p> 代入数值($Q_{16}$=15.2 TFLOPS,$W_{L2}$=5.2 TB/s,$Q_{AIV}$≈13.5 Tops/s):</p>
|
||||
<div class="math"> $$
|
||||
\theta_c = \frac{15.2\times10^{12}}{2}\Big(\underbrace{\frac{8}{5.2\times10^{12}}}_{1.54\,\text{ps/元素}} + \underbrace{\frac{1}{13.5\times10^{12}}}_{0.07\,\text{ps/元素}}\Big) = 7.6\times10^{12} \times 1.61\times10^{-12} \approx 12
|
||||
$$</div>
|
||||
<p> L2 读写(1.54 ps/元素)是主导项,AIV 求和(0.07)仅占 5%。grid_K=2→K>49;4→K>66;8→K>112。</p>
|
||||
<p> <b>访存 Bound</b>($T_{pipe} = T_{MTE2}^t$),同理($M^t N^t/(M^t+N^t)$ 不消去,但阈值远低于计算 Bound):</p>
|
||||
<div class="math"> $$
|
||||
K > \frac{grid_K^2}{grid_K-1}\cdot\frac{M^t N^t}{M^t+N^t}\cdot\theta_m,\qquad
|
||||
\theta_m = \frac{BW_{pc}}{\text{dtype}}\Big(\frac{8\text{B}}{W_{L2}}+\frac{1}{Q_{AIV}}\Big) \approx 0.04
|
||||
$$</div>
|
||||
<p> <b>访存 Bound 阈值远低于计算 Bound</b>——两情形阈值比值:</p>
|
||||
<div class="math"> $$
|
||||
\frac{\theta_m \cdot M^t N^t/(M^t+N^t)}{\theta_c} = \frac{2\cdot BW_{pc}}{Q_{16}\cdot\text{dtype}}\cdot\frac{M^t N^t}{M^t+N^t} = \frac{M^t N^t/(M^t+N^t)}{152}
|
||||
$$</div>
|
||||
<p> StreamK case 的 tile 尺寸 $M^t N^t/(M^t+N^t)$ ~ O(100) → 比值 ≪ 1。直觉:访存 Bound 时 $T_{pipe} = T_{MTE2}^t > T_{MMAD}^t$,瓶颈时延更大,归约预算更充裕。<b>汇总条件取计算 Bound 阈值</b>(保守,同时覆盖两种情形)。</p>
|
||||
<p> 注意 θ_c 对 workspace 落点敏感:部分和落 GM 时读写带宽从 5.2TB/s 降到 ~0.64TB/s,θ_c 升至约 97。设计时应优先保证 workspace 驻留 L2。</p>
|
||||
<ol class="tight">
|
||||
<li><b>工程约束</b>:归约顺序不定引入浮点非确定性,确定性等级 2/3 的业务禁用。</li>
|
||||
</ol>
|
||||
|
||||
Reference in New Issue
Block a user