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

デバッグログの使用#

実行上の問題が発生した場合、他のすべてのプラグインと同様に、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() 

# モデルを AUTO でコンパイルし、ログレベルをデバッグに設定 
compiled_model = core.compile_model( 
    model=model, 
    device_name="AUTO", 
    config={log.level: log.Level.DEBUG}, 
) 
# set_property でログレベルを設定し、モデルをコンパイル 
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; 

// R、PaddlePaddle、または ONNX 形式でネットワークを読み取る 
std::shared_ptr<ov::Model> model = core.read_model("sample.xml"); 

// モデルを AUTO でコンパイルし、ログレベルをデバッグに設定 
ov::CompiledModel compiled_model = core.compile_model(model, "AUTO", 
ov::log::level(ov::log::Level::DEBUG)); 

// または set_property でログレベルを設定し、モデルをコンパイル 
core.set_property("AUTO", ov::log::level(ov::log::Level::DEBUG)); 
ov::CompiledModel compiled_model2 = core.compile_model(model, "AUTO");
変数を使用して定義する場合、ログレベル名の代わりに数字を使用する必要があります。例: 

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 を起動して、次の操作を行います:

    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