| 名称 | nemo-mbridge-perf-moe-hardware-configs |
| 描述 | 按硬件和模型系列划分的、具有代表性的即时MoE训练配置方案。将这些方案作为候选种子,然后重新验证确切的运行时、语义、拓扑和稳态吞吐量。 |
| 开源协议 | Apache-2.0 when_to_use: 特定硬件的MoE配置方案或吞吐量估算;‘MoE on H100’, ‘GB200 config’, ‘expected throughput’, ‘MoE hardware playbook’, ‘parallelism for B200’。 |
MoE硬件配置参考
稳定文档:@docs/training/moe-optimization.md 卡片:@skills/nemo-mbridge-perf-moe-hardware-configs/card.yaml
快速平台操作手册
这些行是搜索种子,不是硬件默认值或吞吐量承诺。
| 平台 | alltoall 启动后需要筛查的候选方案 |
通常最关键的因素 |
|---|---|---|
| H100 | DeepEP或HybridEP、显式重叠、支持的FP8模式 | 通信重叠、分发器/运行时兼容性和PP效率 |
| B200 | DeepEP或HybridEP、支持的FP8模式、谨慎的PP布局 | 容器质量和调优后的通信设置 |
| GB200 | HybridEP,然后是基于profile的图和CPU清理 | 主机开销、拓扑感知分发、内存余量 |
| GB300 | HybridEP及目标容器的低精度/内核栈 | 与GB200相同的系统交互,需要重新测量 |
首选答案检查清单
对于硬件配置问题,在添加吞吐量注意事项之前,先从这些规范行中寻找答案:
| 工作负载 | 硬件 | 分发器 | 布局 |
|---|---|---|---|
| DSV3 | H100 | DeepEP | TP=2, EP=64, PP=8, VPP=4 |
| DSV3 | GB200/GB300 | HybridEP | TP=1, EP=64, PP=4, VPP=4 |
| Qwen3 235B | H100 | 当前规范配方中的alltoall + 重叠 |
TP=2, EP=32, PP=8, VPP=4 |
| Qwen3 235B | GB200 | HybridEP | TP=1或2, EP=32-64, PP=4, VPP=未指定 |
| Qwen3 30B | 16×H100 | HybridEP | TP=1, EP=16, PP=1, 普通EP重叠 |
对于GB200上的Qwen3 235B,明确说明VPP=unspecified;除非有测量行提供,否则不要发明或推断VPP=12。将TE作用域的CUDA图范围(attn、moe_router、moe_preprocess)视为基于profile的候选方案,注意CUDA_DEVICE_MAX_CONNECTIONS的选择、PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True、NCCL_GRAPH_REGISTER=0、GB200/GB300的CPU端调优,以及不要盲目照搬跟踪器行的警告。
近似性能区间
这些数值有意取整,使文档在跟踪器更新时仍保持持久有效。请将其视为规划范围,而非确切承诺。
| 工作负载系列 | 硬件 | 典型区间 | 代表性形状 |
|---|---|---|---|
| DSV3 大规模 | H100 | 每GPU数百低至中段TFLOPS,MFU十几高段 | TP2, EP64, PP8, DeepEP |
| DSV3 大规模 | B200 | 每GPU数百高段TFLOPS,MFU中十几 | TP1, EP32, PP8, DeepEP |
| DSV3 大规模 | GB200 | 每GPU约1K TFLOPS,MFU低20多 | TP1, EP64, PP4, HybridEP |
| DSV3 大规模 | GB300 | 高于GB200区间,MFU通常中20多 | TP1, EP64, PP4, HybridEP |
| Qwen3 235B | H100 | 历史快照低300多;重新测量当前配方 | TP2, EP32, PP8;当前配方使用alltoall+重叠 |
| Qwen3 235B | GB200 | 调优运行中每GPU数百高段TFLOPS | TP1或TP2, EP32-64, PP4, HybridEP |
| Qwen3 30B | H100 | 在验证过的16-GPU形状上约300 TFLOPS/GPU | TP1, EP16, PP1, HybridEP + EP重叠 |
| Qwen3-Next 80B | GB200 | BF16类运行中每GPU低300多TFLOPS | TP1, EP32, PP2, HybridEP |
代表性配置系列
H100上的DSV3
分发器: DeepEP
TP=2 EP=64 PP=8 VPP=4
路由: 强制均衡
重计算: 轻度至中度的选择性重计算
优先级: 重叠通信并保持PP高效
B200上的DSV3
分发器: DeepEP
TP=1 EP=32 PP=8 VPP=2或类似
精度: MXFP8类
重计算: 在MLA上投影和MLP侧模块周围进行选择性重计算
优先级: 容器质量、PP布局和DeepEP SMS调优
GB200或GB300上的DSV3
分发器: HybridEP
TP=1 EP=64 PP=4 VPP=4
精度: MXFP8类
CUDA图: attn + moe_router + moe_preprocess
优先级: HybridEP、CPU优化和友好的静态图形
H100上的Qwen3 235B
分发器: 当前规范配方中使用alltoall;在目标栈上重新筛选flex后端
TP=2 EP=32 PP=8 VPP=4
重计算: 当前规范配方中无
优先级: 通信重叠和路由路径清理
GB200上的Qwen3 235B
分发器: HybridEP
TP=1或2 EP=32到64 PP=4 VPP=未指定,除非已测量
CUDA图: attn + moe_router + moe_preprocess
重计算: 根据内存压力选择moe_act、mlp或norm
优先级: 在吞吐量和内存余量之间取得平衡
16块H100上的Qwen3 30B-A3B
分发器: HybridEP
TP=1 EP=16 PP=1 CP=1
精度: BF16
序列长度: 4096
批次: MBS1 GBS1024
路由: 强制均衡
EP重叠: 启用
延迟wgrad: 禁用
CUDA图: moe_router + moe_preprocess
HybridEP: 置换融合, 32个SM, 64-token合并块
测量结果: 20.14729秒/步, 迭代41-50上299.352模型TFLOPS/GPU
Rank-0峰值分配内存: 62.166 GiB
当前数字是最终多旋钮规范配方的结果。早期匹配的A/B测试分离了普通EP重叠:244.039到287.305 TFLOPS/GPU,被GEMM/attention隐藏的通信从0.11%增加到36.55%。不要将后来的299.352结果完全归因于重叠。
GB200上的Qwen3-Next 80B
分发器: HybridEP
TP=1 EP=32 PP=2 VPP约为4
CUDA图: attn + moe_router + moe_preprocess
优先级: 流水线布局和分组GEMM质量
跨领域模式
PP布局
E= 嵌入t= 变换器m= MTPL= 损失|= 阶段边界
最大的平台差异通常不仅仅在于分发器,而是分发器、PP形状以及VPP是否保持每个阶段均衡的组合。
重计算策略
| 内存压力 | 起点 |
|---|---|
| 低 | 无或非常窄的选择集 |
| 中等 | moe_act、mlp、norm或类似的选择性模块 |
| 高 | 模型特定的上投影加上选择性的MoE和MLP模块 |
| 极高或长上下文 | 仅当选择性路径仍无法满足时才完全重计算 |
环境变量
CUDA_DEVICE_MAX_CONNECTIONS=1
CUDA_DEVICE_MAX_CONNECTIONS=32 # 当EP重叠和CUDA图结合时常见
PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
NCCL_GRAPH_REGISTER=0
CPU端调优
在GB200和GB300上,CPU亲和性和一般的主机开销清理对性能的影响几乎与更换分发器一样大。将它们视为一流调优工作,而不是事后考虑。
注意事项
-
不要盲目照搬跟踪器行:成功的配置通常取决于路由模式、容器和PP布局,与硬件名称同样重要。
-
容器质量很重要:大的性能回退可能来自软件栈,而不是模型配方。
-
VPP必须有意识设计:糟糕的VPP切分可能会抹掉更好分发器带来的收益。
-
要比较绝对吞吐量,而不仅仅是MFU:在BF16、FP8和其他精度模式之间切换时,MFU可能会误导。
-
强制均衡路由仅用于基准测试:它可以控制路由方差,但会改变语义。在A/B测试中保持路由固定,并单独验证自然路由以用于训练验收。
-
不要将分发器表视为硬性平台规则:对于规范的16×H100 Qwen3 30B形状,HybridEP是经过验证的赢家,而当前的256×H100 Qwen3 235B配方使用
alltoall。在生产容器中基准测试后端兼容性和吞吐量。 -
将筛选、因果分析和验收分开:短运行拒绝弱候选,匹配的单变量A/B解释机制,50步最终运行验证完整的赢家。
最后签名刷新:2026-08-03。