Skip to content

Conversation

@ghost
Copy link

@ghost ghost commented Oct 15, 2025

Purpose

Adding workflow for building CPU AArch64 wheels.

Aims to fix #26017.

Test Plan

The same workflow was gracefully ran locally, on an AArch64 machine.

Test Result


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft in the Google Doc.

@mergify mergify bot added the ci/build label Oct 15, 2025
Copy link
Contributor

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

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 adds a new Buildkite pipeline step to build and publish an AArch64 CPU Docker image. The change correctly uses a multi-platform Dockerfile and a dedicated arm64 agent. However, there is a critical issue with the Docker image tagging strategy. The new arm64 build uses the same tags as the existing x86 build, which will cause a race condition and result in one image overwriting the other. My review includes a suggestion to use architecture-specific tags to resolve this, which is a standard practice for multi-architecture image releases.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

@ghost ghost force-pushed the arm64-cpu-docker-pipeline branch from bd22e4e to 355b559 Compare October 15, 2025 18:45
@ghost ghost force-pushed the arm64-cpu-docker-pipeline branch from 45d1999 to 6bcf6c2 Compare October 16, 2025 10:19
- "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --tag vllm-ci:build-image --target vllm-openai --progress plain -f docker/Dockerfile.cpu ."
- "mkdir artifacts"
- "docker run --rm -v $(pwd)/artifacts:/artifacts_host vllm-ci:build-image bash -c 'cp -r dist /artifacts_host && chmod -R a+rw /artifacts_host'"
- "bash .buildkite/scripts/upload-wheels.sh"
Copy link
Member

Choose a reason for hiding this comment

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

Do you know what the final wheel name will be and if it might clobber the existing arm CUDA wheel? I'm not sure what we do for x86 cpu

Copy link
Author

@ghost ghost Oct 17, 2025

Choose a reason for hiding this comment

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

hi! the CUDA wheel should mention "+cu..." in its name, while the CPU only builds leave that out. I've tested the workflow locally and it omits the CUDA identifier and uses ".cpu-" instead.

DOCKER_BUILDKIT: "1"

# aarch64 build.
- label: "Build arm64 CPU wheel"
Copy link
Contributor

Choose a reason for hiding this comment

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

How are we differentiating arm64 CUDA wheel from non-CUDA wheel?
What naming convention are you using?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think on pypi I see
vllm-0.11.0-cp38-abi3-manylinux2014_aarch64.whl. for the one that has CUDA dependency

Copy link
Contributor

Choose a reason for hiding this comment

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

you should see a cpu somewhere in the wheel name if it got built on CPU.
locally, I see: vllm-0.11.0rc2.dev481+g74704d455.cpu-cp310-cp310-linux_aarch64.whl

Copy link
Author

Choose a reason for hiding this comment

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

by the latest release, having "+cu..." part of the wheel name should indicate CUDA dependencies. I've tested the patched workflow locally, dropping sccache mentions, since that only seems to be supported in CI
, and got something similar to what Fadi mentioned.

@mgoin mgoin added the ready ONLY add when PR is ready to merge/full CI is needed label Oct 16, 2025
Signed-off-by: Ioana Ghiban <ioana.ghiban@arm.com>
@ghost ghost force-pushed the arm64-cpu-docker-pipeline branch from 6bcf6c2 to 947c644 Compare October 16, 2025 14:33
@ghost ghost requested a review from bigPYJ1151 as a code owner October 16, 2025 14:33
ENV MAX_JOBS=${max_jobs}

ARG USE_SCCACHE
ARG SCCACHE_DOWNLOAD_URL=https://github.com/mozilla/sccache/releases/download/v0.8.1/sccache-v0.8.1-x86_64-unknown-linux-musl.tar.gz
Copy link
Author

Choose a reason for hiding this comment

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

for CUDA dependent AArch64 wheel build we're using this cache as well

@fadara01
Copy link
Contributor

@mgoin do you have any other feedback w.r.t this PR? Are we happy with it as is?

@mgoin
Copy link
Member

mgoin commented Oct 20, 2025

I'm just a little hesitant with respect to not messing up the arm CUDA wheel, but if cpu shows up in the wheel name it should be fine. I think we can merge and validate. Thanks for the reminder ping

@mgoin mgoin merged commit 1c691f4 into vllm-project:main Oct 20, 2025
17 checks passed
adabeyta pushed a commit to adabeyta/vllm that referenced this pull request Oct 20, 2025
faaany pushed a commit to faaany/vllm that referenced this pull request Oct 21, 2025
Zhuul pushed a commit to Zhuul/vllm that referenced this pull request Oct 21, 2025
Ther-LF pushed a commit to Ther-LF/vllm that referenced this pull request Oct 22, 2025
albertoperdomo2 pushed a commit to albertoperdomo2/vllm that referenced this pull request Oct 23, 2025
Signed-off-by: Alberto Perdomo <aperdomo@redhat.com>
0xrushi pushed a commit to 0xrushi/vllm that referenced this pull request Oct 26, 2025
Signed-off-by: 0xrushi <6279035+0xrushi@users.noreply.github.com>
0xrushi pushed a commit to 0xrushi/vllm that referenced this pull request Oct 26, 2025
Signed-off-by: 0xrushi <6279035+0xrushi@users.noreply.github.com>
ilmarkov pushed a commit to neuralmagic/vllm that referenced this pull request Nov 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build ready ONLY add when PR is ready to merge/full CI is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: CI workflow for building non-CUDA Aarch64 wheels

4 participants