Graph-Aware Post-Export Channel Alignment for Efficient Neural Network Inference on Arm Cortex-M

Published: 25 August 2026| Version 1 | DOI: 10.17632/k47fdftxmn.1
Contributor:
abhinav sadras

Description

This dataset accompanies “Graph-Aware Post-Export Channel Alignment for Efficient Neural Network Inference on Arm Cortex-M.” It contains the artifacts used to apply and check a post-export ONNX channel-alignment repair for CMSIS-NN: original and repaired ONNX models (including INT8 QDQ pairs for two CIFAR-10 classifiers), transformation and validation code, STM32F407 firmware images and sources, 20-repeat interleaved DWT latency captures with campaign summaries, processed tables, and host-side correctness reports. Official MLPerf Tiny weights, CIFAR-10 images, and the CMSIS-NN source tree are not redistributed; CMSIS-NN was used at commit 6d9d61d8a586c39160d0c1ba58f6948e4cf61ad0. Hardware timings are for STM32F407 @ 168 MHz. The accompanying paper reports 5.5–9.8% lower summed-layer latency on the constructed primary-suite profiles, 8.35% and 4.36% lower end-to-end cycle counts on two trained CIFAR-10 classifiers, and a synthetic stress case in which high MAC overhead increases latency. Interpret results only for the included models, that CMSIS-NN snapshot, and this board/toolchain configuration.

Files

Steps to reproduce

Download the dataset and read README.md and REPRODUCIBILITY.md. Install Python 3.11 and the dependencies specified in configs/requirements-host.txt. For firmware rebuilds, install arm-none-eabi-gcc 15.2.1 (Arm GNU Toolchain 15.2.Rel1) and GNU Make. Obtain CMSIS-NN at commit 6d9d61d8a586c39160d0c1ba58f6948e4cf61ad0 as described in NOTICE. Software checks (no board, no public datasets required). Run the graph-repair pipeline on the included original ONNX models. Use transforms/validate.py and scripts/run_evaluation_suite.py to regenerate host-side original-channel checks and the prevalence / naive-versus-full / ablation tables. Compare outputs with data/processed_results/. Inspect reported hardware numbers without re-flashing. Use data/raw_latency/ (decoded DWT reports and campaign summary.json) and python code/scripts/build_table3_from_campaigns.py. Compare campaign means with the paper’s 5.5–9.8% summed-layer figures on the constructed primary-suite profiles and the 8.35% / 4.36% CIFAR-10 end-to-end figures. See REPRODUCIBILITY.md for the MobileNet printed-versus-campaign note. Optional — re-run host CIFAR or official Tiny experiments. CIFAR-10, Speech Commands, Visual Wake Words, and MLPerf Tiny are not redistributed; obtain them using ENVIRONMENT.md if needed. Training, INT8 quantisation, and the FP32 test-set evaluator are available only as Python 3.11 bytecode, not as .py source. Archived JSON results remain in data/processed_results/. Optional — hardware re-measurement. Requires an STM32F407-compatible board (e.g. STM32F407G-DISC1) and an ST-LINK programmer/debugger. Build with the documented Makefile flags, flash original and repaired images, and collect DWT reports as in firmware/README.md. The 20-repeat interleaved capture driver is available only as Python 3.11 bytecode; therefore, a complete independent replay of the original hardware campaign is currently limited. The released raw DWT captures and campaign summaries remain available for independent inspection and analysis.

Institutions

Categories

Computer Science, Artificial Intelligence, Embedded System

Licence