nemo-mbridge-perf-moe-hardware-configs について
H100、B200、GB200、GB300でNeMo Megatron BridgeのMoE学習を調整するためのハードウェア構成リファレンスです。ワークロードとプラットフォーム別に、代表的なディスパッチャーや並列化構成、精度設定、調整時の注意点をまとめています。
主な機能
- 01プラットフォーム別MoEガイド
- 02代表的なモデル構成
- 03ディスパッチャーと並列化レイアウト
- 04再計算と精度の指針
- 05性能帯と調整時の注意点
活用シーン
- 01ハードウェア向けの初期構成選び
- 02ワークロード別MoEレイアウトの比較
- 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.mdcard.yamlskill-card.mdskill.oms.sigevals/evals.json詳細
MoE ハードウェア構成リファレンス
安定版ドキュメント:@docs/training/moe-optimization.md カード:@skills/nemo-mbridge-perf-moe-hardware-configs/card.yaml
プラットフォーム別クイックプレイブック
| プラットフォーム | 典型的な MoE 戦略 | 通常、最も重要な点 |
|---|---|---|
| H100 | DeepEP + 強めの PP + 中程度の TP | 通信のオーバーラップと PP 効率 |
| B200 | DeepEP + MXFP8 + 慎重な PP レイアウト | コンテナの品質と調整済みの通信設定 |
| GB200 | HybridEP + 部分的な CUDA グラフ + CPU の調整 | ホストオーバーヘッド、トポロジーを考慮したディスパッチ、メモリの余裕 |
| GB300 | HybridEP + 新しい FP8 とカーネルスタック | 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 | DeepEP | TP=2、EP=32、PP=8、VPP=4 |
| Qwen3 235B | GB200 | HybridEP | TP=1 または 2、EP=32-64、PP=4、VPP=未指定 |
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 側の調整、およびトラッカーの行を盲目的に踏襲しないよう
警告を含めてください。
端数を丸めた性能帯
トラッカーの更新に伴っても文書の有用性が保たれるよう、意図的に端数を丸めています。 厳密な保証ではなく、計画用の範囲として扱ってください。
| ワークロードの種類 | ハードウェア | 典型的な範囲 | 代表的な構成 |
|---|---|---|---|
| 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 | GPU あたり低い 300 TFLOPS 台、MFU は約 30% | TP2、EP32、PP8、DeepEP |
| Qwen3 235B | GB200 | 調整済みの実行では GPU あたり数百 TFLOPS の高い範囲 | TP1 または TP2、EP32-64、PP4、HybridEP |
| Qwen3 30B | H100 | GPU あたり低い 200 TFLOPS 台 | TP1、EP8、PP1、DeepEP |
| Qwen3-Next 80B | GB200 | BF16 クラスの実行で GPU あたり低い 300 TFLOPS 台 | TP1、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= トランスフォーマーm= MTPL= 損失|= ステージ境界
プラットフォーム間で最も大きく異なるのは、通常、ディスパッチャーだけではありません。 ディスパッチャー、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 アフィニティーや一般的なホストオーバーヘッドの削減によって、 ディスパッチャーの切り替えと同じくらい性能が向上することがあります。後回しにせず、 優先度の高い調整作業として扱ってください。
落とし穴
-
トラッカーの行をそのまま流用しないでください:最適な構成は通常、ハードウェア名だけでなく、ルーティングモード、コンテナ、PP のレイアウトにも左右されます。
-
コンテナの品質は重要です:大幅な性能低下は、モデルのレシピではなくソフトウェアスタックが原因である場合があります。
-
VPP は意図を持って設定してください:VPP の分割が不適切だと、優れたディスパッチャーによる改善が帳消しになることがあります。
-
MFU だけでなく、絶対スループットを比較してください:BF16、FP8、その他の精度モードを切り替える場合、MFU は誤解を招くことがあります。
-
ベンチマークでは、Force-balance ルーティングがより安全なデフォルト設定です:ハードウェアやディスパッチャースタックを比較する際は、ルーティングモードを固定してください。