Image classification
ResNet-8 · official MLPerf Tiny INT8 baseline
Accuracy: 71.28 ± 0.81% binary · 87.0% INT8.
View result & methodology ↗
SYMBEX-1
A fully binary neural network. Compiled to C. Checked against its reference on the chip.
Every figure below links to the repository result it came from.
A microcontroller has a small memory and a finite compute budget. What if a network could work with just two values?
Pack intermediate activations into bits.
Store binary weights in compact words.
Count bits. Compare an integer threshold.
A conceptual representation change, not a direct model conversion. Training, thresholds, alignment and metadata also matter.
Change an input. Watch XOR find the differences, popcount count the ones, and an integer threshold decide the output.
Real calculations. Toy example.
No hardware measurements in this demo.
Illustrative operation · 0/1 bits · XOR counts differences.
Example rule: output = 1 when count ≥ threshold.
A complete path from model and data to generated C, verified execution, and measurements you can inspect.
Train, fold, export and validate. Take a model and its constraints to a generated C header.
tools/cdt.py ↗ExecuteA portable C engine that replaces much of the arithmetic with bit counting and integer thresholds.
C inference + hardware layer ↗VerifyCompare with the PC reference. Measure device latency and memory against documented INT8 baselines.
chip_test.py + benchmarks/ ↗ResNet-8 · official MLPerf Tiny INT8 baseline
Accuracy: 71.28 ± 0.81% binary · 87.0% INT8.
View result & methodology ↗FOMO · same resized architecture and training recipe
F1: 31.2 ± 0.7% binary · 30.1 ± 0.2% INT8.
View result & methodology ↗Five experiments. Real deterministic math. Every step is yours to change.
Change eight inputs. See XOR, popcount and an output bit.
Experiment 02Compare theoretical 1-bit and INT8 payloads at equal element counts.
Experiment 03Turn a pixel channel into the exact eight-bit input encoding.
Experiment 04Follow three hidden neurons into a second-layer decision.
Experiment 05Filter measured results and compare memory, speed and score.
Build the board example. Run the library tests. Train and export a model, then verify it on your hardware.
# Bit-exact C library tests (gcc required)
python Symbex1_PIO/lib/lib_symbex/tests/run_tests.py
# Build & upload the configured S3 example
cd Symbex1_PIO
pio run -t upload
pio device monitor -b 115200Explore the engine. Reproduce a benchmark. Help make it better.