自動デバイスプラグインのデバッグ¶
デバッグログの使用¶
実行上の問題が発生した場合、他のすべてのプラグインと同様に、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™ プロファイラーがインストールされている場合は、次の手順で解析を構成できます。
-
ホストマシン上でインテル® VTune™ プロファイラー GUI を起動して、次の操作を行います (バージョン 2021.6 の例)。
cd /vtune install dir/intel/oneapi/vtune/2021.6.0/env source vars.sh vtune-gui
[Configure Analysis (解析の設定)] を選択します
-
[Where (どこを)] ペインで、[Local Host (ローカルホスト)] を選択します。
-
[What (何を)] ペインで、ローカルシステム上のターゲット・アプリケーションを指定します。
-
[How (どのように)] ペインで、実行する分析タイプ (例えば、ホットスポット解析) を選択して構成します。最も時間のかかる関数を特定し、ドリルダウンしてソースコードの各行で費やされた時間を確認します。パフォーマンスに最も影響を与えるホットなコードの最適化に集中します。
-
[Start (開始)] ボタンをクリックして解析を開始します。完了すると、アプリケーション内の上位ホットスポットや上位タスクなど、実行の概要が表示されます。
-
自動プラグインに関連する ITT 情報を分析するには、[Bottom-up (ボトムアップ)] タブをクリックし、ドロップダウン・リストから [Task Domain/Task Type/Function/Call Stack (タスクドメイン/タスクタイプ/関数/コールスタック)] を選択します。自動プラグイン関連の ITT 情報は、MULTIPlugin タスクドメインの下に表示されます。