Files
openvino/docs/OV_Runtime_UG/AutoPlugin_Debugging.md
Maciej Smyk 492bf497d7 [DOCS] Tab reorder for master (#18387)
* tabs-1

* Update configure_devices.md

* tab-2

* tab-order

* Update installing-openvino-from-archive-linux.md

* Update installing-openvino-from-archive-linux.md

* win-linux-fix

* Update GPU_Extensibility.md
2023-07-07 14:31:02 +02:00

5.7 KiB

Debugging Auto-Device Plugin

@sphinxdirective

.. meta:: :description: In OpenVINO Runtime, you can enable Instrumentation and Tracing Technology API (ITT API) of Intel® VTune™ Profiler to control trace data during execution of AUTO plugin.

Using Debug Log ###############

In case of execution problems, just like all other plugins, Auto-Device provides the user with information on exceptions and error values. If the returned data is not enough for debugging purposes, more information may be acquired by means of ov::log::Level.

There are six levels of logs, which can be called explicitly or set via the OPENVINO_LOG_LEVEL environment variable (can be overwritten by compile_model() or set_property()):

0 - ov::log::Level::NO <https://docs.openvino.ai/nightly/enumov_1_1log_1_1Level.html#doxid-group-ov-runtime-cpp-prop-api-1gga9868e1ed6b0286d17cdb0ab85b2cc66bac2f3f489a00553e7a01d369c103c7251>__

1 - ov::log::Level::ERR <https://docs.openvino.ai/nightly/enumov_1_1log_1_1Level.html#doxid-group-ov-runtime-cpp-prop-api-1gga9868e1ed6b0286d17cdb0ab85b2cc66bac2f3f489a00553e7a01d369c103c7251>__

2 - ov::log::Level::WARNING <https://docs.openvino.ai/nightly/enumov_1_1log_1_1Level.html#doxid-group-ov-runtime-cpp-prop-api-1gga9868e1ed6b0286d17cdb0ab85b2cc66bac2f3f489a00553e7a01d369c103c7251>__

3 - ov::log::Level::INFO <https://docs.openvino.ai/nightly/enumov_1_1log_1_1Level.html#doxid-group-ov-runtime-cpp-prop-api-1gga9868e1ed6b0286d17cdb0ab85b2cc66bac2f3f489a00553e7a01d369c103c7251>__

4 - ov::log::Level::DEBUG <https://docs.openvino.ai/nightly/enumov_1_1log_1_1Level.html#doxid-group-ov-runtime-cpp-prop-api-1gga9868e1ed6b0286d17cdb0ab85b2cc66bac2f3f489a00553e7a01d369c103c7251>__

5 - ov::log::Level::TRACE <https://docs.openvino.ai/nightly/enumov_1_1log_1_1Level.html#doxid-group-ov-runtime-cpp-prop-api-1gga9868e1ed6b0286d17cdb0ab85b2cc66bac2f3f489a00553e7a01d369c103c7251>__

.. tab-set::

.. tab-item:: Python :sync: py

  .. doxygensnippet:: docs/snippets/ov_auto.py
     :language: python
     :fragment: [part6]

.. tab-item:: C++ :sync: cpp

  .. doxygensnippet:: docs/snippets/AUTO6.cpp
     :language: cpp
     :fragment: [part6]

.. tab-item:: OS environment variable :sync: os-environment-variable

  .. code-block:: sh

     When defining it via the variable, 
     a number needs to be used instead of a log level name, e.g.:
     
     Linux
     export OPENVINO_LOG_LEVEL=0
     
     Windows
     set OPENVINO_LOG_LEVEL=0

The property returns information in the following format:

.. code-block:: sh

[time]LOG_LEVEL[file] [PLUGIN]: message

in which the LOG_LEVEL is represented by the first letter of its name (ERROR being an exception and using its full name). For example:

.. code-block:: sh

[17:09:36.6188]D[plugin.cpp:167] deviceName:GPU, defaultDeviceID:, uniqueName:GPU_ [17:09:36.6242]I[executable_network.cpp:181] [AUTOPLUGIN]:select device:GPU [17:09:36.6809]ERROR[executable_network.cpp:384] [AUTOPLUGIN] load failed, GPU:[ GENERAL_ERROR ]

Instrumentation and Tracing Technology ######################################

All major performance calls of both OpenVINO™ Runtime and the AUTO plugin are instrumented with Instrumentation and Tracing Technology (ITT) APIs. To enable ITT in OpenVINO™ Runtime, compile it with the following option:

.. code-block:: sh

-DENABLE_PROFILING_ITT=ON

For more information, you can refer to:

  • Intel® VTune™ Profiler User Guide <https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/api-support/instrumentation-and-tracing-technology-apis.html>__

Analyze Code Performance on Linux +++++++++++++++++++++++++++++++++

You can analyze code performance using Intel® VTune™ Profiler. For more information and installation instructions refer to the installation guide (PDF) <https://software.intel.com/content/www/us/en/develop/download/intel-vtune-install-guide-linux-os.html>__ With Intel® VTune™ Profiler installed you can configure your analysis with the following steps:

  1. Open Intel® VTune™ Profiler GUI on the host machine with the following command:

    .. code-block:: sh

    cd /vtune install dir/intel/oneapi/vtune/2021.6.0/env source vars.sh vtune-gui

  2. Select Configure Analysis

  3. In the where pane, select Local Host

    .. image:: _static/images/OV_UG_supported_plugins_AUTO_debugging-img01-localhost.png :align: center

  4. In the what pane, specify your target application/script on the local system.

    .. image:: _static/images/OV_UG_supported_plugins_AUTO_debugging-img02-launch.png :align: center

  5. In the how pane, choose and configure the analysis type you want to perform, for example, Hotspots Analysis: identify the most time-consuming functions and drill down to see time spent on each line of source code. Focus optimization efforts on hot code for the greatest performance impact.

    .. image:: _static/images/OV_UG_supported_plugins_AUTO_debugging-img03-hotspots.png :align: center

  6. Start the analysis by clicking the start button. When it is done, you will get a summary of the run, including top hotspots and top tasks in your application:

    .. image:: _static/images/OV_UG_supported_plugins_AUTO_debugging-img04-vtunesummary.png :align: center

  7. To analyze ITT info related to the Auto plugin, click on the Bottom-up tab, choose the Task Domain/Task Type/Function/Call Stack from the dropdown list - Auto plugin-related ITT info is under the MULTIPlugin task domain:

    .. image:: _static/images/OV_UG_supported_plugins_AUTO_debugging-img05-vtunebottomup.png :align: center

@endsphinxdirective