133 lines
5.7 KiB
ReStructuredText
133 lines
5.7 KiB
ReStructuredText
.. {#openvino_docs_OV_UG_supported_plugins_AUTO_debugging}
|
|
|
|
Debugging Auto-Device Plugin
|
|
============================
|
|
|
|
|
|
.. 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
|
|
|
|
|