Conversation
85b0ff7 to
8486c58
Compare
8486c58 to
853ba93
Compare
|
Part of the #48597 re-split. See that PR for the tracker: merge order, measured numbers, and what was dropped. |
yewentao256
left a comment
There was a problem hiding this comment.
Thanks for the work!
Are you sure non-torch compiled path is faster than torch compiled path for GLM 5.2?
Please attach with full e2e benchmark command line and metrics. From my understanding there is still gap between this two (old path faster)
67ad33e to
8b3ed37
Compare
|
This pull request has merge conflicts that must be resolved before it can be |
added in the PR description, please have a review again. |
e2fba30 to
ed640b9
Compare
4aaf114 to
43f048a
Compare
There was a problem hiding this comment.
Could you share with full benchmark command line and full output logs? Some guys faked the benchmark results before and it caused a lot of trouble. So now we are conservative about AI generated table without original data.
Please also run three times for benchmark and we can avoid fluctuations.
Additionally, could you also benchmark fp8 case? Using "zai-org/GLM-5.2-FP8"
|
This pull request has merge conflicts that must be resolved before it can be |
|
@zhou9402: GitHub auto-closed this PR when its head was synchronized to current The validated update remains preserved as commit git fetch https://github.com/WoosukKwon/vllm.git codex/pr-49790-publish
git push origin FETCH_HEAD:agent/sm100-sparse-model-routing
gh pr reopen 49790 --repo vllm-project/vllmThe prepared tree is rebased onto current
Validation completed: I also ran the requested full GSM8K evaluation on four NVIDIA GB200 GPUs using The repository's current standalone GSM8K CLI omits the now-required I additionally measured batch-size-1 output throughput on the same four GB200 GPUs, following The environment uses FlashInfer 0.6.17 with matching The benchmark's output-throughput metric includes TTFT. MTP=3 delivered a 2.337x speedup (+133.7%) by that metric and a 2.502x decode-only speedup (+150.2%) from mean TPOT. Startup logs also confirmed MRV2, automatic breakable FULL + PIECEWISE CUDA graphs, AI assistance was used to prepare the rebase/default-path changes and evaluation. The human submitter must review every changed line and the evidence above before merge. |
dfbe5d1 to
11ba6da
Compare
8fbaf81 to
b05ae5d
Compare
What this does
Point the DSA architectures at the SM100-optimized implementation in
vllm/models/deepseek_v32/, which nothing onmaincurrently references.GlmMoeDsaForCausalLMnow resolves tovllm.models.deepseek_v32instead of thegeneric
deepseek_v2, andDeepseekV32MTPModelis registered so speculativedecoding uses the matching MTP module.
deepseek_v32/__init__.pygains a platform gate: SM100 gets the optimizedmodule, everything else (ROCm, XPU, pre-SM100 CUDA, CPU) falls back to the
generic
deepseek_v2. Previously it imported the SM100 module on any CUDAdevice, which is what broke the H100 CI job on [Perf][GLM-5.2] Blackwell decode optimizations #48597.
DeepseekV32ForCausalLMstill maps todeepseek_v2, and the MTP rewrite is gated onmodel_type == "glm_moe_dsa".This is the enabler for the rest of the series — until it lands, the other PRs in
the split are runtime no-ops.
Part of the #48597 re-split — see that PR for the tracker and merge order.
Benchmark
8×B300 TP8,
nvidia/GLM-5.2-NVFP4, MTP=5,VLLM_USE_V2_MODEL_RUNNER=1, fp8 KVcache, 8192 input / 1024 output tokens, concurrency 1, 64 prompts.
Performance vs main
main@48a077e4cfversus the same commit with all six branches of the splitapplied, each built and measured back-to-back on one node, 32 prompts at
concurrency 1,
--kv-cache-dtype fp8_e4m3throughout.mainmainThat is +21.1% output throughput on NVFP4 (TPOT -19.2%) and +10.2% on FP8
(TPOT -10.0%). The GSM8K spread is roughly one standard error at 500 questions
(SE ~= 0.01), so it shows no accuracy regression in either direction rather than a
real difference.
AI assistance (Claude) was used for the split and the benchmarks; every changed line has been reviewed.