Who is this for?
This is an introductory topic for embedded/edge software developers who want to deploy machine learning workloads to heterogeneous Arm-based Linux targets using Topo, including leveraging Arm Ethos-U NPUs.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Explain how Topo deploys an application that spans Cortex-A, Cortex-M, and Ethos-U
- Deploy the topo-imx93-npu-deployment Template, which operates across Cortex-A, Cortex-M, and Ethos-U, to perform image classification using an ExecuTorch MobileNetV2 model
- Describe how the Template is bootstrapped from Compose services, Remoteproc Runtime metadata, and Topo arguments and follow this process yourself
- Understand how to take similar projects and create Topo Templates, including using Agent Skills
Prerequisites
Before starting, you will need the following:
- A host machine (x86 or Arm) with Linux, macOS, or Windows
- An NXP FRDM i.MX 93 target board with Linux setup, accessible over SSH with root access. To do this, see
Use Linux on the NXP FRDM i.MX 93 board
.
- Docker installed on the host and target. For installation steps, see
Install Docker
.
- At least 25 GB of free disk space on the host if you’re building without cache images.
- The Device Tree Compiler (
dtc) installed on the host. - lscpu installed on the target (pre-installed on most Linux distributions)
- Topo installed on the host. For installation steps, see
Deploy containerized workloads to Arm-based Linux targets with Topo
.
- Basic familiarity with containers, SSH, and CLI tools
- (Optional) Access to an agent, such as Codex or Claude Code