Nemo Mbridge Perf Moe Vlm Training
NVIDIAOfficialPublished by NVIDIA
- Skill
- Guidelines
- Data and AI
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured approach to training MoE VLMs using Megatron Bridge. It offers comparative analysis between FSDP and 3D-parallel strategies, drawing on empirical lessons from multimodal experiments like Qwen3-VL. The guide emphasizes the importance of using real data for performance profiling and provides a decision framework for selecting training configurations based on model stability and throughput requirements.
What it does
- Compares FSDP and 3D-parallel training approaches for MoE VLMs.
- Provides a decision guide for selecting the optimal training strategy based on model maturity.
- Outlines key tuning knobs including vision stack freezing, MBS sweeping, and recompute strategies.
- Identifies common pitfalls in VLM training, such as the unreliability of mock data.
- Suggests representative configuration families for GB200-class systems.
- Offers guidance on balancing memory usage and throughput for multimodal workloads.
When to use it
- When bringing up a new MoE VLM for the first time.
- When investigating training failures or OOM errors in multimodal MoE models.
- When transitioning from initial model bring-up to steady-state throughput optimization.
- When deciding between FSDP and 3D-parallel strategies for a specific VLM architecture.
Advantages
- Provides actionable, experiment-backed performance patterns.
- Helps avoid common pitfalls like misleading mock-data performance proxies.
- Clarifies the trade-offs between ease of bring-up and peak throughput.
- Offers specific configuration guidance for modern hardware like GB200.
Usage examples
- “How should I approach the initial training bring-up for a new MoE VLM?”
- The guide recommends starting with FSDP for its simplicity and memory-first tuning, moving to 3D parallel only once the model is stable and throughput headroom is required.
- “Why is my VLM training performance different than expected?”
- The skill suggests checking if you are using mock data, which is not a trustworthy performance proxy, and profiling the vision encoder, projector, and decoder separately.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/nvidia/nemo-mbridge-perf-moe-vlm-training/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip nemo-mbridge-perf-moe-vlm-training.zip -d .agents/skills
Documentation by NVIDIA
MoE VLM Training
Stable docs: @docs/training/moe-optimization.md Card: @skills/nemo-mbridge-perf-moe-vlm-training/card.yaml
FSDP vs 3D Parallel
| Approach | Strength | Best fit |
|---|---|---|
| FSDP | Simplest path to a working multimodal run | first bring-up, memory-first tuning, awkward PP boundaries |
| 3D parallel | Higher ceiling after tuning | stable models with a clean PP layout and time for deeper sweeps |
For MoE VLMs, the practical workflow is usually:
get the first reliable run with FSDP
stabilize real-data input, recompute, and memory behavior
move to 3D parallel only if the throughput headroom is worth the extra work
Rounded Findings From Recent VLM Runs
Qwen3-VL class models
The main patterns were consistent across the tracker:
FSDP on GB200-class systems can already reach healthy high-teens utilization with a comparatively simple setup
B200 FSDP runs are viable, but more sensitive to recompute choice and frozen vision settings
3D parallel can recover to a similar or better operating point, but only after tuning MBS, recompute, and the real vision path together
Real data vs mock data
Mock-data VLM runs are not trustworthy performance proxies. In the experiments, image-free mock runs looked closer to "roughly twice as fast" than "slightly optimistic" when compared with real multimodal input.
Use real or realistic image payloads before drawing any conclusion about VLM throughput.
Smaller multimodal MoE runs
The smaller Qwen3.5-style multimodal experiments reinforce the same lessons:
HybridEP is a solid default on GB200
TE-scoped CUDA graphs help once the training loop is stable
larger MBS can pay off, but only if the vision encoder does not become the next bottleneck
Decision Guide
Choose FSDP when
you are bringing up a new VLM for the first time
the model has awkward stage boundaries across embedding, vision, and decoder
memory fit matters more than absolute throughput
you may freeze the vision stack during decoder-focused tuning
Choose 3D parallel when
the model is already stable under FSDP
the PP layout is clear and repeatable
you can sweep MBS, recompute, and CUDA-graph scope together
the goal is best steady-state throughput, not easiest bring-up
Key Tuning Knobs
Freeze the vision stack when appropriate: if the work is decoder-focused, freezing the vision side often gives a small but real throughput gain and reduces memory pressure.
Sweep MBS aggressively: VLMs are more MBS-sensitive than text-only MoE runs because the vision path changes the compute-to-overhead balance.
Prefer selective recompute once the model fits: full recompute is a useful bring-up tool, but selective recompute is usually the better steady state.
Match CUDA-graph scope to the workload:
attn moe_router moe_preprocessis the safer MoE default, while narrower scopes can still be useful for controlled experiments.Use ETP only when EP alone is insufficient: it can unlock a layout, but it also introduces more communication and more tuning surface.
Representative Config Families
FSDP-first GB200 path
TP=1 CP=1 PP=1
EP sized to the expert topology, often large
Dispatcher: HybridEP on GB200-class systems
Recompute: start with full, then relax toward selective recompute3D-parallel GB200 path
TP=1 CP=1 PP=1 or modest PP
EP and ETP sized to the expert topology
Dispatcher: HybridEP
CUDA Graph: start narrow, then widen only after the real-data path is stableCompatibility
| Feature | FSDP | 3D parallel |
|---|---|---|
| HybridEP on GB200 | strong default | strong default once topology is stable |
| CUDA graphs | useful after bring-up | useful, but more scope-sensitive |
| Freeze vision | natural fit | possible, but less often used as the headline perf path |
| Selective recompute | recommended | recommended |
Pitfalls
Mock multimodal data is misleading: it can make the decoder look much healthier than the real end-to-end VLM path.
The vision encoder can dominate unexpectedly: profile encoder, projector, and decoder separately before attributing everything to the dispatcher.
Do not compare FSDP and 3D-parallel runs with different effective work: normalize by useful tokens and workload shape, not only by step time.
ETP is not free: use it as a fit or topology tool, not as the default.
Recompute and CUDA-graph choices are coupled: the setting that gets the model to fit is often not the setting that gives the best steady-state speed.
Files
- ATTRIBUTION.mdAdded by AutoGineer867 B
- BENCHMARK.md4.3 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md5.0 KiB
- card.yaml2.9 KiB
- evals/evals.json1.7 KiB
- skill-card.md3.8 KiB
- skill.oms.sig4.7 KiB
card.yaml
title: moe_vlm_training
validated_on: "2026-04-01"
summary: >
Training strategies for MoE vision-language models (VLMs), comparing FSDP
vs 3D Parallel approaches. Backed by empirical data from Qwen3-VL 235B
and Qwen3.5-35B multimodal experiments on GB200 and B200.
validation_status:
qwen3_vl_fsdp_gb200:
- measured
qwen3_vl_fsdp_b200:
- measured
qwen3_vl_3d_parallel_gb200:
- measured
qwen3_next_35b_multimodal_gb200:
- measured
training_dimensions:
speed:
effect: "FSDP ~470 TFLOPS vs 3D Parallel ~440 TFLOPS (with MBS=4 tuning)"
confidence: medium
rationale: >
FSDP is slightly faster out of the box. 3D Parallel approaches FSDP
with MBS tuning but requires more configuration.
memory:
effect: "FSDP shards more aggressively; 3D Parallel needs recompute"
confidence: medium
rationale: >
3D Parallel with real vision data needs full recompute to fit in memory.
scale:
effect: "Both approaches tested at 64–128 GPUs"
confidence: medium
best_configs:
qwen3_vl_fsdp_gb200:
model: "Qwen3-VL 235B-A22B"
hardware: "64×GB200"
approach: FSDP
precision: BF16
dispatcher: HybridEP
tflops: ~470
mfu: "~19%"
parallelism: "EP64 DP=64"
batch: "MBS4 GBS256"
recompute: full
qwen3_vl_fsdp_b200:
model: "Qwen3-VL 235B-A22B"
hardware: "128×B200"
approach: FSDP
precision: BF16
dispatcher: AlltoAll
tflops: ~460
mfu: "~18%"
parallelism: "EP8 ETP16 DP=128"
batch: "MBS8 GBS1024"
recompute: full
note: "freeze vision_model, vision_projection"
qwen3_vl_3d_gb200:
model: "Qwen3-VL 235B-A22B"
hardware: "64×GB200"
approach: "3D Parallel"
precision: BF16
dispatcher: HybridEP
tflops: ~440
mfu: "~18%"
parallelism: "EP8 ETP8 PP1 DP=8"
batch: "MBS4 GBS1024"
recompute: full
cuda_graph: mlp
qwen3_next_35b_gb200:
model: "Qwen3.5-35B-A3B"
hardware: "32×GB200"
approach: "FSDP + EDP"
precision: BF16
dispatcher: HybridEP
tflops: ~260
parallelism: "EP8 EDP4 PP1 VPP4"
batch: "MBS16 GBS4096"
cuda_graph: "attn, moe_router, moe_preprocess"
key_findings:
- name: mock_data_overestimates
finding: "Mock data (no images) gives ~2× higher TFLOPS than real data"
- name: freeze_vision_helps
finding: "Freezing vision encoder gives +5% throughput"
- name: mbs_critical_for_3d
finding: "MBS=4 nearly doubles 3D Parallel throughput vs MBS=1"
- name: fsdp_simpler_setup
finding: "FSDP reaches near-best performance with fewer tuning knobs"
evidence:
- "[MoE Perf] MCore Release Performance Tracker - Qwen3-VL"
- "[MoE Perf] MCore Release Performance Tracker - Qwen3-Next (Qwen3.5-35B)"
known_limitations:
- FP8 not yet tested for VLM MoE training
- Long context (CP) not tested for VLM MoE
- 3D Parallel results are with specific mcore_encoder; different encoder may differ
- Only Qwen3-VL and Qwen3.5 architectures tested
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- NVIDIA
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/nemo-mbridge-perf-moe-vlm-training · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download nemo-mbridge-perf-moe-vlm-training.zip