[Perf] Tune FlashInfer all-reduce selection on SM103 - #53318
Open
GirasoleY wants to merge 1 commit into
Open
Conversation
GirasoleY
force-pushed
the
perf/sm103-tp8-fi-ar-threshold-upstream
branch
from
August 21, 2026 23:51
8907026 to
66cb43b
Compare
Prefer standalone FlashInfer all-reduce ahead of NCCL symmetric memory when the existing FlashInfer gate is enabled. Use topology-keyed cutoffs for SM103 MNNVL and size the shared workspace accordingly. Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: Summer Yang <girasoleyang@gmail.com>
GirasoleY
force-pushed
the
perf/sm103-tp8-fi-ar-threshold-upstream
branch
from
August 22, 2026 01:07
66cb43b to
9cd12af
Compare
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.
Tune standalone FlashInfer all-reduce using conservative, topology-specific cutoffs on SM103.
Scope
VLLM_ALLREDUCE_USE_FLASHINFERgate and its default unchanged.(compute capability, world size, node count)in the shared all-reduce policy table.{2, 4, 8, 16, 32, 64}.The separate fused all-reduce + RMSNorm threshold is intentionally excluded from this PR.
Performance
Hardware/software: GB300 GPUs in one NVL72 domain, PyTorch 2.13 / CUDA 13.0, FlashInfer 0.6.15, and NCCL 2.30.7. Values are median slowest-rank CUDA times and include the steady-state glue required by each backend. The fallback is consumer-visible NCCL symmetric memory for TP4/TP8/TP16 and ordinary out-of-place PyNCCL for TP2, where the symmetric-memory selector is disabled.
The dense boundary sweeps used production-sized persistent workspaces. TP2 reaches parity and then loses with an 80 MiB workspace, so it retains 64 MiB. TP4 wins through 80 MiB, while a 96 MiB workspace loses at the 80 MiB point, so the cutoff stops at 80 MiB. TP16 wins through 8 MiB but loses clearly by 10 MiB, so it uses the strict 8 MiB cutoff.
K3 TP8 + DSpark decode
Three seed-matched measured cohorts per arm and concurrency, after two warmup waves. The setup used TP8, DCP1, DSpark7, FP8 KV cache, exact 1,024-token prompt KV state from
DecodeBenchConnector, and 4,096 generated tokens per request.C16 is a control because its target activation is already below the old 2 MiB limit. C32 crosses that limit; after subtracting the C16 control shift, its threshold-associated TPOT benefit is 3.69 percentage points with a paired 95% interval of [3.49, 3.89] points.
All 288 measured requests completed with no failures. Acceptance lengths were identical between policies for every paired seed. FlashInfer was enabled and NCCL symmetric-memory all-reduce was disabled in both serving arms to isolate the threshold change; the full-glue sweep above measures the FlashInfer/fallback crossover directly.
Tests
pytest -q tests/distributed/test_comm_ops.py -k flashinfer: 13 passed, 12 deselected.pre-commit runon all four changed files: all applicable hooks passed.Duplicate work and assistance
An open-PR search found #44080, which adjusts the fused all-reduce + RMSNorm cap on SM90/Hopper. This PR changes standalone MNNVL all-reduce selection and workspace sizing on SM103/GB300; it does not modify the fusion threshold. No duplicate open PR was found.
AI assistance was used to port, benchmark, test, and review this change. The submitter should review every changed line and the performance evidence before merge.