Commit 7662ec9
authored
[CI] main2main vllm v0.26.0 (vllm-project#12859)
### What this PR does / why we need it?
main2main vllm upgrade to v0.26.0
---
#### 1. Version / Docker / Documentation (Version Alignment)
| File | Change Reason |
|------|---------------|
| `.github/vllm-release-tag.commit` | Update CI tracking tag: `v0.25.1`
→ `v0.26.0` |
| `Dockerfile` | `ARG VLLM_TAG=v0.25.1` → `v0.26.0` |
| `Dockerfile.310p` | `ARG VLLM_TAG=v0.25.1` → `v0.26.0` |
| `Dockerfile.310p.openEuler` | `ARG VLLM_TAG=v0.25.1` → `v0.26.0` |
| `Dockerfile.a3` | `ARG VLLM_TAG=v0.25.1` → `v0.26.0` |
| `Dockerfile.a3.openEuler` | `ARG VLLM_TAG=v0.25.1` → `v0.26.0` |
| `Dockerfile.a5` | `ARG VLLM_TAG=v0.25.1` → `v0.26.0` |
| `Dockerfile.a5.openEuler` | `ARG VLLM_TAG=v0.25.1` → `v0.26.0` |
| `Dockerfile.openEuler` | `ARG VLLM_TAG=v0.25.1` → `v0.26.0` |
| `README.md` | Update main branch description: "CI commitment for vLLM
v0.26.0 tag" |
| `README.zh.md` | Same update in Chinese README |
| `.gitleaks.toml` | Add allowlist for
`vllm_ascend/patch/worker/patch_qwen3_5.py` (prevent monkey-patch class
names from being flagged as secrets) |
---
#### 2. Test Code (Remove v0.25.1 Compatibility Branches)
| File | Change Reason |
|------|---------------|
|
`tests/e2e/nightly/single_node/ops/singlecard_ops/triton/test_fused_recurrent_gated_delta_rule.py`
| Drop `vllm_version_is("0.25.1")` branch; unify on
`vllm.third_party.flash_linear_attention.ops` import path |
|
`tests/e2e/nightly/single_node/ops/singlecard_ops/triton/test_fused_sigmoid_gating_delta_rule.py`
| Same as above; remove v0.25.1 legacy import branch |
| `tests/e2e/pull_request/one_card/model_runner_v2/test_basic.py` |
Remove `_SKIP_V025_MRV2_SPEC_DECODE` skip marker (MRV2 spec decode is
now available in v0.26.0) |
| `tests/ut/distributed/ascend_store/test_coordinator.py` |
`find_longest_cache_hit` test removes v0.25.1 2-tuple return check;
unify on 3-tuple assertion |
| `tests/ut/ops/test_gdn_attn_builder.py` | Drop v0.25.1
`vllm.model_executor.layers.fla.ops.index` compatibility branch |
| `tests/ut/ops/test_gdn_layerwise_kv.py` | `_run_gdn_forward` adapts to
v0.26.0 unified signature (remove `result is None` legacy branch) |
| `tests/ut/patch/test_hunyuan_vl_processor_compat.py` | Monkeypatch
simulated version switches from `0.25.1` to `0.26.0` |
| `tests/ut/test_compressed_prefix_cache.py` | `find_longest_cache_hit`
/ `_hybrid_coordinator` assertions unified to v0.26.0 3-tuple return
value |
| `tests/ut/worker/test_pcp_manager_v2.py` | Remove
`@pytest.mark.skipif(vllm_version_is("0.25.1"))` markers and conditional
`from vllm.v1.worker.gpu.pcp_manager import PCPManager` import |
---
#### 3. Core Scheduler / KV Cache (v0.26.0 API Adaptation)
| File | Change Reason |
|------|---------------|
| `vllm_ascend/core/recompute_scheduler.py` | ①
`_finish_recomputed_request` unified to list comprehension comparison
(v0.26.0 returns `Request` objects instead of tuples); ②
`get_computed_blocks` unpacking adds `shared_prefix_boundary` as 3rd
element; ③ `update_from_output` simplifies `num_in_flight_tokens`
deduction condition |
| `vllm_ascend/core/scheduler_profiling_chunk.py` |
`ProfilingChunkScheduler.schedule()` unifies `get_computed_blocks`
unpacking to 3-tuple |
| `vllm_ascend/core/single_type_kv_cache_manager.py` | ①
`get_num_blocks_to_allocate` branches merged; ② `find_longest_cache_hit`
uses `block_pool.hash_block_size`; ③ return value unified to 2-tuple; ④
`get_manager_for_kv_cache_spec` uses `max_in_flight_tokens` parameter |
---
#### 4. AscendStore (KV Transfer)
| File | Change Reason |
|------|---------------|
|
`vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store/coordinator.py`
| ① `block_hashes_for_spec` directly returns `block_hashes` (hash-size
resolution moved into manager); ② remove v0.25.1 `get_block_hashes` call
and import; ③ `_find_longest_cache_hit` removes v0.25.1 manual
hit_length calculation |
|
`vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store/pool_scheduler.py`
| `requested_hash_block_size =
vllm_config.cache_config.prefix_match_unit` (v0.25.1 used
`hash_block_size`) |
|
`vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store/pool_worker.py`
| Synced with above: `prefix_match_unit` replaces `hash_block_size` |
---
#### 5. Ops Module (Unify flash_linear_attention Import Path)
| File | Change Reason |
|------|---------------|
| `vllm_ascend/_310p/ops/fla/idex.py` | `prepare_lens`/`tensor_cache`
imported directly from `vllm.third_party.flash_linear_attention.ops`
(legacy `vllm.model_executor.layers.fla.ops` path deprecated) |
| `vllm_ascend/_310p/ops/fla/l2norm.py` | `tensor_cache` switched to
v0.26.0 new path |
| `vllm_ascend/ops/bailing_moe_linear_attn.py` | `layernorm_fn` switched
to `third_party.flash_linear_attention.ops.layernorm_guard` |
| `vllm_ascend/ops/gdn.py` | `l2norm_fwd` switched to new path |
| `vllm_ascend/ops/triton/fla/chunk.py` | `SUPPRESS_LEVEL` switched to
`third_party.flash_linear_attention.ops.utils` |
| `vllm_ascend/ops/vocab_parallel_embedding.py` | `_apply_head` directly
calls parent `super()._apply_head(...)`; remove
`lm_head.quant_method.apply` legacy branch |
---
#### 6. Patch Module (Compatibility Patch Cleanup)
| File | Change Reason |
|------|---------------|
| `vllm_ascend/patch/__init__.py` | Remove
`hunyuan_vl_processor_compat.py` patch documentation (v0.26.0 already
merged vLLM PR #47867) |
| `vllm_ascend/patch/hunyuan_vl_processor_compat.py` |
`vllm_version_is("0.25.1")` → `vllm_version_is("0.26.0")` (patch target
switch) |
| `vllm_ascend/patch/platform/patch_kv_cache_coordinator.py` | Multiple
sites unified to v0.26.0 behavior: `_select_kv_token_budget` returns
`max_in_flight_tokens`; `enable_partial_hash_hits` removes
pre-condition; `_get_block_hashes` returns bare `block_hashes` (remove
`BlockHashListWithBlockSize` wrapper); `find_longest_cache_hit` unified
to 3-tuple return; use `max_in_flight_tokens` parameter |
| `vllm_ascend/patch/platform/patch_mamba_manager.py` |
`AscendMambaManager` removes v0.25.1 hand-implemented mamba hit lookup;
unify to call upstream `super().find_longest_cache_hit(...)` |
| `vllm_ascend/patch/worker/__init__.py` | `patch_eagle_speculator` /
`patch_dflash_speculator` changed to unconditional enable |
| `vllm_ascend/patch/worker/patch_idex_310.py` | `fla_index` switched to
`third_party.flash_linear_attention.ops.index` |
| `vllm_ascend/patch/worker/patch_qwen3_5.py` | Remove
`_IS_VLLM_RELEASE` flag and v0.25.1 `Qwen3_5DecoderLayer.forward`
replacement branch; MTP condition simplified to unconditional;
`_ascend_all_gather_hidden_and_residual` patched unconditionally |
| `vllm_ascend/patch/worker/patch_triton.py` |
`fla_ops`/`fla_fused_recurrent`/`fla_layernorm_guard` all switched to
`third_party.flash_linear_attention.ops.*` path |
---
#### 7. Worker V2 (Model Runner V2 Adaptation)
| File | Change Reason |
|------|---------------|
| `vllm_ascend/__init__.py` | Adjust
`install_hunyuan_vl_processor_compat()` call order (v0.26.0 load order
changed: moved after `register_model`) |
| `vllm_ascend/worker/block_table.py` | Before
`_compute_slot_mapping_kernel` call, unconditionally set
`KV_CACHE_BLOCK_SIZE` and `BLOCKS_PER_KV_BLOCK` constants (enable vLLM
#40996 kernel parameters) |
| `vllm_ascend/worker/v2/attn_utils.py` | In `build_attn_metadata`,
`seq_lens_cpu_upper_bound is None` check removes `not
vllm_version_is("0.25.1")` pre-condition |
| `vllm_ascend/worker/v2/model_runner.py` | ① `sort_batch_req_ids` and
`maybe_build_ascend_pcp_manager` moved out of conditional block; ②
`prepare_inputs` unified to call `sort_batch_req_ids(num_tokens_per_req,
self.decode_query_len)` |
---
#### 8. Spec Decode (Multi-Step Decode / Draft Attn Metadata Signature
Adaptation)
| File | Change Reason |
|------|---------------|
| `vllm_ascend/worker/v2/sample/gumbel.py` | logits dtype adaptation:
v0.26+ no longer upcasts to FP32; `BLOCK_SIZE` reduced from `44032` to
`32768` (to fit Ascend A2/A3 UB 192 KB limit) |
| `vllm_ascend/worker/v2/spec_decode/autoregressive/speculator.py` |
`_multi_step_decode` and `_build_draft_attn_metadata` split into v0.26.0
/ else dual implementations (v0.26.0 drops `seq_lens_cpu_upper_bound` /
`step` parameters) |
| `vllm_ascend/worker/v2/spec_decode/dflash/aclgraph.py` | `__init__`
removes `**kwargs` forwarding; `capture()` simplifies call (v0.26.0
`causal` parameter moved from `__init__` into `capture()`) |
| `vllm_ascend/worker/v2/spec_decode/dflash/speculator.py` |
`_build_draft_attn_metadata` split into version-specific dual
implementations; `propose()` `input_batch` cache moved out of
conditional block |
| `vllm_ascend/worker/v2/spec_decode/dspark/speculator.py` | Same
pattern as dflash: dual implementations + unconditional `input_batch`
cache |
| `vllm_ascend/worker/v2/spec_decode/eagle/aclgraph.py` |
`create_forward_fn` differentiates lambda by v0.26.0: v0.26.0 drops
`seq_lens_cpu_upper_bound` parameter |
| `vllm_ascend/worker/v2/spec_decode/mtp/speculator.py` |
`_build_draft_attn_metadata` split into version-specific dual
implementations (v0.26.0 drops `seq_lens_cpu_upper_bound`/`step`) |
### Does this PR introduce _any_ user-facing change?
### How was this patch tested?
- vLLM version: v0.25.1
- vLLM main:
vllm-project/vllm@d02df74
Signed-off-by: hfadzxy <starmoon_zhang@163.com>1 parent e3bb5f5 commit 7662ec9
52 files changed
Lines changed: 395 additions & 569 deletions
File tree
- .github
- tests
- e2e
- nightly/single_node/ops/singlecard_ops/triton
- pull_request/one_card/model_runner_v2
- ut
- distributed/ascend_store
- ops
- patch
- worker
- vllm_ascend
- _310p/ops/fla
- core
- distributed/kv_transfer/kv_pool/ascend_store
- ops
- triton/fla
- patch
- platform
- worker
- worker
- v2
- sample
- spec_decode
- autoregressive
- dflash
- dspark
- eagle
- mtp
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
63 | 72 | | |
64 | 73 | | |
65 | 74 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
0 commit comments