·
Last changedVersion:
This version passed the hardening gate. Hardening applied 2 targeted changes and preserved all other text. Classified findings before hardening: 1. Classified findings closed: 0. Classified findings remaining: 1. Unclassified scanner findings remaining: 0. Review findings closed: 2. Review findings remaining: 9.
1
1
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
BENCHMARK.md | Sensitive Data & Secret Exposure | Agent snooping | Medium | Open |
1 finding
Expert-parallel (EP) overlap hides the cost of token dispatch/combine all-to-all
communication by running it concurrently with expert FFN compute. Optionally,
delayed expert weight-gradient computation (delay_wgrad_compute) provides
additional overlap by deferring wgrad to overlap with the next layer's forward.
Bridge supports two dispatcher paths:
| Dispatcher | Backend | When to use |
|---|---|---|
| Standard MoE all-to-all | Default, broadest compatibility |
| DeepEP or HybridEP | Higher overlap on Ampere/Hopper/Blackwell |
Use EP overlap when:
EP > 1Prefer:
alltoall dispatcher for the first rollout (broader compatibility)flex + DeepEP/HybridEP when running on supported GPUs and seeking
additional gainsAvoid EP overlap when:
moe_shared_expert_overlap is enabledExpected outcome:
For the plain EP-overlap isolation benchmark, keep flex dispatch and delayed
wgrad disabled. The measured shape was Qwen3 MoE 30B-A3B SFT on 16 H100 GPUs:
EP=16, alltoall, BF16, global batch size 1024, CUDA graphs disabled,
moe_permute_fusion=false, measured over iterations 3-8.
Use these overrides for the plain-overlap case:
Do not use --moe_a2a_overlap true for this isolation test: the performance
harness helper enables both overlap_moe_expert_parallel_comm and
delay_wgrad_compute, so it does not isolate plain EP overlap.
Steady-window timing from that benchmark:
| Case | Steady mean | Relative |
|---|---|---|
no EP overlap | 41.25s | 1.000x |
EP overlap | 31.31s | 1.317x |
EP overlap plus | 31.20s | 1.322x |
This is evidence for enabling plain EP overlap on this inter-node all-to-all shape. It does not show a meaningful independent win from delayed wgrad, and it does not validate fused MoE permutation because that path was disabled for the runtime stack.
A 2026-07-25 controlled Qwen3 30B-A3B pretraining comparison validated plain EP overlap with the production HybridEP path:
| Case | Steady window | Step time | Model TFLOPS/GPU |
|---|---|---|---|
overlap off | iterations 5-20 | 24.7138s | 244.039 |
overlap on, search run | iterations 5-20 | 21.0725s | 286.208 |
overlap on, independent validation | iterations 41-50 | 20.9920s | 287.305 |
The independent run reduced step time by 15.059% and raised throughput by 17.729% over the reproduced baseline. Loss was finite, skipped and NaN iterations remained zero, and rank-0 peak allocated memory was 62.166 GiB.
A matched Nsight Systems comparison captured the same 463,348 rank-0 kernels per case. Enabling overlap increased communication concurrent with GEMM and attention from 9.079ms (0.11% of communication time) to 3,958.997ms (36.55%). GPU-active interval union fell from 22.821s to 21.221s.
Use this as evidence for the mechanism, not as a universal speedup promise. The dispatcher, graph scopes, routing, parallelism, batch shape, and runtime were held fixed while only plain EP overlap changed.
Enable delay_wgrad_compute=True only after the plain overlap path is known to
work and its extra compatibility constraints have been checked.
Benchmark plain EP overlap first. Enable delay_wgrad_compute=True only as a
separate follow-up A/B after its CUDA-graph and TE compatibility constraints
are satisfied.
expert_model_parallel_size > 1num_moe_experts > 1moe_token_dispatcher_type must be "alltoall" or "flex"moe_shared_expert_overlap = False>= 2.6.0PP > 1, virtual_pipeline_model_parallel_size must be setrecompute_granularity != "full", recompute_method = None,
recompute_num_layers = Nonemtp_num_layers must be None or 1delay_wgrad_compute requires overlap_moe_expert_parallel_comm as a
prerequisitedelay_wgrad_compute with overlap_grad_reduce requires TE >= 2.7.0delay_wgrad_compute with gradient_accumulation_fusion requires TE >= 2.7.0attn scope + delay_wgrad_compute requires TE >= 2.12.0,
gradient_accumulation_fusion = True, and no attention biasUse this as the correctness-first starting point. Add delayed wgrad, flex dispatch, and CUDA-graph interactions only after the plain overlap path is known to work.
Performance harness example inside a Slurm allocation. Keep the model, parallelism, dispatcher, and runtime fixed, and vary only the two overlap overrides:
Do not use --moe_a2a_overlap true when separating plain EP overlap from
delayed wgrad: the performance harness helper enables both
overlap_moe_expert_parallel_comm and delay_wgrad_compute.
Unit test verification:
After a successful run with EP overlap:
CommOverlapConfig finalizationoverlap_moe_expert_parallel_comm appears as True in the logged
configmoe_token_dispatcher_type = "flex" and
the correct backend in logsUse an unprofiled steady window for the throughput acceptance result. Use a matched profile to explain the mechanism:
| File | Coverage |
|---|---|
| EP overlap validation, delayed wgrad, CUDA graph + wgrad interaction |
| DeepEP/HybridEP helper activation and GPU gating |
| Symptom | Likely Cause | How To Confirm | Fix |
|---|---|---|---|
assert | EP not configured | Check | Set EP > 1 |
assert | Wrong dispatcher | Check dispatcher type | Use |
assert on BF16/FP16 | Wrong precision | Check | Set |
hang during training | PyTorch < 2.6 | Check PyTorch version | Upgrade to >= 2.6.0 |
assert | PP > 1 without VPP | Check PP and VPP config | Set VPP when PP > 1 |
assert | Full recompute enabled | Check recompute settings | Disable full recompute |
assert | delayed wgrad without EP overlap | Check | Enable EP overlap first |
assert | CUDA graph + delayed wgrad | Check graph scope + wgrad settings | Enable |
assert on attention bias | CUDA graph attn + delayed wgrad + bias | Check | Disable attention bias |
no throughput gain from flex dispatcher |
| Check | Call |
DeepEP/HybridEP silently skipped | Unsupported GPU | Check warning logs | Run on Ampere/Hopper/Blackwell |
summed kernel time increases after overlap | Expected concurrency contention or a regression | Compare interval unions, comm/compute intersection, and unprofiled step time | Judge overlap from exposed wall time, not summed per-stream duration |
moe_flex_dispatcher_backend alone does not activate flex dispatch —
you must call apply_flex_dispatcher_backend(...).Last signature refresh: 2026-08-03.
Get started with chainctlchainctl skill install public/nvidia/nemo-mbridge-perf-expert-parallel-overlap:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/nvidia/skills/nemo-mbridge-perf-expert-parallel-overlap:latest
Apache-2.0
BENCHMARK.md
HARDENING.md
SKILL.md
card.yaml
evals/evals.json
skill-card.md
skill.oms.sig