Conversation
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Warm model-specific Triton and FlashInfer shapes, capture stateful ops with breakable CUDA graphs, and fuse the BF16 MoE finalize/shared-expert tail. Refs vllm-project#54688 Co-authored-by: Codex <codex@openai.com>
Contributor
Author
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.
Purpose
Related to #54688.
This draft removes the NVIDIA Qwen3.8-Flash-Next (
Qwen4Exp) model-leveltorch.compiledependency and runs the model-specific operations through breakable CUDA graphs:support_torch_compilefrom the main model and MTP paths;DeepGEMM/Mega-MoE work is intentionally not included in this PR.
Why this is not duplicate work
The existing Qwen4Exp PRs listed in #54688 provide the underlying HC, QSA, and PLE kernels. This PR implements the remaining model integration needed to run the NVIDIA path without model-level Inductor compilation, plus the PLE/QSA epilogue fusions and BF16 MoE tail fusion. No other open PR found during the duplicate-work check covers this integration.
Performance
Initial end-to-end results on 4 x B200, BF16, TP=4, EP=4, using
Qwen3.8-Flash-Next. The POC usesVLLM_USE_BREAKABLE_CUDAGRAPH=1; no FP8 or DeepGEMM path is involved.Sustained 8K/1K serving
200 prompts, 8192 input tokens, 1024 output tokens, max concurrency 16, seed 17, with prefix caching disabled. Both variants used the same container, model, GPUs, server arguments, and per-variant warmup. The baseline was
mainat848ab131bcdb5264bcff0d802f47f7d4adb0f548with the default compiled path; the POC was6c9fcc3fa78c727cdf2fa2a67eee46892eab4410with breakable CUDA graphs. Both runs completed 200/200 requests successfully.For this longer, sustained workload, the end-to-end improvement is much smaller than in the short preliminary workloads below: output throughput improves by 1.3%, mean TTFT by 2.4%, and mean TPOT by 1.1%. The median TTFT result should be confirmed with alternating repeated runs before being treated as stable.
Heavy prefill
16 prompts, 8192 input tokens, 32 output tokens, max concurrency 4:
Heavy decode
16 prompts, 128 input tokens, 512 output tokens, max concurrency 16, seed 11:
Across decode seeds 11-13, output throughput was 1,913.76-1,997.19 tok/s and mean TPOT was 7.69-8.02 ms.
These are preliminary POC measurements. More repetitions, accuracy evaluation, mixed-batch coverage, and per-change ablations are required before the PR is ready for review.
Test plan and results
pytest -q tests/models/qwen4_exp/test_qsa_reference.py: 50 passed on the initial fusion slice.pytest -q tests/models/qwen4_exp/test_ple.py: 32 passed on the initial fusion slice.pre-commit run: passed on the initial fusion slice.pytest tests/models/qwen4_exp/test_hc_ops.py -k finalize_moe_with_shared: 6 passed, 4 deselected.git diff --check: passed for the current branch.The capital of France isproducedParis. The capital of Germany is Berlin. The capital of.vllm bench servecompleted for all workloads reported above; the sustained 8K/1K comparison completed 200/200 requests for both variants.Before marking ready, rerun the complete Qwen4Exp tests and pre-commit on the expanded branch, then add accuracy and mixed-batch results.
AI assistance
AI assistance was used for implementation, profiling orchestration, benchmark analysis, and drafting this PR. The human submitter will review every changed line and rerun the required checks before marking the PR ready for review.
Essential Elements of an Effective PR Description Checklist