Commit a0e5280
authored
Summary: Add the Cross compilation Script for RPi (4 & 5) for Linux host machine (#15014)
Test Plan:
examples/raspberry_pi/rpi_setup.sh pi5
...
[100%] Linking CXX executable llama_main
[100%] Built target llama_main
[SUCCESS] LLaMA runner built successfully
==== Extracting Bundled Libraries ====
[INFO] Extracting GLIBC libraries from toolchain... [WARNING] Use
bundled GLIBC script on RPI device ONLY if you encounter a GLIBC
mismatch error when running llama_main. [SUCCESS] Bundled libraries
prepared in: /home/sidart/working/executorch/cmake-out/bundled-libs
[INFO] On Raspberry Pi, run: sudo ./install_libs.sh
==== Verifying Build Outputs ====
[INFO] Checking required binaries...
[SUCCESS] ✓ llama_main (6.1M)
[SUCCESS] ✓ libllama_runner.so (4.0M)
[SUCCESS] ✓ libextension_module.a (89K) - static library [SUCCESS] All
required binaries built successfully!
==== Setup Complete! ====
✓ ExecuTorch cross-compilation setup completed successfully!
📦 Built binaries:
• llama_main:
/home/sidart/working/executorch/cmake-out/examples/models/llama/llama_main
• libllama_runner.so:
/home/sidart/working/executorch/cmake-out/examples/models/llama/runner/libllama_runner.so
• libextension_module.a: Statically linked into llama_main ✅
• Bundled libraries:
/home/sidart/working/executorch/cmake-out/bundled-libs/
📋 Next steps:
1. Copy binaries to your Raspberry Pi pi5: scp
/home/sidart/working/executorch/cmake-out/examples/models/llama/llama_main
pi@<rpi-ip>:~/ scp
/home/sidart/working/executorch/cmake-out/examples/models/llama/runner/libllama_runner.so
pi@<rpi-ip>:~/ scp -r
/home/sidart/working/executorch/cmake-out/bundled-libs/ pi@<rpi-ip>:~/
2. Copy shared libraries to system location: sudo cp libllama_runner.so
/lib/ # Only this one needed! sudo ldconfig
3. Dry run to check for GLIBC or other issues: ./llama_main --help #
Ensure there are no GLIBC or other errors before proceeding.
4. If you see GLIBC errors, install bundled libraries: cd ~/bundled-libs
&& sudo ./install_libs.sh source setup_env.sh # Only do this if you
encounter a GLIBC version mismatch or similar error.
5. Download your model and tokenizer: # Refer to the official
documentation for exact details.
6. Run ExecuTorch with your model: ./llama_main --model_path ./model.pte
--tokenizer_path ./tokenizer.model --seq_len 128 --prompt "What is the
meaning of life ?"
🎯 Deployment Summary:
📁 Files to copy: 2 (llama_main + libllama_runner.so)
🏗️ Extension module: Built-in (no separate .so needed)
🔧 Toolchain saved at:
/home/sidart/working/executorch/arm-toolchain/arm-gnu-toolchain-14.3.rel1-x86_64-aarch64-none-linux-gnu
🔧 CMake toolchain file:
/home/sidart/working/executorch/arm-toolchain-pi5.cmake
Happy inferencing! 🚀
### Summary
[PLEASE REMOVE] See [CONTRIBUTING.md's Pull
Requests](https://github.com/pytorch/executorch/blob/main/CONTRIBUTING.md#pull-requests)
for ExecuTorch PR guidelines.
[PLEASE REMOVE] If this PR closes an issue, please add a `Fixes
#<issue-id>` line.
[PLEASE REMOVE] If this PR introduces a fix or feature that should be
the upcoming release notes, please add a "Release notes: <area>" label.
For a list of available release notes labels, check out
[CONTRIBUTING.md's Pull
Requests](https://github.com/pytorch/executorch/blob/main/CONTRIBUTING.md#pull-requests).
### Test plan
[PLEASE REMOVE] How did you test this PR? Please write down any manual
commands you used and note down tests that you have written if
applicable.1 parent bbe36f8 commit a0e5280
File tree
8 files changed
+623
-1
lines changed- examples/raspberry_pi
- pico2
8 files changed
+623
-1
lines changedFile renamed without changes.
Lines changed: 7 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
| 6 | + | |
6 | 7 | | |
| 8 | + | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
| |||
22 | 24 | | |
23 | 25 | | |
24 | 26 | | |
| 27 | + | |
25 | 28 | | |
26 | 29 | | |
27 | 30 | | |
| 31 | + | |
28 | 32 | | |
29 | 33 | | |
30 | 34 | | |
| |||
34 | 38 | | |
35 | 39 | | |
36 | 40 | | |
| 41 | + | |
37 | 42 | | |
| 43 | + | |
38 | 44 | | |
39 | 45 | | |
40 | 46 | | |
| |||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
0 commit comments