Arm backend: support standalone executor_runner#17814
Conversation
Allow the Arm executor runner to be configured standalone by defaulting EXECUTORCH_ROOT, marking standalone configs explicitly, and pulling ExecuTorch into the build tree as a subdirectory. This gives run.sh (and downstream integrators) a single CMake entry point instead of relying on a preconfigured top-level build. Signed-off-by: Usamah Zaheer <[email protected]> Change-Id: I81c5f92de5c6dafe0db28e14f618f84823f3009c
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/17814
Note: Links to docs will display an error until the docs builds have been completed. ❗ 1 Active SEVsThere are 1 currently active SEVs. If your PR is affected, please view them below: ❌ 31 New Failures, 1 Cancelled Job, 2 Unrelated FailuresAs of commit 5db85f2 with merge base 0d010de ( NEW FAILURES - The following jobs have failed:
CANCELLED JOB - The following job was cancelled. Please retry:
BROKEN TRUNK - The following jobs failed but were present on the merge base:👉 Rebase onto the `viable/strict` branch to avoid these failures
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
@pytorchbot label "partner:arm" , "release notes: arm" , "ciflow/trunk" |
|
To add these label(s) (ciflow/trunk) to the PR, please first approve the workflows that are awaiting approval (scroll to the bottom of this page). This helps ensure we don't trigger CI on this PR until it is actually authorized to do so. Please ping one of the reviewers if you do not have access to approve and run workflows. |
|
To add the ciflow label This helps ensure we don't trigger CI on this PR until it is actually authorized to do so. Please ping one of the reviewers if you do not have access to approve and run workflows. |
|
To add the ciflow label This helps ensure we don't trigger CI on this PR until it is actually authorized to do so. Please ping one of the reviewers if you do not have access to approve and run workflows. |
|
To add the ciflow label This helps ensure we don't trigger CI on this PR until it is actually authorized to do so. Please ping one of the reviewers if you do not have access to approve and run workflows. |
|
@pytorchbot label "release notes: arm" |
Use the shared arm_baremetal preset (and Utils.cmake) whenever the runner is configured standalone so required ExecuTorch options stay centralized. Default EXECUTORCH_ROOT/ET_DIR_PATH to the repo root, document why the Ethos-U SDK path points at examples/arm/arm-scratch, keep running with the user-provided Python interpreter, move the ET_PTE_FILE_PATH guard ahead of the fatal check, and fail fast if required ExecuTorch targets (extension_runner_util, quantized/cortex_m kernels) are missing instead of silently building local copies. Signed-off-by: Usamah Zaheer <[email protected]> Change-Id: Idd8c47702649f503e3c0e7aa0c0dcd0fdbce063e
|
OK to merge after all test-arm /cortex-m tests PASS |
|
I started a re-run of the failed test, but I spot that the PR needs a rebase also 😥 |
| # tooling directory rather than assuming a fixed relative depth. | ||
| set(_candidate_executorch_root "${CMAKE_CURRENT_LIST_DIR}") | ||
| set(_default_executorch_root "") | ||
| while(TRUE) |
There was a problem hiding this comment.
This is a bit fragile, any better way to do this?
There was a problem hiding this comment.
This has been reworked in the newer iteration: #19018
| set(ET_DIR_PATH | ||
| "${CMAKE_CURRENT_SOURCE_DIR}/../../.." | ||
| CACHE PATH "Path to ExecuTorch dir" | ||
| set(_arm_runner_placeholder_pte |
There was a problem hiding this comment.
curious why do we need this?
There was a problem hiding this comment.
This has been removed in the newer iteration: #19018
digantdesai
left a comment
There was a problem hiding this comment.
I like it. But with any big change, make sure existing CI is green, and you have enough testing. Also sorry for a very late review. CC: @GregoryComer for FYI
Problem
Standalone Arm runner builds were drifting from the top-level ExecuTorch configuration: presets weren’t reused, paths/defaults were inconsistent, and missing targets could silently fall back to local builds, hiding configuration issues.
What this PR changes
arm_baremetalpreset/Utils in standalone mode so the runner inherits the same ExecuTorch settings as top-level builds.UX impact (two build modes)
run.sh/cmake -S examples/arm/executor_runner): easier to use, consistent defaults, clear errors.Metrics
cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani @SS-JIA @Erik-Lundell