-
Notifications
You must be signed in to change notification settings - Fork 700
Plumbing for Arm Example Runnner to use Zephyr Toolchain #12078
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/12078
Note: Links to docs will display an error until the docs builds have been completed. ⏳ No Failures, 9 PendingAs of commit 7ae07c6 with merge base d533a87 ( This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
@pytorchbot label "release notes: none" |
|
@digantdesai @zingo @perheld Similar to the PR here. This PR splits part of the Arm Zephyr cmake Preset PR. This PR relates to the changes need for the |
4632981 to
53bbe72
Compare
|
Nice! |
Where do you think would make sense to document this? I'm thinking of potentially adding a section to the Arm Ethos-U tutorial. Possibly after the section titled Running on Corstone FVP Platforms. What do you think @zingo? |
53bbe72 to
d42d2e7
Compare
It seem to be a good place if you don't mind. Don't feel it need to be a lot of text, write as much as you want. The important part is to show other how to run you nice stuff so as long a you mention zephyr and some building steps (and maybe running steps when we get that far) people can find it and play with it. |
Sounds good, will likely do this in a separate PR. Thanks for the feedback! |
d42d2e7 to
db9c0d0
Compare
db9c0d0 to
6a6d47f
Compare
ce9ece8 to
7ae07c6
Compare
### Summary Once `setup.sh` and `PATH` have been set to point to Arm Zephyr toolchain, the `run.sh` script and its child processes must use the specified toolchain. This change adds the plumbing needed to support this. This change **does not** include the Zephyr binary in the `arm_executor_runner`, but merely uses allows the runner to be built with a different toolchain. ### Test plan Environment setup: ``` ./examples/arm/setup.sh --i-agree-to-the-contained-eula --target-toolchain zephyr source /home/zephyruser/executorch/examples/arm/ethos-u-scratch/setup_path.sh ``` The following can be run to produce the same results as in the [Arm Ethos-U tutorial](https://docs.pytorch.org/executorch/main/tutorial-arm-ethos-u.html), now utilizing the Arm Zephyr toolchain instead of the bare metal: ``` examples/arm/run.sh --toolchain=arm-zephyr-eabi-gcc --model_name=add --no_quantize --target=ethos-u55-128 ``` Which still produces the following output: ``` I [executorch:arm_executor_runner.cpp:747 main()] Model executed successfully. I [executorch:arm_executor_runner.cpp:751 main()] 1 outputs: Output[0][0]: (int) 2 Output[0][1]: (int) 2 Output[0][2]: (int) 2 Output[0][3]: (int) 2 Output[0][4]: (int) 2 I [executorch:arm_executor_runner.cpp:874 main()] Program complete, exiting. I [executorch:arm_executor_runner.cpp:878 main()] ♦ Info: /OSCI/SystemC: Simulation stopped by user. [warning ][main@0][3440 ns] Simulation stopped by user [backends/arm/scripts/run_fvp.sh] Simulation complete, 0 Checking for problems in log: No problems found! + set +x ```
Summary
Once
setup.shandPATHhave been set to point to Arm Zephyr toolchain, therun.shscript and its child processes must use the specified toolchain. This change adds the plumbing needed to support this. This change does not include the Zephyr binary in thearm_executor_runner, but merely uses allows the runner to be built with a different toolchain.Test plan
Environment setup:
The following can be run to produce the same results as in the Arm Ethos-U tutorial, now utilizing the Arm Zephyr toolchain instead of the bare metal:
Which still produces the following output: