Skip to content

[Misc] Main2Main v0.33.0 - #20627

Merged
weiguihua2 merged 9 commits into
vllm-project:mainfrom
zhao-stack:codex/main2main-v0.33.0
Nov 9, 2026
Merged

weiguihua2 merged 9 commits into
vllm-project:mainfrom
zhao-stack:codex/main2main-v0.33.0

Conversation

@zhao-stack

@zhao-stack zhao-stack commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

What this PR does / why we need it?

Upgrade vLLM release compatibility and Dockerfile defaults to v0.33.0 (4ba787ec9959e566d3b587a796dff07673324da5). The verified vLLM main pin remains 24420b7a341af37a9bc3186e6fc6062512e0aa58. The separate main-pin upgrade is in #21005.

The five signed-off release commits are rebased onto Ascend main 7ead678c715ccf292d19f6b2f2ff41c0fe0e4052:

  • 19e32a64e: release version guards, Dockerfile defaults, metadata and documentation.
  • 3708328d6: v0.33 CPU expectations and KV planner calls.
  • d0e83d582: Kimi fused output-gate compatibility.
  • 0362753e7: v0.33 DSpark sampling fixture.
  • 70c2b2be9: PCP tuple contract and DP sync fixtures.

The clean release history avoids replaying reverted main-pin changes. After the previous rebase, upstream #20361 changed adaptive verification and CI's live-main rebase conflicted in three files before tests. This rebase keeps upstream's capability-driven allocator, its legacy/Triton tests, and its 3/4-field allocation handling with admitted-draft propagation. The obsolete overlapping release hunks were removed; the other four release patches remain identical. No unrelated upstream feature fix, main-pin upgrade or benchmark threshold change is included.

Does this PR introduce any user-facing change?

The supported release baseline and Dockerfile defaults become vLLM v0.33.0. The verified main pin is unchanged. Release note: release_notes/fragments/20627.yaml.

How was this patch tested?

  • Current head: 70c2b2be95cd66808c88e46aae0bf1c98f951de0. E2E42000109512 has passed pre-commit, test selection and both CPU lanes; each CPU lane reports 16516 passed / 109 skipped, including all three allocator compatibility tests and successful rebase. Attempt 2 is now terminal success: 44/44 hardware shards passed, ci-gate passed, and 50 jobs succeeded / 8 skipped / 0 failed overall. Skipped jobs are not test passes.

  • Python AST parsing, Ruff lint and Ruff format checks pass for all 104 changed Python files. git diff --check passes and CI-style rebase onto the current base succeeds as a no-op.

  • Range-diff confirms the four subsequent release patches are identical. The first patch differs only by removal of the adaptive-verification hunks superseded by upstream. The allocator patch and its tests exactly match current upstream.

  • Existing adaptive-verification tests cover legacy allocator wrapping and preservation of the Triton allocator. All three allocator tests passed in both current-head CPU lanes; local Windows lacks the Torch runtime.

  • Full bash format.sh ci was attempted with bounded local initialization and stopped at actionlint setup; the task's own formatter process trees were cleaned. A complete local lint pass is not claimed.

  • Previous head 5f9371a39, E2E41996832071: pre-commit passed; both CPU lanes and test selection failed during rebase, before tests, with the three adaptive-verification conflicts repaired here. Those failures are not runtime test failures.

  • Historical head 6e4535561: CPU lanes each passed 16398 tests / 109 skips, and 43/44 hardware shards passed. Release A2 part7 failed before tests on the PyTorch ninja index HTTP503; those old-head results do not validate this head.

  • Attempt 1 main24420 A3 job127162106257 failed the Qwen DSpark GDN fixed-versus-plain comparison (prompt2/token19, logprob difference 0.1472 > 0.1378). On unchanged published head, the targeted attempt 2 job127250533233 passed the same file (2 tests), the full shard (10 passed / 1 skipped), and ci-gate127271942785 passed. No tolerance or source changes were made between attempts. The rerun was triggered by vllm-ascend-ci; this monitor only observed it. Runtime vLLM remains 0.1.dev1+g24420b7a3.empty; Ascend is 0.19.1rc2.dev3366+g3603d176e versus attempt 1 ...+g07b5dafcd, because CI rebases onto live main and produces a local detached commit. Exact rebased full SHA/tree, image digest and weight revision are not established. The first numerical failure's root cause remains unproven; rerun success does not by itself prove fluctuation or exclude every migration association. The release counterpart also passed the same two tests.

  • Follow-up fixes are limited to v0.33 migration regressions and rebase/restore operations. Other-code failures will be reported separately. Skipped or unexecuted coverage is not counted as passing.

  • Historical A2 performance, four-node Kimi DSpark, A5 GLM dtype and A5 DSV4 layout risks remain outside ordinary-CI closure. This repair did not post a new nightly comment or restart local hardware validation.

  • vLLM main: vllm-project/vllm@24420b7

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

👋 Hi! Thank you for contributing to the vLLM Ascend project. The following points will speed up your PR merge:‌‌

  • A PR should do only one thing, smaller PRs enable faster reviews.
  • Every PR should include unit tests and end-to-end tests ‌to ensure it works and is not broken by other future PRs.
  • Write the commit message by fulfilling the PR description to help reviewer and future developers understand.

If CI fails, you can run linting and testing checks locally according Contributing and Testing.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request upgrades the vLLM compatibility baseline to v0.33.0, ensuring the Ascend backend remains synchronized with upstream developments. The changes encompass widespread updates to Dockerfile configurations, CI release tags, and internal architectural adaptations. Key refactors include updating KV-cache planning, attention dispatch, and speculative decoding logic to match the v0.33.0/main interfaces, while simultaneously cleaning up legacy code paths to maintain a streamlined codebase.

Highlights

  • vLLM Compatibility Upgrade: Advanced the release compatibility baseline from vLLM v0.32.0 to v0.33.0, updating all associated Dockerfile defaults and CI release tags.
  • Architectural Refactoring: Updated KV-cache planning and attention dispatch mechanisms to align with v0.33.0/main interfaces, including the migration of planning helpers to kv_cache_planning.
  • Legacy Cleanup: Removed obsolete Medusa and MLP speculative decoding support and retired upstream-fixed backports no longer required in the v0.33.0 lane.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the vLLM Ascend integration to support v0.33.0, involving significant refactoring of KV-cache planning imports, model configuration updates (such as DeepseekV4), and the addition of priority-based preemption logic in schedulers. It also addresses various missing imports and type-checking issues across the codebase to ensure compatibility with the updated vLLM version. Both review comments provided identify actual missing imports that would cause runtime errors and should be addressed.

Comment thread vllm_ascend/models/glm5next/kda.py Resolved
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

1 similar comment
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

zhao-stack commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator Author

/nightly all --vllm-ref v0.33.0
nightly command triggered.

zhao-stack commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator Author

/nightly all --a3-560t --vllm-ref v0.33.0
nightly command triggered.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@zhao-stack
zhao-stack force-pushed the codex/main2main-v0.33.0 branch from 7434afe to 2cc1a84 Compare November 3, 2026 13:14

zhao-stack commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator Author

/nightly qwen3-30b-a3b-bf16-a2-performance,Kimi-K3-MRV2-A3 --vllm-ref v0.33.0
nightly command triggered.

@zhao-stack zhao-stack changed the title [Misc] Upgrade vLLM release compatibility to v0.33.0 [Misc] Main2Main v0.33.0 Nov 6, 2026
weiguihua2
weiguihua2 previously approved these changes Nov 6, 2026
@zhao-stack

zhao-stack commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator Author

/rerun
[Bot]: rerun completed.

Rerun (failed jobs only):

  • E2E

2 similar comments
@zhao-stack

zhao-stack commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator Author

/rerun
[Bot]: rerun completed.

Rerun (failed jobs only):

  • E2E

@zhao-stack

zhao-stack commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator Author

/rerun
[Bot]: rerun completed.

Rerun (failed jobs only):

  • E2E

@DavidJiang9 DavidJiang9 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@zhao-stack
zhao-stack force-pushed the codex/main2main-v0.33.0 branch from 06f0ad4 to c47b696 Compare November 6, 2026 13:18
Audit every 0.32.0 guard against v0.33.0 (4ba787ec) and the fixed main pin (24420b7a). Remove obsolete branches and the upstream-fixed MM normalization backport; retain explicit 0.33/main ABI differences. Update Dockerfile defaults, CI release pin, documentation and matching tests.

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Keep release-specific Kimi fused-gate coverage and parameter-rebinding assertions: v0.33 lacks the main-only own-storage behavior. Pass the builder to Qwen4 admission tests to match both supported upstream planner APIs.

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
The AMD Kimi attention inherited by Ascend already constructs KimiK3MergedQKVGateLinear in v0.33. Remove the obsolete release-only two-shard path so preprocessing peels and applies the gate, disables incompatible MLAPO, and preserves the KV shard boundary. Enable the fused-layout regressions for both supported versions.

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Use the shared PCP input-buffer tuple contract and update newly merged DP sync fixtures to the v0.33 dataclass boundary.

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
vLLM v0.33 trims DP dummy draft requests while preserving the padded
target InputBatch. Scope that effective count around drafting and use it
for sequence/query metadata and initial DCP preparation. Preserve the
target batch and restore the count on exit; reject invalid graph capacity.

Local production-method CPU UT reproduced the 32-to-19 mismatch before
the fix. Afterward, 50 tests passed against each supported upstream
metadata implementation. Forward/NPU boundaries were mocked; full CPU
imports and NPU E2E remain unverified. Test evidence stays outside this
commit as requested.

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Initialize the scoped draft metadata request count as int | None so mypy accepts restoring its absent value. This fixes the Python 3.10, 3.11 and 3.12 pre-commit assignment error without changing draft request-count behavior.

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Record the tiling dependency and why replay metadata rebuilding currently needs the effective draft request count.

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
@zhao-stack
zhao-stack force-pushed the codex/main2main-v0.33.0 branch from c47b696 to 72af94a Compare November 9, 2026 01:59

zhao-stack commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator Author

/nightly Kimi-K3-MRV2-A3 --vllm-ref v0.33.0
nightly command triggered.

Provide num_reqs in the PCP synchronization fixture to match InputBatch's required fields after draft metadata request count alignment. Preserve all parameter combinations and assertions.

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
@zhao-stack

zhao-stack commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator Author

/rerun
[Bot]: rerun completed.

Rerun (failed jobs only):

  • E2E

@weiguihua2
weiguihua2 merged commit 760d7ec into vllm-project:main Nov 9, 2026
105 of 117 checks passed
ningjingbengxiaohai pushed a commit that referenced this pull request Nov 10, 2026
### What this PR does / why we need it?

Fix a mixed-precision weight-loading regression exposed by the vLLM 0.33
Kimi MLA gate fusion.

Upstream AMD Kimi now packs `q_a_proj`, `kv_a_proj_with_mqa` and
`g_proj` into `KimiK3MergedQKVGateLinear`. Ascend's ModelSlim mapping
still describes only the first two shards. For quantized Q/KV with a
FLOAT gate, the fused layer therefore allocates INT8 storage for all
three shards. The real upstream weight loader silently casts BF16 gate
weights into INT8, while the gate's quantization scale/offset shards
have no checkpoint values.

The shape fix in
[d0e83d5](d0e83d5),
merged with #20627, corrected output splitting but did not cover this
allocation/loading mismatch.

- Keep differently quantized MLA output gates separate from the
replicated Q/KV projection.
- Load standalone verifier and MTP gate parameters before the upstream
fused-shard remapping, preserving TP slicing, scale loading and
loaded-name tracking.
- Validate all three quantization descriptions only for actual
three-shard projections. Preserve all-FLOAT/uniform-quant fusion,
nongated draft projections and existing KDA mappings.

### Does this PR introduce _any_ user-facing change?

Yes. ModelSlim Kimi checkpoints with mixed MLA projection/gate precision
retain the gate's checkpoint dtype and values instead of silently
corrupting them.

The public [Eco-Tech/Kimi-K3-w4a8
description](https://modelscope.cn/models/Eco-Tech/Kimi-K3-w4a8/resolve/master/quant_model_description.json)
has W8A8_DYNAMIC Q/KV and FLOAT gate weights in MLA layer 11. The
metadata response was last modified on 2026-08-28. Tiny synthetic
weights reproduce that real precision layout; no model weights were
downloaded.

Related nightly evidence:
- [Previous vLLM 0.32
case](https://github.com/vllm-project/vllm-ascend/actions/runs/42490093558/job/128919271821):
GPQA 93.33%, completed.
- [vLLM 0.33
case](https://github.com/vllm-project/vllm-ascend/actions/runs/42635278737/job/129224636495):
hit the 120-minute limit while generating. Both report driver 25.5.2 and
the same testcase configuration. The GPQA-window accepted/drafted totals
fall from 91,417/410,732 (22.26%) to 20,455/1,335,936 (1.53%).

This PR fixes a demonstrated code defect. The nightly's local checkpoint
revision was not recorded, and hardware recovery of acceptance, accuracy
and runtime has not been established. The defect is not claimed to be
the sole cause of that timeout.

### How was this patch tested?

- Real vLLM 0.33 projection construction and checkpoint loading on CPU:
before the fix, BF16 gate value 0.25 silently becomes INT8 zero and gate
scale/offset sentinels remain unfilled. The new regression fails on the
original code.
- Final related suite: **646 passed**, 14 warnings, using vLLM 0.33 /
PyTorch 2.10.0+cpu.
- Covers TP1, TP2/rank1, TP16/rank15, replicated Q/KV weight/scales, TP
gate weight/scales, floating and quantized standalone gates, uniform
fusion, absent/conflicting metadata, bare keys, loader kwargs, MTP
checkpoint namespaces, nongated drafts, existing Kimi/DSpark/EPLB/SP and
MLA behavior.
- Relevant upstream projection/model/loader ASTs are identical between
v0.33 `4ba787ec` and the supported main pin `24420b7a`. This is a source
compatibility check, not a second runtime test lane.
- Full `bash format.sh ci` and `git diff --check`: passed.
- No NPU is available locally. Fixed-checkpoint NPU eager/capture,
TP/SP, DSpark acceptance, GPQA and runtime regression remain required
before merge. No nightly comment trigger has been sent.

CPU suite command (Python 3.12, vLLM v0.33.0, PyTorch 2.10.0+cpu,
repository NPU mocks):

```bash
TORCH_DEVICE_BACKEND_AUTOLOAD=0 PYTHONDONTWRITEBYTECODE=1 PYTHONPATH="$PWD" \
python -m pytest -q \
  tests/ut/models/test_kimi_k3_mla_quantization.py \
  tests/ut/models/test_kimi_k3_mtp_gate_loading.py \
  tests/ut/models/test_kimi_k3_adapter.py \
  tests/ut/models/test_kimi_k3_dense_sp.py \
  tests/ut/models/test_kimi_k3_dspark_weights.py \
  tests/ut/models/test_kimi_k3_eplb.py \
  tests/ut/models/test_kimi_k3_pp_sp.py \
  tests/ut/quantization/configs/test_modelslim_config.py \
  tests/ut/attention/test_mla_v1.py \
  --disable-warnings --maxfail=1
```

Release note: `release_notes/fragments/21387.yaml`.

### Checklist

- [x] **Boundary / edge-case coverage**
- [x] **Regression test**
- [x] **Error / failure path coverage**
- [x] **Meaningful & reliable tests**
- [ ] **Performance impact**: NPU validation remains pending.

- vLLM main:
vllm-project/vllm@24420b7

---------

Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants