diff --git a/tests/diffusion/diffusion_kv/test_layout.py b/tests/diffusion/diffusion_kv/test_layout.py index 2f410f74c..713849e95 100644 --- a/tests/diffusion/diffusion_kv/test_layout.py +++ b/tests/diffusion/diffusion_kv/test_layout.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project """Physical KV cache layout selection and propagation for the Diffusion cache.""" from __future__ import annotations diff --git a/tests/diffusion/diffusion_kv/test_manager.py b/tests/diffusion/diffusion_kv/test_manager.py index 8abc296f1..ed39f6523 100644 --- a/tests/diffusion/diffusion_kv/test_manager.py +++ b/tests/diffusion/diffusion_kv/test_manager.py @@ -1,14 +1,14 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project import pytest import torch import vllm.v1.core.single_type_kv_cache_manager as native_kv_managers from vllm.v1.kv_cache_interface import FullAttentionSpec, KVCacheConfig, KVCacheGroupSpec +from tests.helpers.kv_layout import build_kv_cache_tensor from vllm_omni.diffusion.diffusion_kv.manager import DiffusionKVAdmissionError, DiffusionKVCacheManager from vllm_omni.diffusion.diffusion_kv.request import DiffusionKVContext, DiffusionKVRequest -from tests.helpers.kv_layout import build_kv_cache_tensor pytestmark = [pytest.mark.core_model, pytest.mark.cpu, pytest.mark.diffusion] diff --git a/tests/diffusion/diffusion_kv/test_paged_attention_adapter.py b/tests/diffusion/diffusion_kv/test_paged_attention_adapter.py index a13e09051..535c1b411 100644 --- a/tests/diffusion/diffusion_kv/test_paged_attention_adapter.py +++ b/tests/diffusion/diffusion_kv/test_paged_attention_adapter.py @@ -15,10 +15,10 @@ import torch from torch import nn from vllm.v1.kv_cache_interface import FullAttentionSpec +from tests.helpers.kv_layout import layout_for_backend from vllm_omni.diffusion.attention.backends.flash_attn import FlashAttentionImpl from vllm_omni.diffusion.attention.layer import Attention from vllm_omni.diffusion.diffusion_kv import paged_attention_adapter as adapter_module -from tests.helpers.kv_layout import layout_for_backend from vllm_omni.diffusion.diffusion_kv.paged_attention_adapter import ( DiffusionPagedAttentionAdapter, DiffusionPagedAttentionMetadata, diff --git a/tests/diffusion/diffusion_kv/test_paged_attention_adapter_gpu.py b/tests/diffusion/diffusion_kv/test_paged_attention_adapter_gpu.py index 192e60bea..d890dcc7b 100644 --- a/tests/diffusion/diffusion_kv/test_paged_attention_adapter_gpu.py +++ b/tests/diffusion/diffusion_kv/test_paged_attention_adapter_gpu.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project from __future__ import annotations @@ -14,6 +14,7 @@ from vllm.v1.kv_cache_interface import FullAttentionSpec, KVCacheConfig, KVCache from vllm.v1.worker.gpu.attn_utils import init_attn_backend, init_kv_cache from vllm.v1.worker.gpu.block_table import BlockTables +from tests.helpers.kv_layout import build_kv_cache_tensor from vllm_omni.diffusion.attention.backends.abstract import AttentionMetadata from vllm_omni.diffusion.attention.backends.flash_attn import FlashAttentionImpl from vllm_omni.diffusion.diffusion_kv.layout import resolve_diffusion_kv_cache_layout @@ -24,7 +25,6 @@ from vllm_omni.diffusion.diffusion_kv.paged_attention_adapter import ( DiffusionPagedAttentionRowBinding, ) from vllm_omni.diffusion.vllm_config import _DiffusionVllmModelConfig -from tests.helpers.kv_layout import build_kv_cache_tensor pytestmark = [pytest.mark.core_model, pytest.mark.diffusion, pytest.mark.gpu] @@ -90,9 +90,7 @@ def test_adapter_executes_native_paged_attention_on_non_contiguous_blocks() -> N canonical_spec = native_layer.spec kv_cache_config = KVCacheConfig( num_blocks=4, - kv_cache_tensors=[ - build_kv_cache_tensor(canonical_spec, 4, [_LAYER_NAME]) - ], + kv_cache_tensors=[build_kv_cache_tensor(canonical_spec, 4, [_LAYER_NAME])], kv_cache_groups=[ KVCacheGroupSpec( layer_names=[_LAYER_NAME], diff --git a/tests/diffusion/diffusion_kv/test_request.py b/tests/diffusion/diffusion_kv/test_request.py index 4ca6703d8..ac9185e09 100644 --- a/tests/diffusion/diffusion_kv/test_request.py +++ b/tests/diffusion/diffusion_kv/test_request.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project import pytest import torch @@ -13,8 +13,8 @@ from vllm.v1.kv_cache_interface import ( ) from vllm.v1.request import RequestStatus -from vllm_omni.diffusion.diffusion_kv.request import DiffusionKVContext, DiffusionKVRequest from tests.helpers.kv_layout import build_kv_cache_tensor +from vllm_omni.diffusion.diffusion_kv.request import DiffusionKVContext, DiffusionKVRequest pytestmark = [pytest.mark.core_model, pytest.mark.cpu, pytest.mark.diffusion] diff --git a/tests/diffusion/diffusion_kv/test_spec_discovery.py b/tests/diffusion/diffusion_kv/test_spec_discovery.py index d07c41355..1ccef7a9f 100644 --- a/tests/diffusion/diffusion_kv/test_spec_discovery.py +++ b/tests/diffusion/diffusion_kv/test_spec_discovery.py @@ -11,11 +11,11 @@ from torch import nn from vllm.v1.kv_cache_interface import FullAttentionSpec, KVCacheConfig, KVCacheGroupSpec import vllm_omni.diffusion.worker.diffusion_worker as diffusion_worker_module +from tests.helpers.kv_layout import build_kv_cache_tensor, layout_for_backend from vllm_omni.diffusion.attention.layer import Attention from vllm_omni.diffusion.diffusion_kv.config import DiffusionKVCacheMode from vllm_omni.diffusion.worker.diffusion_model_runner import DiffusionModelRunner from vllm_omni.diffusion.worker.diffusion_worker import DiffusionWorker -from tests.helpers.kv_layout import build_kv_cache_tensor, layout_for_backend pytestmark = [pytest.mark.core_model, pytest.mark.cpu, pytest.mark.diffusion] diff --git a/tests/diffusion/layers/test_adalayernorm.py b/tests/diffusion/layers/test_adalayernorm.py index 51fc52f35..94cadf5ac 100644 --- a/tests/diffusion/layers/test_adalayernorm.py +++ b/tests/diffusion/layers/test_adalayernorm.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project """Unit tests for shared AdaLayerNorm layers used by FLUX and other models.""" import os diff --git a/tests/diffusion/models/dreamzero/test_qkv_fusion.py b/tests/diffusion/models/dreamzero/test_qkv_fusion.py index c7b2f032f..d67a01e48 100644 --- a/tests/diffusion/models/dreamzero/test_qkv_fusion.py +++ b/tests/diffusion/models/dreamzero/test_qkv_fusion.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project """Equivalence test for DreamZero self-attn QKV fusion. diff --git a/tests/diffusion/models/glm_image/test_glm_image_quantization.py b/tests/diffusion/models/glm_image/test_glm_image_quantization.py index c08bfb894..1a6170ca2 100644 --- a/tests/diffusion/models/glm_image/test_glm_image_quantization.py +++ b/tests/diffusion/models/glm_image/test_glm_image_quantization.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project """Unit tests for GLM-Image quantization support (W4A16/AutoRound). These tests verify that the GLM-Image DiT transformer correctly accepts and uses diff --git a/tests/diffusion/models/mistral_encoder/test_mistral_encoder_tp.py b/tests/diffusion/models/mistral_encoder/test_mistral_encoder_tp.py index 17fc1540e..62bcf9ce8 100644 --- a/tests/diffusion/models/mistral_encoder/test_mistral_encoder_tp.py +++ b/tests/diffusion/models/mistral_encoder/test_mistral_encoder_tp.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project from types import SimpleNamespace import pytest diff --git a/tests/diffusion/models/sana_video/test_transformer_sana_video.py b/tests/diffusion/models/sana_video/test_transformer_sana_video.py index 3e1e40c2a..9e6404b21 100644 --- a/tests/diffusion/models/sana_video/test_transformer_sana_video.py +++ b/tests/diffusion/models/sana_video/test_transformer_sana_video.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project import os diff --git a/tests/diffusion/models/sana_video/test_transformer_sana_video_tp.py b/tests/diffusion/models/sana_video/test_transformer_sana_video_tp.py index 7105f5b4c..a44c90146 100644 --- a/tests/diffusion/models/sana_video/test_transformer_sana_video_tp.py +++ b/tests/diffusion/models/sana_video/test_transformer_sana_video_tp.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project """TP unit tests for SANA-Video: distributed RMSNorm, sharded attention and sharded GLUMB temporal conv. diff --git a/tests/diffusion/models/t5_encoder/test_t5_encoder_tp.py b/tests/diffusion/models/t5_encoder/test_t5_encoder_tp.py index 6eb469fac..cca73fb08 100644 --- a/tests/diffusion/models/t5_encoder/test_t5_encoder_tp.py +++ b/tests/diffusion/models/t5_encoder/test_t5_encoder_tp.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project import pytest import torch from transformers import T5Config diff --git a/tests/diffusion/test_diffusion_scheduler.py b/tests/diffusion/test_diffusion_scheduler.py index 6bc0bdaba..20a2f0384 100644 --- a/tests/diffusion/test_diffusion_scheduler.py +++ b/tests/diffusion/test_diffusion_scheduler.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project import asyncio import queue @@ -12,6 +12,7 @@ import vllm.v1.core.single_type_kv_cache_manager as native_kv_managers from pytest_mock import MockerFixture from vllm.v1.kv_cache_interface import FullAttentionSpec, KVCacheConfig, KVCacheGroupSpec +from tests.helpers.kv_layout import build_kv_cache_tensor from vllm_omni.diffusion.data import DiffusionOutput, DiffusionRequestAbortedError from vllm_omni.diffusion.diffusion_engine import DiffusionEngine, DiffusionExecutionMode from vllm_omni.diffusion.diffusion_kv.config import DiffusionKVCacheMode @@ -27,7 +28,6 @@ from vllm_omni.diffusion.sched import ( from vllm_omni.diffusion.sched.interface import CachedRequestData, NewRequestData from vllm_omni.diffusion.worker.utils import BatchRunnerOutput, RunnerOutput from vllm_omni.inputs.data import OmniDiffusionSamplingParams -from tests.helpers.kv_layout import build_kv_cache_tensor pytestmark = [pytest.mark.core_model, pytest.mark.cpu, pytest.mark.diffusion] diff --git a/tests/helpers/kv_layout.py b/tests/helpers/kv_layout.py index 0306cee42..8351de8da 100644 --- a/tests/helpers/kv_layout.py +++ b/tests/helpers/kv_layout.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project """Shared access to the production ``KVCacheTensor`` layout derivation. Tests deliberately go through the same code production uses diff --git a/vllm_omni/diffusion/diffusion_kv/initialization.py b/vllm_omni/diffusion/diffusion_kv/initialization.py index ffb0c2176..d1a79d934 100644 --- a/vllm_omni/diffusion/diffusion_kv/initialization.py +++ b/vllm_omni/diffusion/diffusion_kv/initialization.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project from __future__ import annotations diff --git a/vllm_omni/diffusion/diffusion_kv/layout.py b/vllm_omni/diffusion/diffusion_kv/layout.py index 1ba0cd326..960df395d 100644 --- a/vllm_omni/diffusion/diffusion_kv/layout.py +++ b/vllm_omni/diffusion/diffusion_kv/layout.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project """Physical KV cache layout selection for the native Diffusion paged cache. vLLM 0.29 removed ``AttentionSpec.indexes_kv_by_block_stride`` and replaced it @@ -44,8 +44,8 @@ def resolve_diffusion_kv_cache_layout( A layout already present on the config wins, mirroring upstream's ``resolve_kv_cache_layout``; it is validated against the requirement rather - than silently overwritten, because an inconsistent layout mis-addresses K/V - instead of raising. + than silently overwritten, because an inconsistent layout reads K/V + from the wrong offsets instead of raising. """ required_block_outermost = bool(indexes_kv_by_block_stride) @@ -53,11 +53,7 @@ def resolve_diffusion_kv_cache_layout( if cache_config is None: # A config double with nowhere to record the choice; report what the # requirement implies without pretending it was pinned. - return ( - BLOCK_STRIDE_DIFFUSION_KV_CACHE_LAYOUT - if required_block_outermost - else DEFAULT_DIFFUSION_KV_CACHE_LAYOUT - ) + return BLOCK_STRIDE_DIFFUSION_KV_CACHE_LAYOUT if required_block_outermost else DEFAULT_DIFFUSION_KV_CACHE_LAYOUT current = getattr(cache_config, "kv_cache_layout", None) if current is not None: @@ -72,11 +68,7 @@ def resolve_diffusion_kv_cache_layout( ) return layout - layout = ( - BLOCK_STRIDE_DIFFUSION_KV_CACHE_LAYOUT - if required_block_outermost - else DEFAULT_DIFFUSION_KV_CACHE_LAYOUT - ) + layout = BLOCK_STRIDE_DIFFUSION_KV_CACHE_LAYOUT if required_block_outermost else DEFAULT_DIFFUSION_KV_CACHE_LAYOUT cache_config.kv_cache_layout = layout.name return layout @@ -107,8 +99,7 @@ def adopt_kv_cache_layout(vllm_config: VllmConfig, kv_cache_config) -> KVCacheLa cache_config.kv_cache_layout = name elif current != name: raise ValueError( - f"Worker KV cache layout {current!r} disagrees with the layout " - f"resolved by the control plane ({name!r})." + f"Worker KV cache layout {current!r} disagrees with the layout resolved by the control plane ({name!r})." ) return KVCacheLayout[name] @@ -132,7 +123,7 @@ def build_kv_cache_tensor( The strides come from upstream's own ``compute_layout_strides``, called the way ``vllm.v1.core.kv_cache_utils`` calls it, because hand-computed strides - mis-address K/V silently instead of raising. + read K/V from the wrong offsets silently instead of raising. """ layout = layout or DEFAULT_DIFFUSION_KV_CACHE_LAYOUT diff --git a/vllm_omni/diffusion/diffusion_kv/model_runner_backend.py b/vllm_omni/diffusion/diffusion_kv/model_runner_backend.py index 79a0ded62..20f4db165 100644 --- a/vllm_omni/diffusion/diffusion_kv/model_runner_backend.py +++ b/vllm_omni/diffusion/diffusion_kv/model_runner_backend.py @@ -293,9 +293,7 @@ class DiffusionKVModelRunnerBackend: # and dropped attn_groups/cache_dtype from the signature. adopt_kv_cache_layout(self.vllm_config, kv_cache_config) for layer_adapter in self._kv_cache_layer_adapters.values(): - assert_backend_layout_supported( - self.vllm_config, getattr(layer_adapter, "attn_backend", None) - ) + assert_backend_layout_supported(self.vllm_config, getattr(layer_adapter, "attn_backend", None)) init_kv_cache( kv_caches, self.vllm_config.compilation_config.static_forward_context, diff --git a/vllm_omni/experimental/ar_diffusion/kv_cache/manager.py b/vllm_omni/experimental/ar_diffusion/kv_cache/manager.py index 24f09210d..f4cb416f6 100644 --- a/vllm_omni/experimental/ar_diffusion/kv_cache/manager.py +++ b/vllm_omni/experimental/ar_diffusion/kv_cache/manager.py @@ -1,4 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project """Engine-level KV cache orchestration for AR-Diffusion models. This is the *body* of AR-Diffusion's KV management: it owns a vLLM ``KVCacheManager`` (a