| 符号 | 含义 | 取值范围 / 单位 | 备注 |
|---|---|---|---|
| $B$ | Batch size(当前解码轮参与的请求数) | 正整数 | 原义是指 Global BS;这里指每个 DP 实例拿到的 B |
| $Q$ | 本轮每个请求新增 token 数(q_len) | 正整数 | |
| $D$ | 数据并行(DP)实例数 | 正整数 | |
| $K$ | MoE gating 的 Top‑K | 1…$E$ | |
| $E$ | 总专家数(per 模型) | 正整数 | |
| num_groups | 本卡 GroupGEMM 中被激活专家组数 | 0…本卡专家数 | 取 $\min(\text{本卡专家数}, \text{本轮有效子批次数})$ |
| $m[i]$ | 第 $i$ 个激活专家的子 batch 大小 | 非负整数 | GroupGEMM 每组的 M 维 |
| $T_{\text{total}}$ | 本轮产生的新 token 总数 | $B\times Q$ |
在多节点的 Prefill‑Decode(PD)分离部署中,开启DP_MoE选项后,专家会分布到多个数据并行(Data Parallel, DP)实例上。于是每个专家拿到的 token 数量,会随这几个变量变化:批处理大小 $B$、数据并行数 $D$、单轮新增 token 数 $Q$、以及 Top‑K $K$。我们聚焦 GroupGEMM 算子,它的两个关键入参 num_groups 与 $m[i]$ 同时受上述因素影响。为了最大化解码阶段效率,需要一套“可计算、可验证”的跨层映射与经验指引。
为避免符号混杂,按三层语义展开:引擎配置层 → MoE 路由层 → GroupGEMM 算子层;随后给出跨层映射与推论。
$$T_{text{node}}
= {Btimes Q}tag{1}$$
$$T_{text{expert,node}} approx T_{text{node}}cdot K
= {Btimes Qtimes K}tag{2}$$
$$m_{max} lesssim alpha,frac{T_{text{expert,node}}}{E_{text{node}}}