|
| 1 | +.. _external_module_zephelin: |
| 2 | + |
| 3 | +Zephelin |
| 4 | +######## |
| 5 | + |
| 6 | +Introduction |
| 7 | +************ |
| 8 | + |
| 9 | +`Zephyr Profiling Library`_ (ZPL), or Zephelin for short, is a library which enables capturing |
| 10 | +and reporting runtime performance metrics for profiling and detailed analysis of Zephyr |
| 11 | +applications, with a special focus on applications running AI/ML inference workloads. |
| 12 | + |
| 13 | +In addition to the above, Zephelin also simplifies the analysis of AI runtimes, such as `LiteRT`_ |
| 14 | +and `microTVM`_, allowing you to gain a better understanding of the underlying bottlenecks or |
| 15 | +potential opportunities for optimization. |
| 16 | + |
| 17 | +Zephelin features: |
| 18 | + |
| 19 | +* Tracing execution of Zephyr applications on hardware |
| 20 | +* Obtaining traces using such backends as UART, USB or debug adapter |
| 21 | +* Delivering traces in CTF and TEF formats |
| 22 | +* Scripts for capturing traces from device |
| 23 | +* Collecting readings from: |
| 24 | + |
| 25 | + * Memory - stack, heaps, kernel heaps and memory slabs |
| 26 | + * Sensors - e.g. die temperature sensors |
| 27 | + * Thread analysis - CPU usage |
| 28 | + * AI runtimes - e.g. tensor arena usage in LiteRT |
| 29 | + |
| 30 | +* Displaying details on executed neural network layers in the LiteRT or microTVM runtime: |
| 31 | + |
| 32 | + * Dimensions of inputs, outputs and weights |
| 33 | + * Parameters of layers |
| 34 | + * Time and resources spent on executing specific layers |
| 35 | + |
| 36 | +* Compilation-level and runtime-level configuration of the library |
| 37 | + |
| 38 | +* Ability to configure a profiling tier, controlling the subsystems and the amount of data collected |
| 39 | + |
| 40 | +All of the above can be analyzed with `Zephelin Trace Viewer`_. |
| 41 | + |
| 42 | +Usage With Zephyr |
| 43 | +***************** |
| 44 | + |
| 45 | +To use Zephelin as a Zephyr :ref:`module <modules>`, add the following entry: |
| 46 | + |
| 47 | +.. code-block:: yaml |
| 48 | +
|
| 49 | + manifest: |
| 50 | + projects: |
| 51 | + - name: zephelin |
| 52 | + url: https://github.com/antmicro/zephelin |
| 53 | + revision: main |
| 54 | + path: modules/zephelin # adjust the path as needed |
| 55 | +
|
| 56 | +to a Zephyr submanifest (e.g. ``zephyr/submanifests/zephelin.yaml``) and run ``west update``, or |
| 57 | +add it as a West project in your project's ``west.yaml`` manifest. |
| 58 | + |
| 59 | +Please consult the `Zephelin documentation`_ for more information. |
| 60 | + |
| 61 | +References |
| 62 | +********** |
| 63 | + |
| 64 | +.. target-notes:: |
| 65 | + |
| 66 | +.. _Zephyr Profiling Library: |
| 67 | + https://github.com/antmicro/zephelin |
| 68 | + |
| 69 | +.. _Zephelin documentation: |
| 70 | + https://antmicro.github.io/zephelin/ |
| 71 | + |
| 72 | +.. _Zephelin Trace Viewer: |
| 73 | + https://antmicro.github.io/zephelin-trace-viewer |
| 74 | + |
| 75 | +.. _LiteRT: |
| 76 | + https://ai.google.dev/edge/litert |
| 77 | + |
| 78 | +.. _microTVM: |
| 79 | + https://tvm.apache.org/docs/v0.9.0/topic/microtvm/index.html |
0 commit comments