Windrose

Zephelin

antmicro · 34 GitHub stars

Profiling library that captures runtime metrics of Zephyr apps, with a focus on AI/ML inference.

Zephelin

antmicro · 34 GitHub stars

Profiling library that captures runtime metrics of Zephyr apps, with a focus on AI/ML inference.

  • Follows branch main: each west update will get its latest commits. To stay on one version, it is recommended to use a release tag.

Install

# From the workspace root
curl -fsSL https://kartben.github.io/windrose/m/zephelin.yaml \
     -o zephyr/submanifests/zephelin.yaml
west update zephelin

Details

Revision
main
License
Apache-2.0
Maintainers
@antmicro
Last commit
21 days ago

About

Zephyr Profiling Library (ZPL), or Zephelin for short, is a library which enables capturing and reporting runtime performance metrics for profiling and detailed analysis of Zephyr applications, with a special focus on applications running AI/ML inference workloads.

In addition to the above, Zephelin also simplifies the analysis of AI runtimes, such as LiteRT and microTVM, allowing you to gain a better understanding of the underlying bottlenecks or potential opportunities for optimization.

Zephelin features:

  • Tracing execution of Zephyr applications on hardware
  • Obtaining traces over UART, USB or a debug adapter
  • Delivering traces in CTF and TEF formats
  • Scripts for capturing traces from a device
  • Collecting readings of memory (stack, heaps, kernel heaps, memory slabs), sensors such as die temperature, thread CPU usage and AI runtimes such as tensor arena usage in LiteRT
  • Details on neural network layers executed in the LiteRT or microTVM runtime: dimensions of inputs, outputs and weights, layer parameters, and time and resources spent per layer
  • Compilation-level and runtime-level configuration of the library
  • Ability to configure a profiling tier, controlling the subsystems and the amount of data collected

All of the above can be analyzed with Zephelin Trace Viewer.