Skip to main content
skill CX Codex

nemo-mbridge-perf-moe-hardware-configs — Claude Code skill

A reference of MoE training starting configurations for H100, B200, GB200, and GB300. Use it when selecting a dispatcher, parallelism layout, or planning throughput checks.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add NVIDIA/skills --skill nemo-mbridge-perf-moe-hardware-configs -a claude-code
Open on GitHub

What nemo-mbridge-perf-moe-hardware-configs does

This skill provides reference MoE training recipes for DSV3 and Qwen3 model families on H100, B200, GB200, and GB300. It covers DeepEP, HybridEP, and alltoall candidates, plus TP, EP, PP, and VPP layouts and rounded TFLOPS/GPU and MFU planning bands.

For DSV3 on H100, it lists DeepEP with TP=2, EP=64, PP=8, and VPP=4; GB200 and GB300 use a HybridEP candidate with TP=1, EP=64, PP=4, and VPP=4. The Qwen3 30B-A3B recipe for 16×H100 includes BF16, HybridEP, EP overlap, and measurements from iterations 41-50.

These recipes are seeds, not defaults. Do not copy a tracker row blindly, because container quality, routing, topology, and PP layout affect results; Qwen3 235B on GB200 keeps VPP=unspecified until a measured value is available.

What it helps with

  • choose a starting parallelism layout for DSV3 on H100
  • compare DeepEP and HybridEP candidates for target hardware
  • estimate a TFLOPS/GPU planning band for MoE training
  • check the Qwen3 30B-A3B recipe on 16×H100
  • account for CPU tuning and CUDA Graph candidates on GB200

Example prompts for the agent

  • Use nemo-mbridge-perf-moe-hardware-configs to propose a DSV3 starting recipe for H100.
  • Check the Qwen3 235B setup on GB200: which dispatcher and TP, EP, and PP values should I screen first?
  • Compare my parallelism layout with the Qwen3 30B-A3B recipe for 16×H100.

How to install nemo-mbridge-perf-moe-hardware-configs

1Skills CLI (Vercel)

npx skills add NVIDIA/skills --skill nemo-mbridge-perf-moe-hardware-configs -a claude-code

2Manually: put the files in place

~/.claude/skills/nemo-mbridge-perf-moe-hardware-configs/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/nemo-mbridge-perf-moe-hardware-configs/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about nemo-mbridge-perf-moe-hardware-configs

How do I install nemo-mbridge-perf-moe-hardware-configs in Claude Code?

Run npx skills add NVIDIA/skills --skill nemo-mbridge-perf-moe-hardware-configs -a claude-code, then run npx skills add NVIDIA/skills --skill nemo-mbridge-perf-moe-hardware-configs -a claude-code again. The skill file is located at ~/.claude/skills/nemo-mbridge-perf-moe-hardware-configs/SKILL.md.

What does nemo-mbridge-perf-moe-hardware-configs do?

It supplies reference MoE training recipes by hardware and model family. Use it to screen dispatcher choices, parallelism layouts, and throughput planning ranges before measuring the target runtime.

What VPP value should I use for Qwen3 235B on GB200?

The reference keeps VPP=unspecified for this configuration. Use a value only when a measured recipe provides it.

Source text

SKILL.md · Apache-2.0
---
name: nemo-mbridge-perf-moe-hardware-configs
description: Representative, point-in-time MoE training playbooks by hardware and model family. Use them as candidate seeds, then revalidate the exact runtime, semantics, topology, and steady-state throughput.
license: Apache-2.0
when_to_use: Hardware-specific MoE playbooks or throughput estimates; 'MoE on H100', 'GB200 config', 'expected throughput', 'MoE hardware playbook', 'parallelism for B200'.
---

# MoE Hardware Configuration Reference

Stable docs: @docs/training/moe-optimization.md
Card: @skills/nemo-mbridge-perf-moe-hardware-configs/card.yaml

## Quick Platform Playbook

These rows are search seeds, not hardware defaults or throughput promises.

| Platform | Candidates to screen after `alltoall` bring-up | What usually matters most |
|---|---|---|
| H100 | DeepEP or HybridEP, explicit overlap, supported FP8 modes | communication overlap, dispatcher/runtime compatibility, and PP efficiency |
| B200 | DeepEP or HybridEP, supported FP8 modes, careful PP layout | container quality and tuned communication settings |
| GB200 | HybridEP, then profile-driven graphs and CPU cleanup | host overhead, topology-aware dispatch, memory headroom |
| GB300 | HybridEP and the target container's lower-precision/kernel stack | the same system interactions as GB200, with remeasurement required |

## First Answer Checklist

For hardware playbook questions, answer from these canonical rows before adding
throughput caveats:

| Workload | Hardware | Dispatcher | Layout |
|---|---|---|---|
| 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` + overlap in the current canonical recipe | TP=2, EP=32, PP=8, VPP=4 |
| Qwen3 235B | GB200 | HybridEP | TP=1 or 2, EP=32-64, PP=4, VPP=unspecified |
| Qwen3 30B | 16×H100 | HybridEP | TP=1, EP=16, PP=1, plain EP overlap |

For Qwen3 235B on GB200, explicitly say `VPP=unspecified`; do not invent or
extrapolate `VPP=12` unless a measured row provides it. Treat TE-scoped CUDA
graph scopes (`attn`, `moe_router`, `moe_preprocess`) as profile-driven
candidates,
`CUDA_DEVICE_MAX_CONNECTIONS` selection,
`PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True`, `NCCL_GRAPH_REGISTER=0`,
GB200/GB300 CPU-side tuning, and the warning not to cargo-cult tracker rows.

## Rounded Performance Bands

These are intentionally rounded so the document stays durable as the tracker
moves. Treat them as planning ranges, not exact promises.

| Workload family | Hardware | Typical band | Representative shape |
|---|---|---|---|
| DSV3, large-scale | H100 | low-to-mid hundreds TFLOPS/GPU, high-teens MFU | TP2, EP64, PP8, DeepEP |
| DSV3, large-scale | B200 | high-hundreds TFLOPS/GPU, mid-teens MFU | TP1, EP32, PP8, DeepEP |
| DSV3, large-scale | GB200 | around 1K TFLOPS/GPU, low-20s MFU | TP1, EP64, PP4, HybridEP |
| DSV3, large-scale | GB300 | above the GB200 band, often mid-20s MFU | TP1, EP64, PP4, HybridEP |
| Qwen3 235B | H100 | historical low-300s snapshots; remeasure the current recipe | TP2, EP32, PP8; current recipe uses `alltoall` + overlap |
| Qwen3 235B | GB200 | high-hundreds TFLOPS/GPU in tuned runs | TP1 or TP2, EP32-64, PP4, HybridEP |
| Qwen3 30B | H100 | about 300 TFLOPS/GPU on the validated 16-GPU shape | TP1, EP16, PP1, HybridEP + EP overlap |
| Qwen3-Next 80B | GB200 | low-300s TFLOPS/GPU in BF16-class runs | TP1, EP32, PP2, HybridEP |

## Representative Config Families

### DSV3 on H100

```text
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
```

### DSV3 on B200

```text
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
```

### DSV3 on GB200 or GB300

```text
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
```

### Qwen3 235B on H100

```text
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
```

### Qwen3 235B on GB200

```text
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
```

### Qwen3 30B-A3B on 16 H100

```text
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
```

The current number is the final multi-knob canonical recipe result. An earlier
matched A/B isolated plain EP overlap: 244.039 to 287.305 TFLOPS/GPU, with
communication hidden by GEMM/attention increasing from 0.11% to 36.55%. Do not
attribute the later 299.352 result entirely to overlap.

### Qwen3-Next 80B on GB200

```text
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
```

## Cross-Cutting Patterns

### PP layout

- `E` = embedding
- `t` = transformer
- `m` = MTP
- `L` = loss
- `|` = stage boundary

The biggest platform difference is usually not just the dispatcher. It is the
combination of dispatcher, PP shape, and whether VPP keeps each stage balanced.

### Recompute strategy

| Memory pressure | Starting point |
|---|---|
| low | none or a very narrow selective set |
| moderate | `moe_act`, `mlp`, `norm`, or similar selective modules |
| high | model-specific up-projection plus selective MoE and MLP modules |
| extreme or long-context | full recompute only if the selective path still does not fit |

### Environment variables

```bash
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-side tuning

On GB200 and GB300, CPU affinity and general host-overhead cleanup can move the
needle almost as much as a dispatcher swap. Treat them as first-class tuning
work, not as afterthoughts.

## Pitfalls

1. **Do not cargo-cult a tracker row**: the winning config usually depends on
   routing mode, container, and PP layout as much as on hardware name.

2. **Container quality matters**: large regressions can come from the software
   stack rather than the model recipe.

3. **VPP must be intentional**: a bad VPP split can erase the gain from a better
   dispatcher.

4. **Compare absolute throughput, not only MFU**: MFU can mislead when switching
   between BF16, FP8, and other precision modes.

5. **Force-balance routing is benchmark-only**: it can control routing variance,
   but it changes semantics. Keep routing fixed within an A/B and validate
   natural routing separately for training acceptance.

6. **Do not treat the dispatcher table as a hard platform rule**: HybridEP is
   the validated winner for the canonical 16×H100 Qwen3 30B shape, while the
   current 256×H100 Qwen3 235B recipe uses `alltoall`. Benchmark backend
   compatibility and throughput in the production container.

7. **Separate screening, causality, and acceptance**: short runs reject weak
   candidates, matched one-variable A/Bs explain a mechanism, and a 50-step
   final run validates the complete winner.

_Last signature refresh: 2026-08-03._

© NVIDIA · Apache-2.0 · NVIDIA/skills

Similar skills

Everything for AI and ML →

From the same set194

nemo-mbridge-perf-megatron-fsdp Configures Megatron FSDP in Megatron-Bridge to replace standard DDP, helping resolve out-of-memory errors and verify training checkpoints. CX Codex +1 1,800installs nemo-rl-docs This skill hands your agent the documentation rules for NeMo-RL: keeping docs/index.md current and writing docstrings in Google style. Useful when you touch the docs. CX Codex +1 1,800installs nemo-mbridge-resiliency A skill covering resiliency setup in Megatron Bridge: fault tolerance, straggler detection, preemption and re-run state machine. CX Codex +1 1,800installs nemo-mbridge-perf-hierarchical-context-parallel Configures hierarchical context parallelism in Megatron-Bridge. Useful for scaling long-sequence model training when context length exceeds KV head counts. CX Codex +1 1,800installs nemo-mbridge-perf-moe-comm-overlap A skill for MoE expert-parallel communication overlap in Megatron Bridge: dispatch/combine, flex dispatcher backends, expert wgrad scheduling. CX Codex +1 1,800installs nemo-mbridge-perf-moe-long-context Guides context parallelism sizing and selective recompute for long-context MoE training in Megatron Bridge. CX Codex +1 1,800installs nemo-mbridge-perf-expert-parallel-overlap A skill for enabling and validating MoE expert-parallel communication overlap in Megatron-Bridge, covering alltoall and flex dispatchers with DeepEP and HybridEP. CX Codex +1 1,800installs nemo-mbridge-perf-cpu-offloading A skill that validates and enables CPU offloading in Megatron Bridge: layer-level activation offloading and optimizer state offloading via HybridDeviceOptimizer. CX Codex +1 1,800installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor