diff --git a/docker/Dockerfile.npu b/docker/Dockerfile.npu index f83cc512a..007b379ed 100644 --- a/docker/Dockerfile.npu +++ b/docker/Dockerfile.npu @@ -1,5 +1,5 @@ ARG VLLM_ASCEND_IMAGE=quay.io/atlas-ci/vllm-ascend -ARG VLLM_ASCEND_VERSION=v0.29.0 +ARG VLLM_ASCEND_VERSION=v0.30.0 ARG VLLM_ASCEND_DEVICE_SUFFIX= FROM ${VLLM_ASCEND_IMAGE}:${VLLM_ASCEND_VERSION}${VLLM_ASCEND_DEVICE_SUFFIX} diff --git a/docker/Dockerfile.npu.ci b/docker/Dockerfile.npu.ci index a25155111..680ca9b8f 100644 --- a/docker/Dockerfile.npu.ci +++ b/docker/Dockerfile.npu.ci @@ -1,5 +1,5 @@ ARG VLLM_ASCEND_IMAGE=quay.io/atlas-ci/vllm-ascend -ARG VLLM_ASCEND_VERSION=v0.29.0 +ARG VLLM_ASCEND_VERSION=v0.30.0 ARG VLLM_ASCEND_DEVICE_SUFFIX= FROM ${VLLM_ASCEND_IMAGE}:${VLLM_ASCEND_VERSION}${VLLM_ASCEND_DEVICE_SUFFIX} diff --git a/docs/getting_started/installation/npu/npu.inc.md b/docs/getting_started/installation/npu/npu.inc.md index 21127caf2..021c59638 100644 --- a/docs/getting_started/installation/npu/npu.inc.md +++ b/docs/getting_started/installation/npu/npu.inc.md @@ -10,25 +10,25 @@ The recommended way to use vLLM-Omni on NPU is through the vLLM-Ascend pre-built === "A2" ```bash - export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.29.0 + export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.30.0 ``` === "A3" ```bash - export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.29.0-a3 + export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.30.0-a3 ``` === "A5" ```bash - export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.29.0-a5 + export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.30.0-a5 ``` === "310P (Experimental)" ```bash - export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.29.0-310p + export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.30.0-310p ``` ```bash @@ -53,7 +53,7 @@ docker run --rm \ # Inside the container, install vLLM-Omni from source cd /vllm-workspace -git clone -b v0.29.0rc1 https://github.com/vllm-project/vllm-omni.git +git clone -b v0.30.0rc1 https://github.com/vllm-project/vllm-omni.git cd vllm-omni pip install -v -e . --no-build-isolation # or VLLM_OMNI_TARGET_DEVICE=npu pip install -v -e . @@ -71,10 +71,10 @@ We are keeping [issue #886](https://github.com/vllm-project/vllm-omni/issues/886 # --8<-- [start:installation-main] -You can also install vLLM-Omni from the latest main branch if you want to use the latest features or bug fixes. Use the aligned vLLM-Ascend v0.29.0 image described above, and check [issue #886](https://github.com/vllm-project/vllm-omni/issues/886) for the status of the latest vLLM-Omni commit on NPU. +You can also install vLLM-Omni from the latest main branch if you want to use the latest features or bug fixes. Use the aligned vLLM-Ascend v0.30.0 image described above, and check [issue #886](https://github.com/vllm-project/vllm-omni/issues/886) for the status of the latest vLLM-Omni commit on NPU. ```bash -# Inside the vLLM-Ascend v0.29.0 container, install vLLM-Omni from main +# Inside the vLLM-Ascend v0.30.0 container, install vLLM-Omni from main cd /vllm-workspace git clone https://github.com/vllm-project/vllm-omni.git cd vllm-omni @@ -103,7 +103,7 @@ Here's an example deployment command that has been verified on 4 x NPUs: === "A2" ```bash - export IMAGE=quay.io/ascend/vllm-omni:v0.29.0 + export IMAGE=quay.io/ascend/vllm-omni:v0.30.0 docker run --rm \ --name vllm-omni-a2 \ --shm-size=64g \ @@ -127,7 +127,7 @@ Here's an example deployment command that has been verified on 4 x NPUs: === "A3" ```bash - export IMAGE=quay.io/ascend/vllm-omni:v0.29.0-a3 + export IMAGE=quay.io/ascend/vllm-omni:v0.30.0-a3 docker run --rm \ --name vllm-omni-a3 \ --shm-size=64g \ @@ -151,7 +151,7 @@ Here's an example deployment command that has been verified on 4 x NPUs: === "A5" ```bash - export IMAGE=quay.io/ascend/vllm-omni:v0.29.0-a5 + export IMAGE=quay.io/ascend/vllm-omni:v0.30.0-a5 docker run --rm \ --name vllm-omni-a5 \ --shm-size=64g \ @@ -175,7 +175,7 @@ Here's an example deployment command that has been verified on 4 x NPUs: === "310P (Experimental)" ```bash - export IMAGE=quay.io/ascend/vllm-omni:v0.29.0-310p + export IMAGE=quay.io/ascend/vllm-omni:v0.30.0-310p docker run --rm \ --name vllm-omni-310p \ --shm-size=64g \ diff --git a/vllm_omni/platforms/npu/worker/npu_ar_model_runner.py b/vllm_omni/platforms/npu/worker/npu_ar_model_runner.py index aa01b7a8e..ee5407065 100644 --- a/vllm_omni/platforms/npu/worker/npu_ar_model_runner.py +++ b/vllm_omni/platforms/npu/worker/npu_ar_model_runner.py @@ -544,7 +544,7 @@ class NPUARModelRunner(OmniNPUModelRunner, OmniConnectorModelRunnerMixin, Duplex self.input_batch, self.requests, self.compilation_config.static_forward_context, - self.model.get_mamba_state_copy_func(), + self._get_mamba_state_copy_funcs(), preprocess_bufs, ) # preprocess_mamba resets num_accepted_tokens_cpu to 1 diff --git a/vllm_omni/platforms/npu/worker/npu_generation_model_runner.py b/vllm_omni/platforms/npu/worker/npu_generation_model_runner.py index d796dec8e..bc486e4b5 100644 --- a/vllm_omni/platforms/npu/worker/npu_generation_model_runner.py +++ b/vllm_omni/platforms/npu/worker/npu_generation_model_runner.py @@ -269,7 +269,7 @@ class NPUGenerationModelRunner(OmniNPUModelRunner, OmniConnectorModelRunnerMixin self.input_batch, self.requests, self.compilation_config.static_forward_context, - self.model.get_mamba_state_copy_func(), + self._get_mamba_state_copy_funcs(), preprocess_bufs, ) # preprocess_mamba resets num_accepted_tokens_cpu to 1 @@ -854,8 +854,6 @@ class NPUGenerationModelRunner(OmniNPUModelRunner, OmniConnectorModelRunnerMixin if self.uses_mrope: positions = self.mrope_positions.gpu[:, :num_tokens_padded] - elif self.uses_xdrope_dim > 0: - positions = self.xdrope_positions.gpu[:, :num_tokens_padded] else: positions = self.positions[:num_tokens_padded] diff --git a/vllm_omni/platforms/npu/worker/npu_model_runner.py b/vllm_omni/platforms/npu/worker/npu_model_runner.py index d8e352d48..da663f626 100644 --- a/vllm_omni/platforms/npu/worker/npu_model_runner.py +++ b/vllm_omni/platforms/npu/worker/npu_model_runner.py @@ -1,6 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project +from contextlib import AbstractContextManager from functools import partial from typing import Any @@ -35,9 +36,13 @@ else: class OmniNPUModelRunner(OmniGPUModelRunner, NPUModelRunner): - def initialize_kv_cache(self, kv_cache_config) -> None: + def initialize_kv_cache( + self, kv_cache_config, kv_cache_allocation_context: AbstractContextManager | None = None + ) -> None: """Stage the omni prefix-cache config (hidden / mm tensors reused on hits).""" - NPUModelRunner.initialize_kv_cache(self, kv_cache_config) + NPUModelRunner.initialize_kv_cache( + self, kv_cache_config, kv_cache_allocation_context=kv_cache_allocation_context + ) if getattr(self, "_omni_prefix_cache_cfg", None) is None: # Same gate as the GPU runner (pooling stage, kv_consumer / # kv_both, hybrid kv groups). Read the config back off @@ -332,8 +337,6 @@ class OmniNPUModelRunner(OmniGPUModelRunner, NPUModelRunner): if self.uses_mrope: positions = self.mrope_positions.gpu[:, :num_tokens_padded] - elif self.uses_xdrope_dim > 0: - positions = self.xdrope_positions.gpu[:, :num_tokens_padded] else: positions = self.positions[:num_tokens_padded]