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=未指定

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、大規模H100GPU あたり低〜中程度の数百 TFLOPS、MFU は十数%後半TP2、EP64、PP8、DeepEP
DSV3、大規模B200GPU あたり数百 TFLOPS の高い範囲、MFU は十数%半ばTP1、EP32、PP8、DeepEP
DSV3、大規模GB200GPU あたり約 1K TFLOPS、MFU は 20%台前半TP1、EP64、PP4、HybridEP
DSV3、大規模GB300GB200 の範囲を上回り、MFU は 20%台半ばになることが多いTP1、EP64、PP4、HybridEP
Qwen3 235BH100GPU あたり低い 300 TFLOPS 台、MFU は約 30%TP2、EP32、PP8、DeepEP
Qwen3 235BGB200調整済みの実行では GPU あたり数百 TFLOPS の高い範囲TP1 または TP2、EP32-64、PP4、HybridEP
Qwen3 30BH100GPU あたり低い 200 TFLOPS 台TP1、EP8、PP1、DeepEP
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: 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 = 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. ベンチマークでは、Force-balance ルーティングがより安全なデフォルト設定です:ハードウェアやディスパッチャースタックを比較する際は、ルーティングモードを固定してください。

コメント