Zephelin benchmarking

This chapter demonstrates the overhead introduced by the Zephelin library, based on its different variants.

Zephelin Benchmark Results

max32690fthr_max32690_m4

Benchmark

Cycles

FLASH [B]

RAM [B]

Configs

bench.basic (basic)

7583

4784

18032

bench.basic.instr (basic)

21208811

21496

58724

instr_tracing.conf

bench.basic.tracing (basic)

7583

5048

20572

tracing.conf

bench.basic.zpl (basic)

237035

5080

21524

zpl.conf

bench.dhry (dhrystone)

2025

15176

20412

bench.dhry.instr (dhrystone)

4695722

31880

61364

instr_tracing.conf

bench.dhry.tracing (dhrystone)

2027

15440

22932

tracing.conf

bench.dhry.zpl (dhrystone)

2027

15456

23540

zpl.conf

bench.tflite (tflite)

76433

29720

79276

tflite.conf

bench.tflite.tracing (tflite)

76239

29984

82708

tflite.conf, tracing.conf

bench.tflite.zpl (tflite)

84995

30040

83932

tflite.conf, zpl.conf

bench.threads (threads)

5950517

16216

19672

bench.threads.tracing (threads)

42959391

17128

24200

tracing.conf

stm32f746g_disco_stm32f746xx

Benchmark

Cycles

FLASH [B]

RAM [B]

Configs

bench.basic (basic)

7951

4608

18552

bench.basic.instr (basic)

29506629

21312

65792

instr_tracing.conf

bench.basic.tracing (basic)

7951

4800

21112

tracing.conf

bench.basic.zpl (basic)

183986

4864

21864

zpl.conf

bench.dhry (dhrystone)

2125

14976

20936

bench.dhry.instr (dhrystone)

6529022

31744

68428

instr_tracing.conf

bench.dhry.tracing (dhrystone)

2125

15232

23476

tracing.conf

bench.dhry.zpl (dhrystone)

2125

15232

23880

zpl.conf

bench.tflite (tflite)

78292

29568

79804

tflite.conf

bench.tflite.tracing (tflite)

77977

29760

83268

tflite.conf, tracing.conf

bench.tflite.zpl (tflite)

84252

29824

84272

tflite.conf, zpl.conf

bench.threads (threads)

6576133

16832

20244

bench.threads.tracing (threads)

47879039

17536

24804

tracing.conf

Benchmarks

ZPL_BENCHMARK_RUN_BASIC

Basic Zephelin benchmark (a very inefficient dot product implementaton)

Based on an inefficient dot product implementation. Uses ZPL scopes for tracing.

ZPL_BENCHMARK_RUN_DHRYSTONE

Dhrystone Zephelin benchmark

Synthetic benchmark for integer operations. Doesn’t rely on any Zephyr features.

ZPL_BENCHMARK_RUN_TFLITE

TFLite-based Zephelin benchmark

Performs inference using a simple TFLite model. Uses ZPL scopes and model tracing.

ZPL_BENCHMARK_RUN_THREADS

Threads-based Zephelin benchmark

Features multiple threads performing a dummy operation on a single resource. Uses Zephyr’s mutexes and semaphores.

Configs

instr_tracing.conf

CONFIG_TRACING=y
CONFIG_INSTRUMENTATION=y
CONFIG_TRACING_CTF=y
CONFIG_TRACING_SYNC=y
CONFIG_TRACING_MUTEX=y
CONFIG_INSTRUMENTATION_BACKEND_TRACING_CORE=y
CONFIG_THREAD_NAME=y
CONFIG_THREAD_MAX_NAME_LEN=20
CONFIG_INSTRUMENTATION_DYNAMIC_TRIGGER=n
CONFIG_MAIN_STACK_SIZE=8196
CONFIG_INSTRUMENTATION_TRIGGER_FUNCTION="benchmark_run"
CONFIG_INSTRUMENTATION_STOPPER_FUNCTION="benchmark_run"

prj.conf

CONFIG_TIMING_FUNCTIONS=y

tflite.conf

CONFIG_MAIN_STACK_SIZE=3072

CONFIG_TEST_RANDOM_GENERATOR=y
CONFIG_TENSORFLOW_LITE_MICRO=y
CONFIG_CPP=y
CONFIG_STD_CPP17=y
CONFIG_REQUIRES_FLOAT_PRINTF=y

tracing.conf

CONFIG_TRACING=y
CONFIG_TRACING_CTF=y
CONFIG_TRACING_SYNC=y
CONFIG_TRACING_MUTEX=y
CONFIG_TRACING_SEMAPHORE=y
CONFIG_TRACING_THREAD=y
CONFIG_TRACING_STACK=y

zpl.conf

CONFIG_TRACING=y
CONFIG_TRACING_CTF=y
CONFIG_TRACING_SYNC=y

CONFIG_ZPL=y
CONFIG_ZPL_TRACE=y
CONFIG_ZPL_TRACE_FULL_MODE=y
CONFIG_ZPL_TRACE_FORMAT_CTF=y
CONFIG_ZPL_SCOPE_MARKING=y

Commits

Project

Commit

zephelin

30cc3a3f3775d6381eab79df868c483942c3dad8

zephyr

3568e1b6d5cdd51a6b964a2a1d6d29200fea2056


Last update: 2026-10-23