diff --git a/.buildkite/pipeline-intel.yaml b/.buildkite/pipeline-intel.yaml index ff7302ad2..d3a2655bf 100644 --- a/.buildkite/pipeline-intel.yaml +++ b/.buildkite/pipeline-intel.yaml @@ -10,7 +10,7 @@ steps: DOCKER_BUILDKIT: "1" # Buildkite will automatically replace this with the actual commit hash VLLM_IMAGE_TAG: "${BUILDKITE_COMMIT}" - VLLM_VERSION: "v0.24.0" + VLLM_VERSION: "v0.25.0" priority: 100 timeout_in_minutes: 60 soft_fail: false diff --git a/.buildkite/scripts/hardware_ci/run-xpu-test.sh b/.buildkite/scripts/hardware_ci/run-xpu-test.sh index fa4f00e29..36860522b 100755 --- a/.buildkite/scripts/hardware_ci/run-xpu-test.sh +++ b/.buildkite/scripts/hardware_ci/run-xpu-test.sh @@ -13,12 +13,33 @@ container_name="xpu_${BUILDKITE_COMMIT}_$( )" cd "${omni_source_dir}" + +# The XPU base image is ~37GB; the default gzip layer exporter is single-threaded +# and takes ~16min to compress it. zstd is multi-threaded (uses all cores) at a +# similar ratio; set EXPORT_COMPRESSION=uncompressed to skip compression entirely +# for local-only images. This requires the containerd image store (buildx docker +# driver), which is the default here. +EXPORT_COMPRESSION="${EXPORT_COMPRESSION:-zstd}" +if [ "${EXPORT_COMPRESSION}" = "uncompressed" ]; then + export_args=(--output "type=image,name={{IMAGE}},compression=uncompressed") +else + export_args=(--output "type=image,name={{IMAGE}},compression=${EXPORT_COMPRESSION},compression-level=3,force-compression=true") +fi + +docker_build() { + # $1 = image name; remaining args passed through to docker build. + local image="$1" + shift + local out=("${export_args[@]/'{{IMAGE}}'/${image}}") + docker build "${out[@]}" "$@" -f docker/Dockerfile.xpu . +} + if [ -z "$(docker images -q "${base_image_name}")" ]; then - docker build --target vllm-base -t "${base_image_name}" --build-arg "VLLM_VERSION=${VLLM_VERSION}" -f docker/Dockerfile.xpu . + docker_build "${base_image_name}" --target vllm-base --build-arg "VLLM_VERSION=${VLLM_VERSION}" fi # Try building the docker image -docker build --build-arg "VLLM_BASE=${base_image_name}" --build-arg "VLLM_VERSION=${VLLM_VERSION}" -t "${image_name}" -f docker/Dockerfile.xpu . +docker_build "${image_name}" --build-arg "VLLM_BASE=${base_image_name}" --build-arg "VLLM_VERSION=${VLLM_VERSION}" # Setup cleanup remove_docker_container() { diff --git a/docker/Dockerfile.xpu b/docker/Dockerfile.xpu index 52069f344..b70dd274e 100644 --- a/docker/Dockerfile.xpu +++ b/docker/Dockerfile.xpu @@ -88,7 +88,7 @@ ENV UV_EXTRA_INDEX_URL=${PIP_EXTRA_INDEX_URL} ENV UV_INDEX_STRATEGY="unsafe-best-match" ENV UV_LINK_MODE="copy" -ARG VLLM_VERSION=v0.24.0 +ARG VLLM_VERSION=v0.25.0 RUN git clone -b ${VLLM_VERSION} https://github.com/vllm-project/vllm WORKDIR /workspace/vllm diff --git a/tests/platforms/test_cuda_ir_op_priority.py b/tests/platforms/test_cuda_ir_op_priority.py index c27afb7ee..8542ea63d 100644 --- a/tests/platforms/test_cuda_ir_op_priority.py +++ b/tests/platforms/test_cuda_ir_op_priority.py @@ -3,8 +3,17 @@ import pytest from vllm.config import CompilationConfig, CompilationMode, DeviceConfig, VllmConfig +from vllm.platforms import current_platform -from vllm_omni.platforms.cuda.platform import CudaOmniPlatform +# Importing CudaOmniPlatform pulls in vllm.platforms.cuda, which imports the +# CUDA-only ``vllm._C_stable_libtorch`` extension at module top level. That +# extension is absent on non-CUDA builds (e.g. XPU), so skip the whole module +# there before the import can crash collection. ``is_cuda()`` resolves the +# platform without importing cuda.py. +if not current_platform.is_cuda(): + pytest.skip("CUDA-only IR op priority tests", allow_module_level=True) + +from vllm_omni.platforms.cuda.platform import CudaOmniPlatform # noqa: E402 pytestmark = [pytest.mark.core_model, pytest.mark.cpu]