nemo-mbridge-perf-moe-hardware-configs について
H100、B200、GB200、GB300 向けの MoE 学習構成候補、性能の目安、調整時の注意点をまとめたリファレンススキルです。NeMo/MBridge の性能調整を対象とし、構成の流用ではなく対象環境での測定を重視します。
主な機能
- 01ハードウェア別の dispatcher 候補
- 02モデルとハードウェアの構成例
- 03計画用の性能レンジ
- 04並列レイアウトと再計算の指針
- 05調整時の注意点と検証方法
活用シーン
- 01MoE ハードウェア構成候補の選定
- 02DSV3 や Qwen3 の学習レイアウト計画
- 03dispatcher と通信オーバーラップ案の比較
- 04単一変数の A/B テスト設計
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nvidia/ 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
プラットフォーム別クイックガイド
以下の行は検索の手がかりであり、ハードウェアのデフォルト設定やスループットの保証値ではありません。
| プラットフォーム | alltoall の初期設定後に検証する候補 | 通常、最も重要な要素 |
|---|---|---|
| H100 | DeepEP または HybridEP、明示的なオーバーラップ、サポートされている FP8 モード | 通信のオーバーラップ、ディスパッチャーとランタイムの互換性、PP の効率 |
| B200 | DeepEP または HybridEP、サポートされている FP8 モード、慎重な PP レイアウト | コンテナの品質と調整済みの通信設定 |
| GB200 | HybridEP、その後にプロファイルに基づいたグラフ設定と 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=未指定 と明記してください。測定済みの行に記載がない限り、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 は 10%台後半 | TP2, EP64, PP8, DeepEP |
| DSV3、大規模 | B200 | GPU あたり数百 TFLOPS の高い範囲、MFU は 10%台半ば | 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 TFLOPS 台前半。現行レシピを再測定してください | TP2, EP32, PP8。現行レシピでは alltoall + オーバーラップを使用 |
| Qwen3 235B | GB200 | 調整済みの実行では GPU あたり数百 TFLOPS の高い範囲 | TP1 または TP2, EP32-64, PP4, HybridEP |
| Qwen3 30B | H100 | 検証済みの 16 GPU 構成で GPU あたり約 300 TFLOPS | TP1, EP16, PP1, HybridEP + EP オーバーラップ |
| 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: alltoall in the current canonical recipe; re-screen flex backends on the target stack
TP=2 EP=32 PP=8 VPP=4
Recompute: none in the current canonical recipe
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
16 基の H100 上の Qwen3 30B-A3B
Dispatcher: HybridEP
TP=1 EP=16 PP=1 CP=1
Precision: BF16
Sequence: 4096
Batch: MBS1 GBS1024
Routing: force balance
EP overlap: enabled
Delayed wgrad: disabled
CUDA Graph: moe_router + moe_preprocess
HybridEP: permute fusion, 32 SMs, 64-token combine chunks
Measured: 20.14729s/step, 299.352 model TFLOPS/GPU over iterations 41-50
Rank-0 peak allocated memory: 62.166 GiB
現在の数値は、複数のノブを調整した正規レシピの最終結果です。それ以前の条件をそろえた A/B テストでは、通常の EP オーバーラップのみを分離して検証し、244.039 から 287.305 TFLOPS/GPU へ向上しました。また、GEMM/アテンションによって隠された通信の割合は 0.11% から 36.55% に増加しました。後の 299.352 という結果を、すべてオーバーラップの効果として説明しないでください。
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 は誤解を招くことがあります。
-
強制バランスルーティングはベンチマーク専用です:ルーティングのばらつきを抑えられますが、セマンティクスが変わります。A/B テストではルーティングを固定し、学習の採用判断にあたっては自然なルーティングを別途検証してください。
-
ディスパッチャーの表をプラットフォームの絶対的なルールとして扱わないでください:標準的な 16×H100 の Qwen3 30B 構成では HybridEP が検証済みの最適な選択肢ですが、現在の 256×H100 の Qwen3 235B レシピでは
alltoallが使われています。本番コンテナーでバックエンドの互換性とスループットをベンチマークしてください。 -
スクリーニング、因果関係の特定、採用判断を分けてください:短時間の実行で有望でない候補を除外し、条件をそろえた単一変数の A/B テストで仕組みを明らかにし、最後に 50 ステップの実行で最適な構成全体を検証します。
署名の最終更新:2026-08-03。