Add aarch64 wheel build to CUDA 13 Python packaging pipelines#27760
Merged
Add aarch64 wheel build to CUDA 13 Python packaging pipelines#27760
Conversation
Co-authored-by: tianleiwu <30328909+tianleiwu@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] [Feature Request] Support aarch64 for onnxruntime-gpu
Add aarch64 wheel build to CUDA 13 GPU Python packaging pipeline
Mar 19, 2026
tianleiwu
reviewed
Apr 19, 2026
Contributor
tianleiwu
left a comment
There was a problem hiding this comment.
Review Summary
Well-structured PR that cleanly extends the existing CUDA GPU packaging pipeline for aarch64 Linux wheels. The pipeline templates were already parameterized for architecture, so the changes are neatly scoped to plumbing the new configuration through. The aarch64 TensorRT tar-based installation (in lieu of RPMs) is correctly motivated.
Key observations:
- Backward compatibility is preserved — the CUDA 12.8 pipeline is unaffected since
AArch64LinuxPythonConfigurationsdefaults to[]. - The
hostArchitecture: Arm64conditional follows established patterns across the repo. - The TRT version/download URL conditional logic using
ne(parameters.arch, 'aarch64')guards is correct and avoids overwriting.
Suggestions (non-blocking):
- The TRT tar download in the Dockerfile has no SHA256 checksum verification. The x86_64 path uses RPMs (which have built-in signature verification), but the tar path relies solely on
curl -fsSLsuccess. Adding a checksum variable and verification step would improve supply-chain integrity. - The CUDA_HOME fallback and TRT detection logic is now duplicated between
build_linux_python_package.shandrun_python_tests.sh. Consider extracting the shared logic into a helper to keep them in sync.
Overall: No blocking issues. The approach is sound.
Contributor
|
/azp run Win_TRT_Minimal_CUDA_Test_CI, Windows GPU Doc Gen CI Pipeline |
|
Azure Pipelines successfully started running 2 pipeline(s). |
eserscor
approved these changes
Apr 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds aarch64 Linux wheel builds to the CUDA GPU packaging pipeline, mirroring the existing x86_64 configuration.
stages/py-linux-gpu-stage.yml: AddhostArchitecture: Arm64to pool config whenarch == 'aarch64'(matches pattern inpy-linux.yml)stages/py-gpu-packaging-stage.yml: Adddocker_base_image_aarch64andAArch64LinuxPythonConfigurationsparameters (defaults to[]so CUDA 12 pipeline is unaffected), aarch64 build stages, and merge artifact dependencies/downloadspy-cuda13-packaging-pipeline.yml: Pass aarch64 base image and Python configs for all supported versions (3.11–3.14, including free-threaded)aarch64/python/cuda/Dockerfile+scripts/install_centos.sh: New Docker build context for aarch64 CUDA builds. It is different from x86_64 variant: aarch64 uses tar to install tensorrt.Motivation and Context
onnxruntime-gpuonly ships x86_64 and Windows wheels. Installing onmanylinux_2_39_aarch64(e.g.ubuntu-24.04-armrunners) fails with no compatible wheel available.