diff --git a/.buildkite/hardware_tests/cpu.yaml b/.buildkite/hardware_tests/cpu.yaml index b34585f253..ebfd1c7524 100644 --- a/.buildkite/hardware_tests/cpu.yaml +++ b/.buildkite/hardware_tests/cpu.yaml @@ -141,9 +141,22 @@ steps: commands: - | bash .buildkite/scripts/hardware_ci/run-cpu-test.sh 45m " - pytest -x -v -s tests/models/multimodal/generation --ignore=tests/models/multimodal/generation/test_pixtral.py -m cpu_model --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT --shard-id=$$BUILDKITE_PARALLEL_JOB" + pytest -x -v -s tests/models/multimodal/generation --ignore=tests/models/multimodal/generation/test_pixtral.py --ignore=tests/models/multimodal/generation/test_qwen2_5_vl.py -m cpu_model --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT --shard-id=$$BUILDKITE_PARALLEL_JOB" parallelism: 4 +- label: CPU-Qwen2.5-VL Multimodal Tests + depends_on: [] + device: intel_cpu + no_plugin: true + source_file_dependencies: + # - vllm/ + - vllm/model_executor/layers/rotary_embedding + - tests/models/multimodal/generation/ + commands: + - | + bash .buildkite/scripts/hardware_ci/run-cpu-test.sh 40m " + VLLM_CI_ENV=0 pytest -x -v -s tests/models/multimodal/generation/test_qwen2_5_vl.py" + - label: "Arm CPU Test" depends_on: [] soft_fail: false diff --git a/tests/models/multimodal/generation/test_qwen2_5_vl.py b/tests/models/multimodal/generation/test_qwen2_5_vl.py index 15a14da24d..05a9b02998 100644 --- a/tests/models/multimodal/generation/test_qwen2_5_vl.py +++ b/tests/models/multimodal/generation/test_qwen2_5_vl.py @@ -5,6 +5,7 @@ import pytest from vllm.assets.image import ImageAsset from vllm.multimodal.video import sample_frames_from_video +from vllm.platforms import current_platform from ....conftest import VIDEO_ASSETS @@ -52,11 +53,15 @@ def _encoder_cudagraph_config(*, max_vision_items: int) -> dict: @pytest.mark.core_model @pytest.mark.parametrize("model", models) -@pytest.mark.parametrize("video_pruning_rate", [0.0, 0.75]) +@pytest.mark.parametrize( + "video_pruning_rate", [0.0] if current_platform.is_cpu() else [0.0, 0.75] +) @pytest.mark.parametrize("num_frames", [16]) @pytest.mark.parametrize("dtype", [target_dtype]) @pytest.mark.parametrize("max_tokens", [128]) -@pytest.mark.parametrize("use_bytecode_hook", [True, False]) +@pytest.mark.parametrize( + "use_bytecode_hook", [True] if current_platform.is_cpu() else [True, False] +) def test_qwen2_5_vl_evs_functionality( vllm_runner, video_assets, @@ -109,11 +114,15 @@ def test_qwen2_5_vl_evs_functionality( @pytest.mark.core_model @pytest.mark.parametrize("model", models) -@pytest.mark.parametrize("video_pruning_rate", [0.0, 0.75]) +@pytest.mark.parametrize( + "video_pruning_rate", [0.0] if current_platform.is_cpu() else [0.0, 0.75] +) @pytest.mark.parametrize("num_frames", [16]) @pytest.mark.parametrize("dtype", [target_dtype]) @pytest.mark.parametrize("max_tokens", [128]) -@pytest.mark.parametrize("use_bytecode_hook", [True, False]) +@pytest.mark.parametrize( + "use_bytecode_hook", [True] if current_platform.is_cpu() else [True, False] +) def test_qwen2_5_vl_evs_batched_videos( vllm_runner, video_assets, @@ -174,7 +183,9 @@ def test_qwen2_5_vl_evs_batched_videos( @pytest.mark.parametrize("model", models) @pytest.mark.parametrize("dtype", [target_dtype]) @pytest.mark.parametrize("max_tokens", [128]) -@pytest.mark.parametrize("use_bytecode_hook", [True, False]) +@pytest.mark.parametrize( + "use_bytecode_hook", [True] if current_platform.is_cpu() else [True, False] +) def test_qwen2_5_vl_window_attention_image( vllm_runner, model, @@ -210,7 +221,9 @@ def test_qwen2_5_vl_window_attention_image( @pytest.mark.parametrize("model", models) @pytest.mark.parametrize("dtype", [target_dtype]) @pytest.mark.parametrize("max_tokens", [128]) -@pytest.mark.parametrize("use_bytecode_hook", [True, False]) +@pytest.mark.parametrize( + "use_bytecode_hook", [True] if current_platform.is_cpu() else [True, False] +) def test_qwen2_5_vl_window_attention_image_batch( vllm_runner, model,