ESP32-S3 — complete trained-model benchmark
24 physical sessions
Pinned Apache-2.0 MNIST MLP, 784→256→256→10, 269,322
parameters. Four retained configurations share one calibration split and
untouched 1,000-example test. Eight complete cells run on the exact
ESP32-S3-DevKitC-1 N16R8, Xtensa LX7 @ 240 MHz, ESP-IDF v6.0.2:
four portable and four PIE. Every cell reproduces all 10 declared outputs
across three independent compile/flash/cold-boot sessions.
KARQ P1 is the current public performance-and-memory configuration.
Against SPQ4 on the portable path it is 15.8% faster, uses 32.7% less
model flash, and 40.6% less model RAM. Against the per-channel baseline
under PIE it is 7.4% faster with 42.5% less model RAM for a 2.6% flash premium.
Top-1 values are properties of the corresponding quantized assets on the
untouched 1,000-example task set; each physical cell separately proves its
backend with 10/10 declared outputs across three cold boots.
Why both public formats matter
Customer-pilot ready.
Complete model execution, deterministic compilation, model-attributed
flash/RAM, measured stack, portable fallback, and ESP32-S3 vector execution
are all present in one reproducible evidence chain.
Results are scoped to the named ESP32-S3 board, model, clock, SDK, and build.
Every customer engagement repeats the same proof on the customer's graph,
memory placement, firmware conditions, and acceptance budget.
Raspberry Pi Pico 2 / RP2350 Arm — SPQ4 dense on silicon
physical_hil
Cortex-M33 @ 150 MHz. Firmware built through the Pico SDK, flashed, and captured
by our hardware-in-the-loop pipeline. This is an SPQ4 record and
says nothing about KARQ.
Reproduce the physical result: with a Pico 2 on your desk and the
exact Pico SDK 2.3.0 environment, one command re-runs the whole validation —
python3 studio/validate.py --board pico2-rp2350-arm --synthetic dense —
and prints the same hashes and serial transcript recorded in the evidence report
that ships with the result. Physical timing is produced only when the named
board and matching environment are present.
Host harness output
Reference 2-layer demo model (64×128 → 32×64), SPQ4.
These are host measurements (x86 / Apple Silicon,
-O3). Host latency is wall-clock, noise-sensitive, and not a
target metric. The Cortex-M4/M7 __SMUAD backend is compiled and
bit-exact-parity-tested against the portable reference. The ESP32-S3 PIE
backend has complete-model physical cycles for all four retained
configurations in the matrix above.
Reproduce It Yourself
Three commands. Nothing beyond Python 3.12+ and a C++11 compiler.
$ make test
== make test: ALL CHECKS PASSED ==
$ python3 compiler/main.py --synthetic-demo --out benchmark/model_assets.h
SUCCESS: bare-metal assets written
$ g++ -std=c++11 -O3 -Iruntime/include -Ibenchmark \
benchmark/benchmark.cpp -o benchmark_run && ./benchmark_run
Async vs. Blocking exact bit parity : PASS (bit-identical)
Relative L1 error : 0.2785 %
Flash size reduction : 80.47% vs FP32
Dynamic heap allocation : 0.00 KB
How an engagement runs
- Audit — model, activation ranges, memory map, timing budget.
- Design — SPQ4 or KARQ selected and configured against your accuracy target and silicon.
- Integrate — kernels, RTOS scheduling, build-system wiring.
- Verify — parity, WCET, and footprint evidence delivered with hashes.