Arm backend: Fix Smollm2 model test#19812
Conversation
- Export & lower the smollm2 via extensions/llm/export_llm - Build the arm_executor_runner application - Fix the propagation of select_ops_list in the CMakeLists.txt - Test the application runs on FVP in fast mode Signed-off-by: George Gekov <george.gekov@arm.com> Change-Id: I8acd87c2f5c3e6b5b189bb987ceccfe4877e2254
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/19812
Note: Links to docs will display an error until the docs builds have been completed. ❗ 2 Active SEVsThere are 2 currently active SEVs. If your PR is affected, please view them below:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
|
This PR needs a
|
There was a problem hiding this comment.
Pull request overview
This PR updates the Arm backend SmolLM2-135M test flow to export/lower via extension/llm/export_llm, build arm_executor_runner, and run on Corstone-320 FVP in fast mode, while also adjusting build scripts/CMake to better propagate selective-kernel configuration.
Changes:
- Update SmolLM2-135M Arm backend test to export a PTE, build
arm_executor_runnerwith PTE preloaded at a fixed DDR address, and run it on FVP fast mode. - Adjust
arm_executor_runnerCMake selective-oplist logic so user-providedEXECUTORCH_SELECT_OPS_LISTis not unconditionally cleared. - Minor robustness tweaks to Arm scripts (Ethos-U scratch derivation output handling; conditional forwarding of extra CMake args).
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| examples/arm/run.sh | Adjusts how Ethos-U scratch size is captured from PTE-derived output. |
| examples/arm/executor_runner/CMakeLists.txt | Changes selective-oplist propagation behavior for kernel registration. |
| backends/arm/test/test_arm_backend.sh | Reworks SmolLM2-135M test into export → build runner → FVP execution flow. |
| backends/arm/scripts/build_executorch.sh | Only appends extra CMake args when provided. |
Comments suppressed due to low confidence (1)
examples/arm/executor_runner/CMakeLists.txt:356
- The
else()branch no longer clearsEXECUTORCH_SELECT_OPS_LIST, which can unintentionally keep a default or previously set list (e.g., from run.sh) even when the PTE has no undelegated ops. This contradicts the comment above (“If the pte contains no undelegated ops, use neither.”) and may register/build extra kernels unnecessarily. Consider only preserving the list for the ET_MODEL_PTE_ADDR flow (where auto-gen from model isn’t possible), and clearing it otherwise.
else()
set(EXECUTORCH_SELECT_OPS_MODEL "")
message(
"gen_oplist: No non delagated ops was found in ${ET_PTE_FILE_PATH} no ops added to build"
)
endif()
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
examples/arm/executor_runner/CMakeLists.txt:355
- In the
else()branch,EXECUTORCH_SELECT_OPS_LISTis no longer cleared (which is needed to allow a user-provided list to propagate), but the log message still claims that no ops will be added. Also fix the typo "delagated" → "delegated". Consider making the message conditional on whetherEXECUTORCH_SELECT_OPS_LISTis empty so the build output matches actual behavior.
else()
set(EXECUTORCH_SELECT_OPS_MODEL "")
message(
"gen_oplist: No non delagated ops was found in ${ET_PTE_FILE_PATH} no ops added to build"
)
cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani