Skip to content

Add XPU testing support with Docker and scripts#2945

Open
chensuyue wants to merge 13 commits into
vllm-project:mainfrom
chensuyue:suyue/xpu-ci
Open

Add XPU testing support with Docker and scripts#2945
chensuyue wants to merge 13 commits into
vllm-project:mainfrom
chensuyue:suyue/xpu-ci

Conversation

@chensuyue

Copy link
Copy Markdown

SUMMARY:

This pull request introduces an XPU (Intel GPU) testing pipeline to the project, enabling conditional XPU test runs when relevant files change. It includes a new Buildkite pipeline, supporting scripts, a Dockerfile for the XPU test environment, and Makefile integration for running XPU tests. The main changes are organized as follows:

Buildkite Pipeline Integration:

XPU Test Environment and Execution:

Makefile Integration:

  • Makefile: Adds a test-xpu target to run the XPU tests using the appropriate pytest configuration.

TEST PLAN:

XPU test workflow will be triggered on Intel-XPU-B60 agent pool.

Signed-off-by: chensuyue <suyue.chen@intel.com>
@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 9b6e19de-d932-46e1-ba8e-98d9e9032bfb

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mergify mergify Bot added the two-reviews When a PR requires two reviews label Jul 21, 2026
@mergify

mergify Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Merge Protections

🔴 1 of 1 protections blocking · waiting on 👀 reviews

Protection Waiting on
🔴 Require two reviews 👀 reviews

🔴 Require two reviews

Waiting for

  • #approved-reviews-by >= 2
This rule is failing.

PRs labelled "two-reviews" must have at least two approving reviews before merging.

  • #approved-reviews-by >= 2
  • #changes-requested-reviews-by = 0

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a Buildkite pipeline and Dockerized environment for running XPU tests on Intel GPUs. It adds a conditional pipeline step in .buildkite/pipeline.yml to trigger XPU tests when relevant paths are modified, creates a dedicated Dockerfile.xpu and helper scripts to build the test image and run tests inside a container, and updates the Makefile with a new test-xpu target. The review feedback highlights several critical improvements for the Docker setup and scripts, including dynamically handling the render group GID to avoid permission issues, using unique container names to prevent conflicts, cloning dependencies to /tmp instead of the workspace, ensuring --ipc=host is used to prevent shared memory exhaustion, avoiding shallow git fetches that can break diffs, and optimizing the Dockerfile layers to reduce image size.

Comment thread .buildkite/xpu-tests/docker/Dockerfile.xpu
Comment thread .buildkite/xpu-tests/scripts/image-build-xpu.sh
Comment thread .buildkite/xpu-tests/scripts/run-tests-xpu.sh
Comment thread .buildkite/xpu-tests/scripts/run-tests-xpu.sh Outdated
Comment thread .buildkite/pipeline.yml Outdated
Comment thread .buildkite/xpu-tests/docker/Dockerfile.xpu Outdated
Comment thread .buildkite/xpu-tests/docker/Dockerfile.xpu Outdated
Comment thread .buildkite/xpu-tests/scripts/image-build-xpu.sh Outdated
Comment thread .buildkite/xpu-tests/scripts/run-tests-xpu.sh Outdated
@github-actions

Copy link
Copy Markdown

👋 Hi! Thank you for contributing to llm-compressor. Please add the ready label when the PR is ready for review.

Note: This is required to complete the testing suite, please only add the label once the PR is code complete and local testing has been performed.

Signed-off-by: chensuyue <suyue.chen@intel.com>
Signed-off-by: chensuyue <suyue.chen@intel.com>
Comment thread .buildkite/xpu-tests/scripts/run-tests-xpu.sh
yiliu30 and others added 2 commits July 22, 2026 07:59
Real XPU CI runners are now in place, making the emulation scaffolding
from PR vllm-project#2611 unnecessary. This removes:

- tests/emulate_device.py: DeviceRemapMode TorchFunctionMode that
  transparently remapped "xpu" -> "cuda" for fake-XPU testing on
  CUDA hardware
- tests/conftest.py: all emulation code (pytest_addoption
  --emulate-xpu flag, 3-layer patch setup in pytest_configure,
  pytest_unconfigure teardown). Kept only the basetemp rank
  isolation logic for torchrun.

Verified: 10/10 non-DDP quantization tests pass on real XPU hardware.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: yiliu30 <yi4.liu@intel.com>

@brian-dellabetta brian-dellabetta left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @chensuyue , a few nits but this looks good to me. Will ask midstream team to review, and i'll kick off the run

Comment thread .buildkite/xpu-tests/scripts/image-build-xpu.sh
docker ps -a | grep "$CONTAINER_NAME"

echo "Setup test environment..."
docker exec "$CONTAINER_NAME" \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why exec in rather than using docker entrypoint/command?

@chensuyue chensuyue Jul 23, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have broken the running workflow down into three steps: start, build_env and run test. This should make it easier to identify issues when the test fails.

Comment thread .buildkite/pipeline.yml Outdated
@brian-dellabetta brian-dellabetta added the ready When a PR is ready for review label Jul 22, 2026
Comment thread .buildkite/pipeline.yml Outdated

@rashmigottipati rashmigottipati left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(edit) Didn't mean to add a comment on this yet, but started an investigation.

chensuyue and others added 5 commits July 23, 2026 09:58
…ogic

Signed-off-by: chensuyue <suyue.chen@intel.com>
…ibility

Signed-off-by: chensuyue <suyue.chen@intel.com>
Signed-off-by: chensuyue <suyue.chen@intel.com>
Signed-off-by: chensuyue <suyue.chen@intel.com>
Signed-off-by: yiliu30 <yi4.liu@intel.com>
yiliu30 and others added 2 commits July 23, 2026 16:20
Signed-off-by: yiliu30 <yi4.liu@intel.com>
@mergify

mergify Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

The quality checks have failed. Please run make style and make quality under
the root directory to adddress the lint failures. You will need to install the
dev optional install to get the required linting packages:
https://github.com/vllm-project/llm-compressor/blob/main/CONTRIBUTING.md

@brian-dellabetta

Copy link
Copy Markdown
Collaborator

Hi @chensuyue , looks like some of the tests are failing here, also please run make style/make quality

@mergify mergify Bot removed the quality-failed label Jul 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready When a PR is ready for review two-reviews When a PR requires two reviews

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants