MobileNetV3: Optimized for AMD ROCm
MobileNetV3 (mobilenetv3_large_100) is an efficient convolutional network for image classification over the 1000 ImageNet categories. This repository packages inference for image classification using ONNX Runtime, exported and validated for AMD ROCm so it runs efficiently on AMD GPUs, CPUs, and NPUs.
This is based on the implementation of MobileNetV3 found here. This repository contains configurations and scripts optimized for AMD® ROCm™ platforms. You can use the mobilenetv3 AMD scripts to reproduce results or export with custom configurations.
Task Overview
Task: Image classification
Dataset: ImageNet-1000 label space (a small sample set is staged under dataset/samples/ for visual evaluation)
Output metrics: Throughput (inferences/sec), latency (mean/P95/P99 ms), per-operator profiling breakdown
AMD ROCm Optimization
This model export has been adapted and validated for AMD Instinct™ / Radeon™ GPUs running ROCm, as well as AMD CPUs and AMD Ryzen AI NPUs. Key points:
- Validated backends: ONNX Runtime across CPU, GPU (MIGraphX execution provider), and NPU (VitisAI execution provider).
- No code changes required versus the upstream timm implementation — only environment/runtime configuration differs.
- CPU fallback path supported for environments without a ROCm-capable GPU.
| Runtime | Precision | Backend | Hardware | Notes |
|---|---|---|---|---|
| ONNX Runtime | FP32 / FP16 / BF16 / INT8 | CPU Execution Provider | AMD CPU | — |
| ONNX Runtime | FP32 / FP16 / BF16 / INT8 | MIGraphX Execution Provider | AMD Instinct™ / Radeon™ GPU (ROCm) | — |
| ONNX Runtime | FP32 | VitisAI Execution Provider | AMD Ryzen AI NPU | Accepts FP32 input; VitisAI quantizes internally |
Getting Started
For setup instructions, evaluation scripts, and custom configuration options, see the mobilenetv3 on GitHub.
Model Details
Model Type: Image classification (convolutional neural network)
Base Model: mobilenetv3_large_100 (timm, ImageNet-1000)
Model Stats:
- Input:
(1, 3, 224, 224)float32; output:(1, 1000)float32 - Precision tested: FP32, FP16, BF16, INT8 (CPU/GPU); FP32 auto-quantized (NPU)
Dig Deeper
Want to explore the full evaluation scripts, config options, and other AMD-optimized model examples?
📂 View the full project on GitHub
The GitHub repository includes:
- Benchmark and profile scripts for CPU, GPU, and NPU (including AI Analyzer profiling)
- ONNX export and sample-dataset download automation
- Sample-image evaluation with annotated prediction overlays
- Additional MobileNetV3 variants (e.g.
mobilenetv3_small_100)
