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

nemo-mbridge-perf-moe-hardware-configs

github.com/nvidia開発3.8k1.8k 回インストール今日更新
リポジトリ

nemo-mbridge-perf-moe-hardware-configs について

H100、B200、GB200、GB300 向けの MoE 学習構成候補、性能の目安、調整時の注意点をまとめたリファレンススキルです。NeMo/MBridge の性能調整を対象とし、構成の流用ではなく対象環境での測定を重視します。

主な機能

  1. 01ハードウェア別の dispatcher 候補
  2. 02モデルとハードウェアの構成例
  3. 03計画用の性能レンジ
  4. 04並列レイアウトと再計算の指針
  5. 05調整時の注意点と検証方法

活用シーン

  1. 01MoE ハードウェア構成候補の選定
  2. 02DSV3 や Qwen3 の学習レイアウト計画
  3. 03dispatcher と通信オーバーラップ案の比較
  4. 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.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

プラットフォーム別クイックガイド

以下の行は検索の手がかりであり、ハードウェアのデフォルト設定やスループットの保証値ではありません。

プラットフォームalltoall の初期設定後に検証する候補通常、最も重要な要素
H100DeepEP または HybridEP、明示的なオーバーラップ、サポートされている FP8 モード通信のオーバーラップ、ディスパッチャーとランタイムの互換性、PP の効率
B200DeepEP または HybridEP、サポートされている FP8 モード、慎重な PP レイアウトコンテナの品質と調整済みの通信設定
GB200HybridEP、その後にプロファイルに基づいたグラフ設定と CPU の最適化ホストのオーバーヘッド、トポロジーを考慮したディスパッチ、メモリの余裕
GB300HybridEP と、対象コンテナの低精度/カーネルスタックGB200 と同じシステム間の相互作用。再測定が必要です

最初の回答チェックリスト

ハードウェアの実用ガイドに関する質問には、スループットに関する注意点を加える前に、以下の正規の行に基づいて回答してください。

ワークロードハードウェアディスパッチャーレイアウト
DSV3H100DeepEPTP=2, EP=64, PP=8, VPP=4
DSV3GB200/GB300HybridEPTP=1, EP=64, PP=4, VPP=4
Qwen3 235BH100alltoall + 現行の正規レシピでのオーバーラップTP=2, EP=32, PP=8, VPP=4
Qwen3 235BGB200HybridEPTP=1 または 2, EP=32-64, PP=4, VPP=未指定
Qwen3 30B16×H100HybridEPTP=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、大規模H100GPU あたり数百 TFLOPS の低~中程度、MFU は 10%台後半TP2, EP64, PP8, DeepEP
DSV3、大規模B200GPU あたり数百 TFLOPS の高い範囲、MFU は 10%台半ばTP1, EP32, PP8, DeepEP
DSV3、大規模GB200GPU あたり約 1K TFLOPS、MFU は 20%台前半TP1, EP64, PP4, HybridEP
DSV3、大規模GB300GB200 の範囲を上回り、MFU は 20%台半ばとなることが多いTP1, EP64, PP4, HybridEP
Qwen3 235BH100過去のスナップショットでは 300 TFLOPS 台前半。現行レシピを再測定してくださいTP2, EP32, PP8。現行レシピでは alltoall + オーバーラップを使用
Qwen3 235BGB200調整済みの実行では GPU あたり数百 TFLOPS の高い範囲TP1 または TP2, EP32-64, PP4, HybridEP
Qwen3 30BH100検証済みの 16 GPU 構成で GPU あたり約 300 TFLOPSTP1, EP16, PP1, HybridEP + EP オーバーラップ
Qwen3-Next 80BGB200BF16 クラスの実行で 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 = 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. 強制バランスルーティングはベンチマーク専用です:ルーティングのばらつきを抑えられますが、セマンティクスが変わります。A/B テストではルーティングを固定し、学習の採用判断にあたっては自然なルーティングを別途検証してください。

  6. ディスパッチャーの表をプラットフォームの絶対的なルールとして扱わないでください:標準的な 16×H100 の Qwen3 30B 構成では HybridEP が検証済みの最適な選択肢ですが、現在の 256×H100 の Qwen3 235B レシピでは alltoall が使われています。本番コンテナーでバックエンドの互換性とスループットをベンチマークしてください。

  7. スクリーニング、因果関係の特定、採用判断を分けてください:短時間の実行で有望でない候補を除外し、条件をそろえた単一変数の A/B テストで仕組みを明らかにし、最後に 50 ステップの実行で最適な構成全体を検証します。

署名の最終更新:2026-08-03。

コメント