diff --git a/.buildkite/scripts/hardware_ci/run-xpu-test.sh b/.buildkite/scripts/hardware_ci/run-xpu-test.sh index 1e72c2931..a39bc3f17 100644 --- a/.buildkite/scripts/hardware_ci/run-xpu-test.sh +++ b/.buildkite/scripts/hardware_ci/run-xpu-test.sh @@ -33,7 +33,6 @@ docker run \ bash -c ' set -e echo $ZE_AFFINITY_MASK - pip install tblib==3.1.0 python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --block-size 64 --enforce-eager python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --block-size 64 -O3 -cc.cudagraph_mode=NONE python3 examples/basic/offline_inference/generate.py --model facebook/opt-125m --block-size 64 --enforce-eager -tp 2 --distributed-executor-backend ray diff --git a/docker/Dockerfile.xpu b/docker/Dockerfile.xpu index 3ed6de8fc..d4c98bf74 100644 --- a/docker/Dockerfile.xpu +++ b/docker/Dockerfile.xpu @@ -76,19 +76,22 @@ ENV UV_LINK_MODE="copy" RUN --mount=type=cache,target=/root/.cache/uv \ --mount=type=bind,src=requirements/common.txt,target=/workspace/vllm/requirements/common.txt \ --mount=type=bind,src=requirements/xpu.txt,target=/workspace/vllm/requirements/xpu.txt \ + --mount=type=bind,src=requirements/xpu-test.in,target=/workspace/vllm/requirements/xpu-test.in \ uv pip install --upgrade pip && \ - uv pip install -r requirements/xpu.txt - - # used for suffix method speculative decoding - # build deps for proto + nanobind-based extensions to set up the build environment -RUN --mount=type=cache,target=/root/.cache/uv \ - uv pip install grpcio-tools protobuf nanobind - # arctic-inference is built from source which needs torch-xpu properly installed first -RUN --mount=type=cache,target=/root/.cache/uv \ + uv pip install -r requirements/xpu.txt && \ + uv pip compile /workspace/vllm/requirements/xpu-test.in \ + -o /workspace/vllm/requirements/xpu-test.txt \ + -c /workspace/vllm/requirements/xpu.txt \ + --index-strategy unsafe-best-match \ + --extra-index-url ${PIP_EXTRA_INDEX_URL} \ + --python-version ${PYTHON_VERSION} && \ + uv pip install grpcio-tools protobuf nanobind && \ source /opt/intel/oneapi/setvars.sh --force && \ source /opt/intel/oneapi/ccl/2021.15/env/vars.sh --force && \ - export CMAKE_PREFIX_PATH="$(python -c 'import site; print(site.getsitepackages()[0])'):${CMAKE_PREFIX_PATH}" && \ - uv pip install --no-build-isolation arctic-inference==0.1.1 + export CMAKE_PREFIX_PATH="$(python3 -c 'import site; print(site.getsitepackages()[0])'):${CMAKE_PREFIX_PATH}" && \ + uv pip install --no-build-isolation -r /workspace/vllm/requirements/xpu-test.txt + + ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib/" diff --git a/requirements/xpu-test.in b/requirements/xpu-test.in new file mode 100644 index 000000000..0b2273d88 --- /dev/null +++ b/requirements/xpu-test.in @@ -0,0 +1,35 @@ +# --- Test Infrastructure --- +tblib +pytest-timeout +pytest-cov +pytest-forked +pytest-rerunfailures +pytest-shard + +# --- Core Tools & Bindings --- +absl-py +arctic-inference + +# --- Audio Processing --- +librosa +audioread +soxr +pooch +soundfile + +# --- Tool Parsing & Evaluation --- +blobfile +rapidfuzz +gpt-oss +schemathesis +jiwer +bm25s +pystemmer +mteb[bm25s] +num2words +pqdm + +# --- Vision & Multimodal --- +timm +albumentations +mistral-common[image,audio] \ No newline at end of file diff --git a/requirements/xpu-test.txt b/requirements/xpu-test.txt new file mode 100644 index 000000000..2a9a0e06a --- /dev/null +++ b/requirements/xpu-test.txt @@ -0,0 +1,42 @@ +# XPU Test Dependencies +# NOTE: Base image already has common.txt + xpu.txt installed, +# and vllm-openai stage has pytest, pytest-asyncio, lm-eval[api]. +# This file only adds incremental test-specific packages. + +# Additional test infrastructure (pytest/pytest-asyncio already in base) +# This file was autogenerated by uv via the following command: +# uv pip compile /workspace/vllm/requirements/xpu-test.in -o /workspace/vllm/requirements/xpu-test.txt -c /workspace/vllm/requirements/xpu.txt --index-strategy unsafe-best-match --extra-index-url ${PIP_EXTRA_INDEX_URL} --python-version ${PYTHON_VERSION} +tblib==3.1.0 +pytest-timeout==2.3.1 +pytest-cov==6.3.0 +pytest-forked==1.6.0 +pytest-rerunfailures==14.0 +pytest-shard==0.1.2 + +arctic-inference==0.1.1 + +# Required for audio processing tests +librosa==0.10.2.post1 +audioread==3.0.1 +soxr==0.5.0.post1 +pooch==1.8.2 +soundfile==0.13.1 + +# Required for Mistral's streaming tool parser +blobfile==3.0.0 +rapidfuzz==3.12.1 + +# Required for Mistral's streaming tool parser and some evaluation scripts +gpt-oss==0.0.8 +schemathesis==3.39.15 +jiwer==4.0.0 +bm25s==0.2.13 +pystemmer==3.0.0 +mteb[bm25s]>=2, <3 +num2words==0.5.14 +pqdm==0.2.0 + +# Required for some evaluation scripts +timm==1.0.17 +albumentations==1.4.6 +mistral-common[image,audio]==1.9.1 \ No newline at end of file