Deploy a machine learning application to the Arm Ethos-U65 NPU on NXP FRDM i.MX 93 with Topo
Introduction
Understand the architecture of the machine learning application
Understand the toolchains used in the Topo Project
Build the Topo Project from scratch
Clone and deploy the application with Topo
Next Steps
Deploy a machine learning application to the Arm Ethos-U65 NPU on NXP FRDM i.MX 93 with Topo
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 Topo Project, which operates across Cortex-A, Cortex-M, and Ethos-U, to perform image classification using an ExecuTorch MobileNetV2 model
- Describe how the project is bootstrapped from Compose services, Remoteproc Runtime metadata, and Topo parameters and follow this process yourself
- Understand how to take similar projects and create Topo Projects, 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
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.
topo health and deploying, containers run on the board, and you’ll be able to access a browser-based MobileNetV2 classifier.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.
topo health --target <user>@<target-ip>. The host and target sections should show successful checks for SSH and the container engine, and the target should also report Remoteproc Runtime and Remoteproc as healthy.topo health before continuing. Confirm SSH access to the target, verify the container engine is available on both host and target, and ensure Remoteproc Runtime is present on the target.