Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/vllm-release-tag.commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v0.32.0
v0.33.0
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ RUN python3 -m pip install 'modelscope<1.38' 'ray>=2.47.1,<=2.48.0' 'protobuf>3.

# Install vLLM
ARG VLLM_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_TAG=v0.32.0
ARG VLLM_TAG=v0.33.0
ARG VLLM_COMMIT=""
ARG PYTORCH_INDEX_URL="https://download.pytorch.org/whl/cpu/"
RUN if [ -n "$VLLM_COMMIT" ]; then \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.310p
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ RUN python3 -m pip install 'modelscope<1.38' 'ray>=2.47.1,<=2.48.0' 'protobuf>3.

# Install vLLM
ARG VLLM_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_TAG=v0.32.0
ARG VLLM_TAG=v0.33.0
ARG VLLM_COMMIT=""
ARG PYTORCH_INDEX_URL="https://download.pytorch.org/whl/cpu/"
RUN if [ -n "$VLLM_COMMIT" ]; then \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.310p.openEuler
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ RUN python3 -m pip install 'modelscope<1.38' 'ray>=2.47.1,<=2.48.0' 'protobuf>3.

# Install vLLM
ARG VLLM_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_TAG=v0.32.0
ARG VLLM_TAG=v0.33.0
ARG VLLM_COMMIT=""
ARG PYTORCH_INDEX_URL="https://download.pytorch.org/whl/cpu/"
RUN if [ -n "$VLLM_COMMIT" ]; then \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.a3
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ RUN python3 -m pip install 'modelscope<1.38' 'ray>=2.47.1,<=2.48.0' 'protobuf>3.

# Install vLLM
ARG VLLM_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_TAG=v0.32.0
ARG VLLM_TAG=v0.33.0
ARG VLLM_COMMIT=""
ARG PYTORCH_INDEX_URL="https://download.pytorch.org/whl/cpu/"
RUN if [ -n "$VLLM_COMMIT" ]; then \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.a3.openEuler
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ RUN python3 -m pip install 'modelscope<1.38' 'ray>=2.47.1,<=2.48.0' 'protobuf>3.

# Install vLLM
ARG VLLM_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_TAG=v0.32.0
ARG VLLM_TAG=v0.33.0
ARG VLLM_COMMIT=""
ARG PYTORCH_INDEX_URL="https://download.pytorch.org/whl/cpu/"
RUN if [ -n "$VLLM_COMMIT" ]; then \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.a5
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ RUN python3 -m pip install 'modelscope<1.38' 'ray>=2.47.1,<=2.48.0' 'protobuf>3.

# Install vLLM
ARG VLLM_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_TAG=v0.32.0
ARG VLLM_TAG=v0.33.0
ARG VLLM_COMMIT=""
ARG PYTORCH_INDEX_URL="https://download.pytorch.org/whl/cpu/"
ARG CARGO_BUILD_JOBS=16
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.a5.openEuler
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ RUN python3 -m pip install 'modelscope<1.38' 'ray>=2.47.1,<=2.48.0' 'protobuf>3.

# Install vLLM
ARG VLLM_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_TAG=v0.32.0
ARG VLLM_TAG=v0.33.0
ARG VLLM_COMMIT=""
ARG PYTORCH_INDEX_URL="https://download.pytorch.org/whl/cpu/"
ARG CARGO_BUILD_JOBS=16
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.openEuler
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ RUN python3 -m pip install 'modelscope<1.38' 'ray>=2.47.1,<=2.48.0' 'protobuf>3.

# Install vLLM
ARG VLLM_REPO=https://github.com/vllm-project/vllm.git
ARG VLLM_TAG=v0.32.0
ARG VLLM_TAG=v0.33.0
ARG VLLM_COMMIT=""
ARG PYTORCH_INDEX_URL="https://download.pytorch.org/whl/cpu/"
RUN if [ -n "$VLLM_COMMIT" ]; then \
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Below are the maintained branches:

| Branch | Status | Note |
|------------------|--------------|--------------------------------------|
| main | Maintained | CI commitment for vLLM main branch and vLLM v0.32.0 tag |
| main | Maintained | CI commitment for vLLM main branch and vLLM v0.33.0 tag |
| releases/v0.13.0 | Maintained | Only bug fixes are allowed, and no new release tags anymore. |
| releases/v0.18.0 | Maintained | CI commitment for vLLM 0.18.0 version |
| releases/v0.23.0 | Maintained | CI commitment for vLLM 0.23.0 version |
Expand Down
2 changes: 1 addition & 1 deletion README.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ vllm-ascend有主干分支和开发分支。

| 分支 | 状态 | 备注 |
|------------------|--------------|----------------------|
| main | Maintained | 基于vLLM main分支和vLLM最新版本(v0.32.0)CI看护 |
| main | Maintained | 基于vLLM main分支和vLLM最新版本(v0.33.0)CI看护 |
| releases/v0.13.0 | Maintained | 只允许Bug修复,不会再发布新版本 |
| releases/v0.18.0 | Maintained | 基于vLLM v0.18.0版本CI看护 |
| releases/v0.23.0 | Maintained | 基于vLLM v0.23.0版本CI看护 |
Expand Down
4 changes: 4 additions & 0 deletions release_notes/fragments/20627.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pr: 20627
entries:
- category: dependency
text: Updated vLLM release compatibility and Dockerfile defaults to v0.33.0 while retaining support for the verified vLLM main baseline.
19 changes: 5 additions & 14 deletions tests/e2e/common/rlhf/weight_transfer/weight_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
from vllm.distributed.weight_transfer.base import ParamMeta, WeightSource

from tests.e2e.common.rlhf.weight_transfer.case import WeightUpdateModelCase
from vllm_ascend.utils import vllm_version_is


def expand_fused_expert_params(name: str, shape: tuple[int, ...]) -> list[tuple[str, tuple[int, ...]]]:
Expand Down Expand Up @@ -82,11 +81,6 @@ def _apply_hf_overrides(config, overrides: dict[str, Any]) -> None:
FIXED_WEIGHT_SEED = 20260915


def _source_metadata(func):
"""vLLM main (#63256) requires a cached property; v0.32.0 still calls it."""
return func if vllm_version_is("0.32.0") else cached_property(func)


class FixedRandomWeightSource(WeightSource):
"""Generate every reduced-model parameter deterministically on demand.

Expand Down Expand Up @@ -190,7 +184,7 @@ def _make_tensor(self, name: str, shape: tuple[int, ...], dtype: torch.dtype = t
return tensor.uniform_(0.9, 1.1)
return tensor.uniform_(-0.02, 0.02)

@_source_metadata
@cached_property
def metadata(self) -> list[ParamMeta]:
return [ParamMeta(name, dtype, shape) for name, shape, dtype in self._parameters]

Expand All @@ -199,11 +193,9 @@ def __iter__(self):
for name, shape, dtype in self._parameters:
yield name, self._make_tensor(name, shape, dtype)

if not vllm_version_is("0.32.0"):

def iter_full(self) -> Iterator[tuple[str, torch.Tensor]]:
"""vLLM main drives updates through `iter_full()` instead of `__iter__`."""
yield from self.__iter__()
def iter_full(self) -> Iterator[tuple[str, torch.Tensor]]:
"""vLLM drives updates through `iter_full()`."""
yield from self.__iter__()

@property
def case_id(self) -> str:
Expand Down Expand Up @@ -247,8 +239,7 @@ def packed_buffer_size_for(source: FixedRandomWeightSource) -> int:
raises ``ValueError: Tensor ... exceeds buffer_size_bytes``. Keep the 1 GiB
floor and add 128 MiB of headroom above the largest tensor.
"""
# `metadata` is a method on v0.32.0 and a cached property on main.
metadata = source.metadata() if vllm_version_is("0.32.0") else source.metadata
metadata = source.metadata
max_tensor_bytes = max(math.prod(meta.shape) * meta.dtype.itemsize for meta in metadata)
return max(max_tensor_bytes + 128 * 2**20, 2**30)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
# AttributeError. Setting VLLM_VERSION makes ``vllm_version_is`` use it instead
# of ``vllm.__version__``. This must happen before the first ``vllm_ascend``
# import below, and it must not override an explicitly exported value.
os.environ.setdefault("VLLM_VERSION", "0.32.0")
os.environ.setdefault("VLLM_VERSION", "0.33.0")

from vllm_ascend.device.device_config import get_ascend_device_type
from vllm_ascend.device.hardware import AscendDeviceType
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e/pull_request/one_card/test_gumbel_sampling.py
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@ def test_dspark_uses_ascend_gumbel(self):
speculator.temperature = torch.tensor([0.5, 1.5], device=DEVICE)
speculator.seeds = torch.tensor([3, 7], dtype=torch.int64, device=DEVICE)
speculator._step_cols = torch.arange(2, dtype=torch.int32, device=DEVICE)
if vllm_version_is("0.32.0"):
if vllm_version_is("0.33.0"):
# The release tree keeps the raw per-step draft-logits tensor.
speculator.draft_logits = torch.zeros(2, 2, 1031, device=DEVICE)
draft_logits = speculator.draft_logits
Expand Down
2 changes: 1 addition & 1 deletion tests/ut/attention/test_batch_invariance_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
vLLM #60271 ("Check batch-invariance support for every attention backend") added
a hard check in ``vllm/v1/worker/gpu/attn_utils.init_attn_backend`` on main:
``VLLM_BATCH_INVARIANT`` mode now rejects any attention backend whose
``supports_batch_invariance()`` returns False. Both v0.32.0 and verified main
``supports_batch_invariance()`` returns False. Both v0.33.0 and verified main
enforce this check, so Ascend advertises support in both lanes.
"""

Expand Down
2 changes: 1 addition & 1 deletion tests/ut/attention/test_flash_attn.py
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ def test_only_undersized_draft_swa_pages_drop_inherited_padding(
expected_padding = None if recover else original.page_size_padded
assert spec.page_size_bytes == (expected_padding or natural_page)
assert spec.page_size_padded == expected_padding
# v0.32.0 has no draft marker; check propagation when upstream supports it.
# Both supported versions propagate the draft marker.
if hasattr(original, "is_draft"):
assert spec.is_draft is is_draft
assert config.cache_config.skip_page_size_padded == padding
Expand Down
15 changes: 4 additions & 11 deletions tests/ut/attention/test_gqa_dcp_split.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
)
from vllm_ascend.attention.context_parallel.common_cp import CPKVScope, use_history_current_split_decode
from vllm_ascend.compilation.updatable_graph import ContextSource, GraphUpdateTask, SharedSource, UpdatableGraph
from vllm_ascend.utils import vllm_version_is
from vllm_ascend.worker.v2.spec_decode.target_dependent_ar.speculator import AscendTargetDependentARSpeculator


Expand Down Expand Up @@ -311,11 +310,8 @@ def merge(*args, **kwargs):
def test_v2_draft_steps_update_history_and_current_independently(interleave):
speculator = object.__new__(AscendTargetDependentARSpeculator)
speculator.attn_architecture = "GQA"
if vllm_version_is("0.32.0"):
speculator.max_model_len = 32
else:
# vLLM main exposes max_model_len as a read-only view of vllm_config.
speculator.vllm_config = SimpleNamespace(model_config=SimpleNamespace(max_model_len=32))
# vLLM main exposes max_model_len as a read-only view of vllm_config.
speculator.vllm_config = SimpleNamespace(model_config=SimpleNamespace(max_model_len=32))
speculator.use_dcp = True
prepare_local = MagicMock(
side_effect=lambda lengths: get_dcp_local_seq_lens(
Expand Down Expand Up @@ -358,11 +354,8 @@ def test_v2_graph_shared_source_preserves_steps_layers_and_padding(is_prefill, c
)
speculator.input_batch = SimpleNamespace(num_reqs=2, seq_lens_np=[13, 31])
speculator.num_speculative_steps = 3
if vllm_version_is("0.32.0"):
speculator.max_model_len = 32
else:
# vLLM main exposes max_model_len as a read-only view of vllm_config.
speculator.vllm_config = SimpleNamespace(model_config=SimpleNamespace(max_model_len=32))
# vLLM main exposes max_model_len as a read-only view of vllm_config.
speculator.vllm_config = SimpleNamespace(model_config=SimpleNamespace(max_model_len=32))
query = (4, 2, 1) if is_prefill else (1, 1, 1)
steps = [
{
Expand Down
20 changes: 5 additions & 15 deletions tests/ut/attention/test_mla_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -1947,9 +1947,8 @@ def test_qkv_a_fused_output_gate_disables_mlapo(self, mock_get_current_vllm_conf
"""Kimi-K3 fuses its gate as a third QKV-A shard; MLAPO cannot carry it."""
mock_get_current_vllm_config.return_value = self.impl.vllm_config
self.impl.fused_qkv_a_proj.output_sizes = [64, 32, 128]
# Only vLLM main builds the three-shard QKV-A-gate projection; release
# v0.32.0 keeps a separate gate and a two-shard projection.
gate_fused = not vllm_version_is("0.32.0")
# Both supported Kimi AMD implementations use the three-shard layout.
gate_fused = True

impl = self._rebuild_impl()

Expand Down Expand Up @@ -2807,13 +2806,8 @@ def test_process_weights_after_loading_refreshes_prolog_v3_weights(self, mock_fo
def test_process_weights_after_loading_rebinds_incompatible_value(self, mock_format_cast):
"""An incompatible reload must rebind instead of raising from ``copy_``.

``replace_parameter(..., prefer_copy=True)`` reuses the stored storage
only while shape, dtype and device still match. The hand-rolled
``copy_`` it replaced was unconditional, so a re-derived value that
stopped being compatible aborted the whole weight-update transaction
with a ``RuntimeError``. That failure mode is the only behaviour this
change alters, so it is the part of the contract the unit tests have to
pin down.
v0.33.0 rebinds an incompatible value; main can copy a smaller value
into the parameter's existing storage. Both must accept the new shape.
"""
layer = MagicMock(spec=LinearBase)
layer.input_size_per_partition = 10
Expand Down Expand Up @@ -2843,7 +2837,7 @@ def test_process_weights_after_loading_rebinds_incompatible_value(self, mock_for

self.impl.process_weights_after_loading(torch.bfloat16)

if vllm_version_is("0.32.0"):
if vllm_version_is("0.33.0"):
# A re-derived value that no longer fits rebinds the parameter.
self.assertNotEqual(self.impl.W_UV.data_ptr(), w_uv_ptr)
else:
Expand Down Expand Up @@ -3695,10 +3689,6 @@ def test_split_fused_qkv_lora_plain_layout_has_no_gate():
torch.testing.assert_close(kv_no_split, qkv_lora[:, 4:])


@pytest.mark.skipif(
vllm_version_is("0.32.0"),
reason="gate-fused QKV-A layout is vLLM main only",
)
def test_split_fused_qkv_lora_peels_kimi_output_gate():
"""A gate-fused layout returns the trailing shard separately from q/kv."""
qkv_lora = torch.arange(15, dtype=torch.float32).reshape(1, 15)
Expand Down
11 changes: 3 additions & 8 deletions tests/ut/attention/test_sfa_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -1293,13 +1293,8 @@ def test_process_weights_after_loading_rebinds_incompatible_value(
):
"""An incompatible reload must rebind instead of raising from ``copy_``.

``replace_parameter(..., prefer_copy=True)`` reuses the stored storage
only while shape, dtype and device still match. The hand-rolled
``copy_`` it replaced was unconditional, so a re-derived value that
stopped being compatible aborted the whole weight-update transaction
with a ``RuntimeError``. That failure mode is the only behaviour this
change alters, so it is the part of the contract the unit tests have to
pin down.
v0.33.0 rebinds an incompatible value; main can copy a smaller value
into the parameter's existing storage. Both must accept the new shape.
"""
layer = self._setup_kv_b_proj()
mock_format_cast.return_value = layer.weight
Expand All @@ -1320,7 +1315,7 @@ def test_process_weights_after_loading_rebinds_incompatible_value(

self.impl.process_weights_after_loading(torch.bfloat16)

if vllm_version_is("0.32.0"):
if vllm_version_is("0.33.0"):
# A re-derived value that no longer fits rebinds the parameter.
self.assertNotEqual(self.impl.W_UV.data_ptr(), w_uv_ptr)
else:
Expand Down
12 changes: 4 additions & 8 deletions tests/ut/core/test_kv_cache_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
import pytest
import torch
from vllm.v1.core.block_pool import BlockPool

# vLLM #61183 moved `is_kv_cache_spec_uniform` to `kv_cache_planning` on main;
# the v0.33.0 lane still ships it in `kv_cache_utils`.
from vllm.v1.core.kv_cache_planning import is_kv_cache_spec_uniform
from vllm.v1.core.single_type_kv_cache_manager import CircularBufferManager, register_all_kvcache_specs
from vllm.v1.kv_cache_interface import (
CircularBufferSpec,
Expand All @@ -28,14 +32,6 @@
supports_bounded_replay,
supports_component_major_mla_pd,
)
from vllm_ascend.utils import vllm_version_is

# vLLM #61183 moved `is_kv_cache_spec_uniform` to `kv_cache_planning` on main;
# the v0.32.0 lane still ships it in `kv_cache_utils`.
if vllm_version_is("0.32.0"):
from vllm.v1.core.kv_cache_utils import is_kv_cache_spec_uniform
else:
from vllm.v1.core.kv_cache_planning import is_kv_cache_spec_uniform


def _mla_spec():
Expand Down
12 changes: 5 additions & 7 deletions tests/ut/distributed/ascend_store/test_request_lifecycle.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
KVCacheStoreRecvingThread,
KVCacheStoreSendingThread,
)
from vllm_ascend.utils import vllm_version_is


def aligned_buffer(size):
Expand Down Expand Up @@ -350,11 +349,10 @@ def run_request(req_id, tokens, expected_hit, expected_local=0):
scheduler.update_from_output(output, result)
if drafts:
expected_computed = computed_before_update - len(drafts) + accepted
if not vllm_version_is("0.32.0"):
# vLLM main trims ``num_computed_tokens`` to cover only the
# tokens actually kept when a request stops mid token-list.
appended = request.num_output_tokens - output_tokens_before_update
expected_computed -= (accepted + 1) - appended
# vLLM main trims ``num_computed_tokens`` to cover only the
# tokens actually kept when a request stops mid token-list.
appended = request.num_output_tokens - output_tokens_before_update
expected_computed -= (accepted + 1) - appended
assert request.num_computed_tokens == expected_computed
if speculative_method:
scheduler.update_draft_token_ids(
Expand Down Expand Up @@ -434,7 +432,7 @@ def run_request(req_id, tokens, expected_hit, expected_local=0):
# pure full-attention dspark layout sees the doubled local prefix hit.
only_full_attention = isinstance(plan.kv_cache_groups[0].kv_cache_spec, FullAttentionSpec)
mixed_local = 128
if not vllm_version_is("0.32.0") and speculative_method == "dspark" and only_full_attention:
if speculative_method == "dspark" and only_full_attention:
mixed_local = 256
run_request("mixed-local-remote", list(range(513)), 512, expected_local=mixed_local)
assert scheduler.reset_prefix_cache()
Expand Down
22 changes: 8 additions & 14 deletions tests/ut/distributed/kv_transfer/kv_p2p/test_mooncake_connector.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@
import zmq
from vllm.config import KVTransferConfig
from vllm.utils.network_utils import make_zmq_path

# vLLM #61183 moved these KV-cache planning helpers to `kv_cache_planning` on
# main; the v0.33.0 lane still ships them in `kv_cache_utils`.
from vllm.v1.core.kv_cache_planning import (
get_kv_cache_config_from_groups,
is_kv_cache_spec_uniform,
)
from vllm.v1.kv_cache_interface import (
FullAttentionSpec,
KVCacheGroupSpec,
Expand Down Expand Up @@ -52,20 +59,7 @@
transfer_groups_need_independent_block_ids,
zmq_ctx,
)
from vllm_ascend.utils import get_kv_cache_tensor_layers, vllm_version_is

# vLLM #61183 moved these KV-cache planning helpers to `kv_cache_planning` on
# main; the v0.32.0 lane still ships them in `kv_cache_utils`.
if vllm_version_is("0.32.0"):
from vllm.v1.core.kv_cache_utils import (
get_kv_cache_config_from_groups,
is_kv_cache_spec_uniform,
)
else:
from vllm.v1.core.kv_cache_planning import (
get_kv_cache_config_from_groups,
is_kv_cache_spec_uniform,
)
from vllm_ascend.utils import get_kv_cache_tensor_layers

GET_META_MSG = b"get_meta_msg"
DONE_RECVING_MSG = b"done_recving_msg"
Expand Down
Loading
Loading