Skip to content

[cpu][ci] Add initial set of tests for Arm CPUs#28657

Merged
bigPYJ1151 merged 1 commit intovllm-project:mainfrom
fadara01:arm_ci_tests
Nov 20, 2025
Merged

[cpu][ci] Add initial set of tests for Arm CPUs#28657
bigPYJ1151 merged 1 commit intovllm-project:mainfrom
fadara01:arm_ci_tests

Conversation

@fadara01
Copy link
Copy Markdown
Contributor

@fadara01 fadara01 commented Nov 13, 2025

Purpose

[cpu][ci] Add initial set of tests for Arm CPUs

Test Plan

./run-cpu-test-arm.sh

Test Result

All tests added pass.

Essential Elements of an Effective PR Description Checklist
  • [Y] The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • [Y] The test plan, such as providing test command.
  • [Y] 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.

Copy link
Copy Markdown
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 introduces initial CI tests for Arm CPUs by adding a new test script, updating the CPU Dockerfile with necessary dependencies, and adjusting Python requirements for the ARM architecture. The changes are well-structured for enabling ARM testing. However, I've identified a critical race condition in the new test script that could cause test flakiness due to improper process termination. Additionally, the Dockerfile can be optimized by conditionally installing dependencies only on architectures where they are required, reducing the image size for ARM builds. Addressing these points will improve the robustness and efficiency of the new CI setup.

--model meta-llama/Llama-3.2-3B-Instruct \
--num-prompts 20 \
--endpoint /v1/completions
kill -s SIGTERM $server_pid &'
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.

critical

The kill command is being run in the background due to the trailing &. This will cause the docker exec command to exit immediately without waiting for the server process to be terminated. This creates a race condition where the container might be removed by the trap cleanup function before the server is properly shut down. To ensure the server is terminated before the script continues, the background operator & should be removed.

Suggested change
kill -s SIGTERM $server_pid &'
kill -s SIGTERM $server_pid'

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

hmm that's what other cpu tests do and it works

@fadara01
Copy link
Copy Markdown
Contributor Author

@bigPYJ1151 could you please have a look at this?
Thanks ;)

@@ -37,6 +37,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 10 --slave /usr/bin/g++ g++ /usr/bin/g++-12 \
&& curl -LsSf https://astral.sh/uv/install.sh | sh

ENV CC=/usr/bin/gcc-12 CXX=/usr/bin/g++-12
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this change necessary? As we have set gcc/g++12 as the default gcc/g++ at the start.

Copy link
Copy Markdown
Contributor Author

@fadara01 fadara01 Nov 17, 2025

Choose a reason for hiding this comment

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

yeah it's needed because some packages need to be built from src for Arm and while gcc 12 is default compiler, "CC" isn't set by default so we set it here.

Signed-off-by: Fadi Arafeh <fadi.arafeh@arm.com>
@fadara01
Copy link
Copy Markdown
Contributor Author

Hi @bigPYJ1151 - thanks for the initial review.
I addressed your comments, would you be able to have another look?

@bigPYJ1151 bigPYJ1151 enabled auto-merge (squash) November 20, 2025 02:03
@github-actions github-actions bot added the ready ONLY add when PR is ready to merge/full CI is needed label Nov 20, 2025
@bigPYJ1151 bigPYJ1151 merged commit 3168285 into vllm-project:main Nov 20, 2025
15 checks passed
RunkaiTao pushed a commit to RunkaiTao/vllm that referenced this pull request Nov 24, 2025
Signed-off-by: Fadi Arafeh <fadi.arafeh@arm.com>
Signed-off-by: Runkai Tao <rt572@physics.rutgers.edu>
devpatelio pushed a commit to SumanthRH/vllm that referenced this pull request Nov 29, 2025
Signed-off-by: Fadi Arafeh <fadi.arafeh@arm.com>
kitaekatt pushed a commit to kitaekatt/vllm that referenced this pull request Dec 1, 2025
Signed-off-by: Fadi Arafeh <fadi.arafeh@arm.com>
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.

2 participants