Deploy ExecuTorch firmware on NXP FRDM i.MX 93 for Ethos-U65 acceleration
Introduction
Understand ExecuTorch deployment on NXP with Ethos-U
Boot the NXP FRDM i.MX 93 board
Set up the ExecuTorch build environment
Build and install ExecuTorch
Build ExecuTorch models for Ethos-U65
Build Cortex-M33 firmware for ExecuTorch
Deploy and test on FRDM-IMX93
Next Steps
Deploy ExecuTorch firmware on NXP FRDM i.MX 93 for Ethos-U65 acceleration
Who is this for?
This is an introductory topic for developers and data scientists new to TinyML who want to observe ExecuTorch performance on a physical device.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Bring up a custom ExecuTorch `executor_runner` firmware on the FRDM i.MX 93 Cortex-M33 using Linux RemoteProc
- Compile an ExecuTorch `.pte` model for Ethos-U65 and run inference with NPU acceleration
- Understand how heterogeneous Arm systems split responsibilities across application cores, microcontrollers, and NPUs
Prerequisites
Before starting, you will need the following:
- An NXP FRDM i.MX 93 development board
- A USB Mini-B to USB Type-A cable, or a USB Mini-B to USB Type-C cable
- Completion of Use Linux on an NXP FRDM i.MX 93 board (Linux setup, login access, and file transfer)
- Basic knowledge of Machine Learning concepts
- A host computer to compile ExecuTorch libraries
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll run an ExecuTorch model on the FRDM i.MX 93 Cortex-M33 with Ethos-U65 acceleration. First, you’ll prepare a build environment, compile
executor_runner firmware and a U65-targeted .pte model. Then, you’ll transfer both artifacts to the board. You’ll start the firmware from Linux with RemoteProc and observe inference across the Cortex-M33 and NPU.Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
Use the DEBUG USB-C connector on the board. On macOS, install the Silicon Labs USB-to-UART driver and a serial terminal such as
picocom (for example, install it with brew install picocom).Building inside a Docker container provides an Ubuntu build environment that matches the toolchains used in this Learning Path, and avoids gaps in macOS-native cross-compilers. The container is only for building and produces prebuilt ExecuTorch libraries and
.pte files that you’ll copy to the FRDM i.MX 93.Run
pip list | grep executorch and check that executorch appears in the output.Copy the U65-compiled
.pte model and the executor_runner ELF to the board. The runner loads the .pte, prepares buffers, and invokes the NPU or CPU backend on the Cortex-M33.The compilation output reports the number of NPU operators and their coverage. For the example MobileNet V2 model, expect an output reporting 100% NPU utilization.