Supported devices
These are the reference devices Arm AI Model Optimizer uses to optimize and benchmark models. All Supported models numbers are measured on the devices listed here, so these specifications define the measurement environment.
Device specifications
| RPi5 | M4 MacBook | Alif E8 | AWS Graviton4 | vivo X300 Pro | |
|---|---|---|---|---|---|
| Full name | Raspberry Pi 5 (16 GB) | MacBook Pro (Apple M4) | Alif Ensemble E8 DevKit | AWS Graviton4 (Neoverse V2) | vivo X300 Pro |
| SoC | Broadcom BCM2712 | Apple M4 | Alif Ensemble E8 | AWS Graviton4 (EC2 r8g.8xlarge) | MediaTek Dimensity 9500 |
| CPU | Arm Cortex-A76 ×4 @ 2.4 GHz | 10-core (4P + 6E) | Arm Cortex-M55 (RTSS-HP, ~400 MHz) | Arm Neoverse V2 ×32 vCPU @ up to 2.8 GHz | Armv9.3, 8-core (C1-Ultra ×1 @ 4.21 GHz · C1-Premium ×3 @ 3.5 GHz · C1-Pro ×4 @ 2.7 GHz) |
| Accelerator (NPU) | — | — | Arm Ethos-U85 · 256 MAC (config Z256) | — | — |
| Memory | 16 GB | 24 GB | 7 MB on-chip SRAM + 64 MB external OSPI | 256 GB | 12 GB |
| Backend | executorch · xnnpack | executorch · xnnpack | executorch · ethos_u | executorch · xnnpack | executorch · xnnpack |
| OS and Runtime | Debian 12 (bookworm), kernel 6.12, aarch64 | macOS 15.6 | Bare-metal firmware (MLEK + ExecuTorch) | Ubuntu 26.04 LTS, kernel 7.0.0-1009-aws, aarch64 | Android 16 (API 36), arm64-v8a |
Both devices are registered and available today using np devices ls and np projects create --device graviton4|vivo_x300_pro. Original and optimized numbers in the per-model benchmark tables in [Supported models] are still being populated for these 2 devices. Check back, or measure directly with on-device profiling.
Per-device notes
RPi5: Raspberry Pi 5 (16 GB)
General-purpose Arm Linux SBC (BCM2712, quad Cortex-A76). Models run on the CPU through the ExecuTorch XNNPACK backend. Profiled with the executor_runner binary. See On-device profiling.
M4: MacBook (Apple M4)
Apple silicon (M4, 10-core CPU = 4 performance + 6 efficiency). The listed backend is CPU with XNNPACK. The M4 CPU implements Arm Scalable Matrix Extension 2 (SME2), which XNNPACK uses to accelerate matmul-heavy operators; this backend does not use the chip's GPU and Neural Engine.
Alif E8: Alif Ensemble E8 DevKit
Microcontroller-class target: Arm Cortex-M55 + Arm Ethos-U85 NPU (256 MAC), via the ExecuTorch Ethos-U backend. By default it runs in Dedicated_Sram mode: activations live in external Octal Serial Peripheral Interface (OSPI) pseudo-static random-access memory (PSRAM) with the NPU cache in on-chip SRAM. A Shared_Sram mode (everything in on-chip SRAM) is also available. Unlike XNNPACK targets, the model is compiled into the firmware, so profiling is a build + flash flow rather than a single binary.
AWS Graviton4
Cloud instance (r8g family, Neoverse V2 core) rather than a physical board: models run through the ExecuTorch XNNPACK backend, but the executor_runner binary and .pte are copied in over scp and run over SSH inside the instance. See On-device profiling for the instance image requirement and exact steps.
CPU core count and memory scale with the instance size within the r8g family; the specs above (32 vCPU, 256 GB) reflect the specific instance type used for measurement, r8g.8xlarge, not a fixed property of "Graviton4" itself.
vivo X300 Pro
Android phone, driven over Android Debug Bridge (ADB) from a host PC rather than a shell on the device itself. Uses the ExecuTorch XNNPACK backend and executor_runner flow, pushed to and pulled from /data/local/tmp. See On-device profiling for the adb push, run, and pull sequence.
Measuring on your own device
Benchmark numbers here are measured by the Arm AI Model Optimizer team. To measure latency and memory on your own hardware, see On-device profiling.