.. _external_module_zephelin: Zephelin ######## Introduction ************ `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 using such backends as UART, USB or debug adapter * Delivering traces in CTF and TEF formats * Scripts for capturing traces from device * Collecting readings from: * Memory - stack, heaps, kernel heaps and memory slabs * Sensors - e.g. die temperature sensors * Thread analysis - CPU usage * AI runtimes - e.g. tensor arena usage in LiteRT * Displaying details on executed neural network layers in the LiteRT or microTVM runtime: * Dimensions of inputs, outputs and weights * Parameters of layers * Time and resources spent on executing specific layers * 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`_. Usage With Zephyr ***************** To use Zephelin as a Zephyr :ref:`module `, add the following entry: .. code-block:: yaml manifest: projects: - name: zephelin url: https://github.com/antmicro/zephelin revision: main path: modules/zephelin # adjust the path as needed to a Zephyr submanifest (e.g. ``zephyr/submanifests/zephelin.yaml``) and run ``west update``, or add it as a West project in your project's ``west.yaml`` manifest. Please consult the `Zephelin documentation`_ for more information. References ********** .. target-notes:: .. _Zephyr Profiling Library: https://github.com/antmicro/zephelin .. _Zephelin documentation: https://antmicro.github.io/zephelin/ .. _Zephelin Trace Viewer: https://antmicro.github.io/zephelin-trace-viewer .. _LiteRT: https://ai.google.dev/edge/litert .. _microTVM: https://tvm.apache.org/docs/v0.9.0/topic/microtvm/index.html