Graph-Aware Post-Export Channel Alignment for Efficient Neural Network Inference on Arm Cortex-M
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
- Vellore Institute of Technology UniversityTamil Nadu, Vellore