mcpField
N
nemo-mbridge-perf-moe-hardware-configs

nemo-mbridge-perf-moe-hardware-configs

github.com/promptingcompany开发039 次安装17 周前更新
代码仓库

关于 nemo-mbridge-perf-moe-hardware-configs

这份硬件配置参考资料介绍如何在 H100、B200、GB200 和 GB300 上调优 NeMo Megatron Bridge 的 MoE 训练,按工作负载和平台整理代表性调度器、并行布局、精度选择及调优注意事项。

主要功能

  1. 01按平台整理 MoE 配置指南
  2. 02代表性模型配置
  3. 03调度器与并行布局
  4. 04重计算与精度建议
  5. 05性能范围及调优注意事项

适用场景

  1. 01为硬件平台选择初始配置
  2. 02比较不同工作负载的 MoE 布局
  3. 03查看显存和通信调优选项

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/promptingcompany/nv-skills --skill nemo-mbridge-perf-moe-hardware-configs

安装后在 Claude Code 中输入/nemo-mbridge-perf-moe-hardware-configs确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BENCHMARK.md
card.yaml
skill-card.md
skill.oms.sig
evals/
evals.json

详细介绍

MoE 硬件配置参考

稳定版文档:@docs/training/moe-optimization.md 卡片:@skills/nemo-mbridge-perf-moe-hardware-configs/card.yaml

快速平台指南

平台典型 MoE 策略通常最重要的因素
H100DeepEP + 更强的 PP + 适度的 TP通信重叠和 PP 效率
B200DeepEP + MXFP8 + 谨慎规划 PP 布局容器质量和经过调优的通信设置
GB200HybridEP + 部分 CUDA 图 + CPU 清理主机开销、感知拓扑的分发、内存余量
GB300HybridEP + 更新的 FP8 和内核栈与 GB200 相同的方案,通常性能上限更高

首次回答检查清单

对于硬件方案问题,应先依据以下规范行回答,再补充吞吐量方面的注意事项:

工作负载硬件分发器布局
DSV3H100DeepEPTP=2, EP=64, PP=8, VPP=4
DSV3GB200/GB300HybridEPTP=1, EP=64, PP=4, VPP=4
Qwen3 235BH100DeepEPTP=2, EP=32, PP=8, VPP=4
Qwen3 235BGB200HybridEPTP=1 或 2, EP=32-64, PP=4, VPP=unspecified

对于 GB200 上的 Qwen3 235B,请明确说明 VPP=unspecified;除非有实测行提供依据,否则不要臆造或外推 VPP=12。请包含 TE 范围内的 CUDA 图作用域(attn、moe_router、moe_preprocess)、CUDA_DEVICE_MAX_CONNECTIONS 的选择、PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True、NCCL_GRAPH_REGISTER=0、GB200/GB300 的 CPU 侧调优,以及不要盲目照搬 tracker 行的警告。

取整后的性能区间

这些数值经过刻意取整,以便文档在 tracker 更新时仍保持稳定。请将其视为规划范围,而非精确承诺。

工作负载系列硬件典型区间代表性配置
DSV3,大规模H100每 GPU 低至中数百 TFLOPS,MFU 接近 20%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 235BH100每 GPU 低 300 多 TFLOPS,MFU 约 30%TP2, EP32, PP8, DeepEP
Qwen3 235BGB200调优运行时每 GPU 高数百 TFLOPSTP1 或 TP2, EP32-64, PP4, HybridEP
Qwen3 30BH100每 GPU 低 200 多 TFLOPSTP1, EP8, PP1, DeepEP
Qwen3-Next 80BGB200BF16 级运行时每 GPU 低 300 多 TFLOPSTP1, EP32, PP2, HybridEP

代表性配置系列

H100 上的 DSV3
Dispatcher: DeepEP
TP=2  EP=64  PP=8  VPP=4
Routing: force balance
Recompute: light-to-moderate selective recompute
Priority: overlap communication and keep PP efficient
B200 上的 DSV3
Dispatcher: DeepEP
TP=1  EP=32  PP=8  VPP=2 or similar
Precision: MXFP8-class
Recompute: selective recompute around MLA up-projection and MLP-side modules
Priority: container quality, PP layout, and DeepEP SMS tuning
GB200 或 GB300 上的 DSV3
Dispatcher: HybridEP
TP=1  EP=64  PP=4  VPP=4
Precision: MXFP8-class
CUDA Graph: attn + moe_router + moe_preprocess
Priority: HybridEP, CPU optimization, and graph-friendly static shapes
H100 上的 Qwen3 235B
Dispatcher: DeepEP
TP=2  EP=32  PP=8  VPP=4
Recompute: norm and activation-side selective recompute
Priority: communication overlap and router-path cleanup
GB200 上的 Qwen3 235B
Dispatcher: HybridEP
TP=1 or 2  EP=32 to 64  PP=4  VPP=unspecified unless measured
CUDA Graph: attn + moe_router + moe_preprocess
Recompute: moe_act, mlp, or norm depending on memory pressure
Priority: balance throughput against memory headroom
GB200 上的 Qwen3-Next 80B
Dispatcher: HybridEP
TP=1  EP=32  PP=2  VPP around 4
CUDA Graph: attn + moe_router + moe_preprocess
Priority: pipeline layout and grouped GEMM quality

跨平台模式

PP 布局
  • E = 嵌入层
  • t = Transformer
  • m = MTP
  • L = 损失
  • | = 阶段边界

平台之间最大的差异通常不只是分发器,还在于分发器、PP 形状的组合,以及 VPP 是否能让各阶段保持均衡。

重计算策略
内存压力起始方案
低不重计算,或只选择范围很窄的模块
中等moe_act、mlp、norm 或类似的选择性模块
高特定于模型的上投影,加上选择性的 MoE 和 MLP 模块
极高或长上下文仅当选择性方案仍无法满足需求时,才使用完全重计算
环境变量
CUDA_DEVICE_MAX_CONNECTIONS=1
CUDA_DEVICE_MAX_CONNECTIONS=32   # common when EP overlap and CUDA graphs are combined
PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
NCCL_GRAPH_REGISTER=0
CPU 侧调优

在 GB200 和 GB300 上,CPU 亲和性和常规的主机开销清理,其影响可能不亚于更换分发器。应将其视为首要调优工作,而非事后才考虑的事项。

注意事项

  1. 不要盲目照搬跟踪器中的某一行配置:最佳配置通常不仅取决于硬件名称,还取决于路由模式、容器和 PP 布局。

  2. 容器质量很重要:性能大幅下降可能源于软件栈,而非模型配方。

  3. VPP 必须经过审慎规划:不合理的 VPP 划分可能抵消更好的调度器带来的收益。

  4. 比较绝对吞吐量,而不只是 MFU:在 BF16、FP8 和其他精度模式之间切换时,MFU 可能会造成误导。

  5. 强制均衡路由是更稳妥的基准测试默认选项:比较硬件或调度器栈时,应保持路由模式不变。

评论

支持 Markdown