Skip to content

Add aarch64 wheel build to CUDA 13 Python packaging pipelines#27760

Merged
tianleiwu merged 11 commits intomainfrom
copilot/support-aarch64-onnxruntime-gpu
Apr 29, 2026
Merged

Add aarch64 wheel build to CUDA 13 Python packaging pipelines#27760
tianleiwu merged 11 commits intomainfrom
copilot/support-aarch64-onnxruntime-gpu

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 19, 2026

Description

Adds aarch64 Linux wheel builds to the CUDA GPU packaging pipeline, mirroring the existing x86_64 configuration.

  • stages/py-linux-gpu-stage.yml: Add hostArchitecture: Arm64 to pool config when arch == 'aarch64' (matches pattern in py-linux.yml)
  • stages/py-gpu-packaging-stage.yml: Add docker_base_image_aarch64 and AArch64LinuxPythonConfigurations parameters (defaults to [] so CUDA 12 pipeline is unaffected), aarch64 build stages, and merge artifact dependencies/downloads
  • py-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-gpu only ships x86_64 and Windows wheels. Installing on manylinux_2_39_aarch64 (e.g. ubuntu-24.04-arm runners) fails with no compatible wheel available.

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
Copilot AI requested a review from tianleiwu March 19, 2026 02:54
@tianleiwu tianleiwu changed the title Add aarch64 wheel build to CUDA 13 GPU Python packaging pipeline Add aarch64 wheel build to CUDA 12 & 13 Python packaging pipelines Mar 25, 2026
@tianleiwu tianleiwu marked this pull request as ready for review March 26, 2026 00:02
@tianleiwu tianleiwu changed the title Add aarch64 wheel build to CUDA 12 & 13 Python packaging pipelines Add aarch64 wheel build to CUDA 13 Python packaging pipelines Mar 29, 2026
Copy link
Copy Markdown
Contributor

@tianleiwu tianleiwu left a comment

Choose a reason for hiding this comment

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

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 AArch64LinuxPythonConfigurations defaults to [].
  • The hostArchitecture: Arm64 conditional 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):

  1. 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 -fsSL success. Adding a checksum variable and verification step would improve supply-chain integrity.
  2. The CUDA_HOME fallback and TRT detection logic is now duplicated between build_linux_python_package.sh and run_python_tests.sh. Consider extracting the shared logic into a helper to keep them in sync.

Overall: No blocking issues. The approach is sound.

Comment thread tools/ci_build/github/linux/build_linux_python_package.sh
@microsoft microsoft deleted a comment from azure-pipelines Bot Apr 21, 2026
@tianleiwu
Copy link
Copy Markdown
Contributor

/azp run Win_TRT_Minimal_CUDA_Test_CI, Windows GPU Doc Gen CI Pipeline

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 2 pipeline(s).

@tianleiwu tianleiwu merged commit 037c02d into main Apr 29, 2026
86 of 87 checks passed
@tianleiwu tianleiwu deleted the copilot/support-aarch64-onnxruntime-gpu branch April 29, 2026 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Support aarch64 for onnxruntime-gpu

3 participants