perf: enable HybridEP in remaining GB200 MoE performance recipes - #4118
Merged
terrykong merged 4 commits intoSep 16, 2026
Merged
Conversation
Signed-off-by: seonjinn <sna@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
seonjinn
marked this pull request as ready for review
September 15, 2026 07:04
|
Auto-sync is disabled for ready for review pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Signed-off-by: seonjinn <sna@nvidia.com>
Signed-off-by: seonjinn <sna@nvidia.com>
Contributor
Author
|
/ok to test 3841bcc |
terrykong
approved these changes
Sep 16, 2026
terrykong
enabled auto-merge (squash)
September 16, 2026 21:08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Enable Flex + HybridEP in the remaining Qwen3-30B-A3B and Nemotron3 Super GB200 performance recipes: Sync / Async-1off × BF16 / MXFP8 rollout. Six YAML edits cover eight workloads through inheritance.
Set NVL72 topology explicitly, per-domain ranks matching EP16 (EP8 for Qwen Async), and packed-input prepadding. Preserve existing batch sizes, parallelism, precision, allocator/refit settings, and dense-model recipes. No dependency or submodule changes.
Measured performance — BF16 only
BF16 validation: four of seven matched comparisons completed 20 steps and final validation. Qwen3-30B-A3B Sync and Async-1off, and Nemotron3 Super Async-1off completed. Qwen3-235B-A22B Async-1off also completed as an additional benchmark of an already-enabled recipe (not a new YAML change in this PR). Nemotron3 Super Sync remains blocked by OOM; Qwen3-235B-A22B Sync 16n4g and 32n4g lack completed comparisons. MXFP8 results and further MXFP8 validation are excluded from this report; this description update does not change the YAML diff.
Actual training steps 2–20, 19 observations per reported metric; scheduled validation is included in E2E time. Values are AlltoAll → HybridEP (change). Both policy training and rollout use BF16; all Async runs are Async-1off.
Step time — seconds
Throughput — logged tokens/sec/GPU
Qwen3-30B-A3B uses 4 × 4 GB200 GPUs: Sync colocated, Async-1off split 8 policy + 8 generation. Nemotron3 Super Async-1off uses 32 × 4 GB200 GPUs, split 64 + 64. Qwen3-235B-A22B Async-1off also uses 32 × 4 GB200 GPUs, split 64 policy + 64 generation: training TP4/PP4/CP1/EP16, generation TP8, sequence length 8192, batch size 512. Original recipe memory and batch settings are preserved; its two configurations differ only in dispatcher/backend and logging destinations. Resolved W&B configurations within each pair differ only in HybridEP options and logging destinations.
¹ Both Nemotron3 Super arms use
gpu_memory_utilization=0.6instead of default0.7; this override is not in this diff. Qwen3-30B-A3B has no memory override. These are matched-config runs, not identical-token replays. Throughput values are means of logged per-step rates, not inverses of mean times. Nemotron3 Super mean tokens/sample change 2902 → 3021 and exposed generation 19.13 → 21.63 s. Its whole-window E2E throughput is 111.91 → 117.98 (+5.4%); the table's +16.4% is not a 16.4% wall-time reduction.Accuracy — short-run observations only
Tracked reward/KL/loss/gradient/ratio metrics are finite across all 19 measured steps. Qwen3-30B-A3B and Nemotron3 Super validation uses 256 samples and one generation per prompt, without step-0 evaluation. Qwen3-235B-A22B retains its original, smaller validation configuration; its validation scores are not directly comparable across models. Its final accuracy declines by 6.67 percentage points despite similar mean reward and KL. Observed BF16 validation declines remain unresolved: one short pair cannot distinguish run variation from a systematic effect. Finite metrics and close rewards do not prove accuracy or convergence equivalence.
Remaining failures and validation boundaries
0.7reproduces vLLM KV-cache OOM with both dispatchers.0.6passes generation initialization but encounters host OOM. Disabling policy NUMA memory binding reaches reference logprob, then exceeds Ray's host-memory threshold (~883/909 GiB). No completed comparison.90a2a212with recipe overlays and DeepEP17cfb817; this PR is based ond633032b. Intervening changes include shared W&B logging behavior. The additional Qwen3-235B-A22B runs use experiment commit022fe8a746on the same runtime baseline. These are not exact-PR-head runtime validation.Tests / readiness
Configuration regression tests: 102 passed, covering all 18 GB200 MoE recipes, dense exclusions, EP-dependent topology, prepadding eligibility, and preserved environment settings. This is not GPU runtime evidence.
uv run --no-project --with pytest --with hydra-core python -m pytest \ --confcutdir=tests/unit/tools \ tests/unit/tools/test_hybridep_default_8g_recipes.py -o addopts='' -q