自動デバイスプラグインのデバッグ

デバッグログの使用

実行上の問題が発生した場合、他のすべてのプラグインと同様に、Auto-Device は例外とエラー値に関する情報をユーザーに返します。返されたデータがデバッグの目的に十分でない場合、ov::log::Level を使用して詳細情報を取得できます。

ログには 6 つのレベルがあり、明示的に呼び出すことも、OPENVINO_LOG_LEVEL 環境変数を設定することもできます (compile_model() または set_property() によって上書きできます)。

0 - ov::log::Level::NO
1 - ov::log::Level::ERR
2 - ov::log::Level::WARNING
3 - ov::log::Level::INFO
4 - ov::log::Level::DEBUG
5 - ov::log::Level::TRACE

    core = ov.Core()

    # compile a model on AUTO and set log level to debug
    compiled_model = core.compile_model(
        model=model,
        device_name="AUTO",
        config={log.level: log.Level.DEBUG},
    )
    # set log level with set_property and compile model
    core.set_property(
        device_name="AUTO",
        properties={log.level: log.Level.DEBUG},
    )
    compiled_model = core.compile_model(model=model, device_name="AUTO")
ov::Core core;

// read a network in IR, PaddlePaddle, or ONNX format
std::shared_ptr<ov::Model> model = core.read_model("sample.xml");

// compile a model on AUTO and set log level to debug
ov::CompiledModel compiled_model = core.compile_model(model, "AUTO", ov::log::level(ov::log::Level::DEBUG));

// or set log level with set_property and compile model
core.set_property("AUTO", ov::log::level(ov::log::Level::DEBUG));
ov::CompiledModel compiled_model2 = core.compile_model(model, "AUTO");
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

プロパティーは次の形式で情報を返します。

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

ここで、LOG_LEVEL は名前の最初の文字で表されます (ERROR は例外としてフルネームが使用されます)。
例:

[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 ]

インストルメントとトレース・テクノロジー

OpenVINO™ ランタイムと AUTO プラグインの主要なパフォーマンス呼び出しはすべて、インストルメントおよびトレース・テクノロジー (ITT) API を介して計測されます。OpenVINO™ ランタイムで ITT を有効にするには、次のオプションを使用してコンパイルします。

-DENABLE_PROFILING_ITT=ON

詳細については、以下を参照してください。

Linux* でコードのパフォーマンスを解析

インテル® VTune™ プロファイラーを使用してコードのパフォーマンスを解析できます。詳細とインストール手順については、インテル® VTune™ プロファイラー・ユーザー・ガイドを参照してください。インテル® VTune™ プロファイラーがインストールされている場合は、次の手順で解析を構成できます。

  1. ホストマシン上でインテル® VTune™ プロファイラー GUI を起動して、次の操作を行います (バージョン 2021.6 の例)。

    cd /vtune install dir/intel/oneapi/vtune/2021.6.0/env
    source vars.sh
    vtune-gui
    
  2. [Configure Analysis (解析の設定)] を選択します

  3. [Where (どこを)] ペインで、[Local Host (ローカルホスト)] を選択します。

    ../../../../_images/OV_UG_supported_plugins_AUTO_debugging-img01-localhost.png
  4. [What (何を)] ペインで、ローカルシステム上のターゲット・アプリケーションを指定します。

    ../../../../_images/OV_UG_supported_plugins_AUTO_debugging-img02-launch.png
  5. [How (どのように)] ペインで、実行する分析タイプ (例えば、ホットスポット解析) を選択して構成します。最も時間のかかる関数を特定し、ドリルダウンしてソースコードの各行で費やされた時間を確認します。パフォーマンスに最も影響を与えるホットなコードの最適化に集中します。

    ../../../../_images/OV_UG_supported_plugins_AUTO_debugging-img03-hotspots.png
  6. [Start (開始)] ボタンをクリックして解析を開始します。完了すると、アプリケーション内の上位ホットスポットや上位タスクなど、実行の概要が表示されます。

    ../../../../_images/OV_UG_supported_plugins_AUTO_debugging-img04-vtunesummary.png
  7. 自動プラグインに関連する ITT 情報を分析するには、[Bottom-up (ボトムアップ)] タブをクリックし、ドロップダウン・リストから [Task Domain/Task Type/Function/Call Stack (タスクドメイン/タスクタイプ/関数/コールスタック)] を選択します。自動プラグイン関連の ITT 情報は、MULTIPlugin タスクドメインの下に表示されます。

    ../../../../_images/OV_UG_supported_plugins_AUTO_debugging-img05-vtunebottomup.png