OpenVINO プラグイン・ライブラリー概要

OpenVINO のプラグイン・アーキテクチャーにより、さまざまなデバイス専用の独立した推論ソリューションを開発してプラグインにすることができます。物理的にプラグインは、新しいプラグイン・インスタンスを作成できる単一の create_plugin_engine 関数をエクスポートする動的ライブラリーとして表されます。

OpenVINO プラグイン・ライブラリー

OpenVINO プラグインの動的ライブラリーは、いくつかの主要コンポーネントで構成されます。

  1. プラグインクラス:

    • 特定タイプのデバイスに関する情報を提供します。

    • バックエンドに依存しない ov::Model とは対照的に、特定デバイスのニューラル・ネットワーク・バックエンド固有のグラフ構造を表すコンパイル済みモデルのインスタンスを作成できます。

    • コンパイル済みのグラフ構造を入力ストリームからコンパイル済みモデルのオブジェクトにインポートできます。

  2. コンパイル済みモデルクラス:

    • 特定のデバイス用にコンパイルされた実行構成であり、その機能が考慮されます。

    • 特定のデバイスとこのデバイスのタスク実行プログラムへの参照を保持します。

    • 推論要求の複数のインスタンスを作成できます。

    • 内部バックエンド固有のグラフ構造を出力ストリームにエクスポートできます。

  3. 推論要求クラス:

    • 推論パイプラインをシリアルに実行します。

    • 推論パイプライン実行プロファイルのパフォーマンス・カウンターを抽出できます。

  4. 非同期推論要求クラス:

    • 推論要求クラスをラップし、デバイス固有のパイプライン構造に基づいて、複数のタスク実行プログラムでパイプライン・ステージを並行して実行します。

  5. プラグイン固有のプロパティー:

    • プラグイン固有のプロパティーを提供します。

  6. リモート・コンテキスト:

    • デバイス固有のリモート・コンテキストを提供します。コンテキストを使用すると、リモートテンソルを作成できます。

  7. リモートテンソル

    • デバイス固有のリモートテンソル API と実装を提供します。

このドキュメントは、プラグイン開発の詳細を示すテンプレート・プラグインに基づいて記述されています。完全にコンパイル可能で最新のテンプレートの完全なコードは、<openvino source dir>/src/plugins/template で見つかります。

詳細ガイド