Add gfx950 ROCm CI for AOTI - #21957
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/21957
Note: Links to docs will display an error until the docs builds have been completed. ❌ 2 New FailuresAs of commit 2631173 with merge base 910f816 ( NEW FAILURES - The following jobs have failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
Warning: Unknown label
Please add the new label to .github/pytorch-probot.yml |
This PR needs a
|
47d7194 to
3df41ae
Compare
There was a problem hiding this comment.
Pull request overview
Adds an opt-in ROCm (HIP) CI workflow intended to validate ExecuTorch’s AOTI CUDA backend on AMD GPUs, along with build presets and documentation updates to support ROCm-focused LLM builds and targeted test execution.
Changes:
- Introduces a new GitHub Actions workflow (
rocm.yml) and CI script to build and validate ROCm AOTI (native runner build, targeted C++ tests, targeted Python tests, linkage checks, and an example export). - Adds ROCm CMake presets/workflow preset for LLM release builds and updates ROCm documentation to point to the preset workflow.
- Improves CUDA fused MoE test runner configurability by allowing the
executor_runnerpath to be overridden via environment variable.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| CMakePresets.json | Adds ROCm LLM release configure/build/workflow presets (install-oriented). |
| backends/cuda/tests/test_fused_moe.py | Allows overriding the native runner path via EXECUTORCH_EXECUTOR_RUNNER. |
| backends/cuda/rocm.md | Updates ROCm build instructions to use the new CMake workflow preset and updates CI notes. |
| .github/workflows/rocm.yml | Adds a path-filtered ROCm AOTI CI workflow using the test-infra Linux job runner. |
| .github/pytorch-probot.yml | Registers ciflow/rocm push tag for triggering ROCm CI. |
| .ci/scripts/test-rocm-aoti.sh | Implements the end-to-end ROCm AOTI CI script (build, test, linkage verification, export). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| no-sudo: true | ||
| runner: linux.rocm.gpu.gfx950.1 | ||
| gpu-arch-type: rocm | ||
| gpu-arch-version: ${{ matrix.rocm-version }} | ||
| docker-image: pytorch/manylinux2_28-builder:rocm${{ matrix.rocm-version }} |
3df41ae to
7a2b88a
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (1)
.github/workflows/rocm.yml:84
- The changed-file gate only matches single-level paths like
backends/cuda/*, so edits under nested directories (e.g.backends/cuda/tests/...) won’t setRUN_AOTI=true. That means the ROCm job can be silently skipped even though the workflow triggers onbackends/cuda/**at the event level.
backends/aoti/* | \
backends/cuda/* | \
extension/cuda/* | \
examples/cuda/*)
7a2b88a to
914b934
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (2)
.github/workflows/rocm.yml:77
aoti-run-decisionshould also considertorch_pin.pyas an input, since.ci/scripts/test-rocm-aoti.shimports it to select the PyTorch version. Otherwise pushes that only changetorch_pin.pymay skip ROCm CI unexpectedly.
CMakeLists.txt | \
CMakePresets.json | \
install_requirements.py | \
backends/aoti/* | \
backends/cuda/* | \
.github/workflows/rocm.yml:21
- The ROCm CI script reads TORCH_VERSION via
from torch_pin import TORCH_VERSION(in.ci/scripts/test-rocm-aoti.sh), buttorch_pin.pyis not included in thepull_request.pathsfilter. Changes to torch pinning could affect this workflow without triggering ROCm CI on PRs.
This issue also appears on line 73 of the same file.
- CMakeLists.txt
- CMakePresets.json
- install_requirements.py
- backends/aoti/**
Add an opt-in, path-filtered ROCm job on the gfx950 runner. Build the HIP runtime and native runner, exercise targeted Python and C++ coverage, verify generated AOTI code and HIP-only linkage, and provide a generic ROCm LLM preset. With assistance from Claude Code and Codex.
914b934 to
2631173
Compare
Add an opt-in, path-filtered ROCm job on the gfx950 runner. Build the HIP runtime and native runner, exercise targeted Python and C++ coverage, verify generated AOTI code and HIP-only linkage, and provide a generic ROCm LLM preset.