OpenVINO と Ubuntu* Snap の統合#
Snap は、アプリケーションをコンテナ化し、Linux* デバイスに埋め込む方法です。現在、OpenVINO は Ubuntu* でこの形式のデプロイをサポートしています。snap パッケージの構築には、開発環境のセットアップ、必要な構成ファイルの作成、snapcraft ツールを使用した Snap の構築など、いくつかの手順が含まれます。ここでは、OpenVINO ツールキットをアプリケーション snap と統合する方法について説明します:
手法 1: OpenVINO ソースに基づくユーザー・アプリケーション・スナップ#
OpenVINO ライブラリーは、CMake プラグイン (https://snapcraft.io/docs/cmake-plugin) を使用してビルドできます。ビルドしてアプリケーション・スナップ・イメージにインストールするには、アプリケーション snapcraft.yaml で新しい部分を構成する必要があります:
openvino-build:
plugin: cmake
source-type: git
source: https://github.com/openvino.git
source-branch: master
cmake-generator: Ninja
cmake-parameters: - -DENABLE_SAMPLES:BOOL=OFF
- -DENABLE_TESTS:BOOL=OFF
build-environment: - CMAKE_BUILD_PARALLEL_LEVEL: ${SNAPCRAFT_PARALLEL_BUILD_COUNT}
- CMAKE_BUILD_TYPE: Release
build-packages: - build-essential
- ninja-build
- pkg-config
- gzip
手法 2: OpenVINO とユーザー・アプリケーションのスナップを分離#
このアプローチは、OpenVINO ライブラリーとユーザー・アプリケーションが個別のスナップとして配布されることを意味します。これには 3 つのステップが含まれます:
OpenVINO snapcraft.yaml を設定します。
1 番目の方法で説明したように、OpenVINO をビルドしてインストールする部分を追加します:
openvino-build: plugin: cmake source-type: git source: https://github.com/openvino.git source-branch: master cmake-generator: Ninja cmake-parameters: - -DENABLE_SAMPLES:BOOL=OFF - -DENABLE_TESTS:BOOL=OFF build-environment: - CMAKE_BUILD_PARALLEL_LEVEL: ${SNAPCRAFT_PARALLEL_BUILD_COUNT} - CMAKE_BUILD_TYPE: Release build-packages: - build-essential - ninja-build - pkg-config - gzip
OpenVINO Snap によって提供されるスロットを定義します。スロットは、他のスナップが接続しスナップを公開するインターフェイスです:
slots: openvino-libs: interface: content content: openvino-libs read: - $SNAP/usr/local/li openvino-3rdparty-libs: interface: content content: openvino-extra-libs read: - $SNAP/usr/local/runtime/3rdparty/tbb/lib
アプリケーションの snapcraft.yaml を設定します:
snapcraft.yaml ファイルを編集して OpenVINO プラグを含めます。
plugs: openvino-libs: interface: content content: openvino-libs target: $SNAP/openvino-libs default-provider: openvino-libs-test openvino-3rdparty-libs: interface: content content: openvino-extra-libs target: $SNAP/openvino-extra-libs default-provider: openvino-libs-test
OpenVINO スナップを build-snaps に追加します:
parts: app-build: build-snaps: - openvino-libs-test
ビルド部分で OpenVINO 環境を設定します:
parts: app-build: build-environment: - OpenVINO_DIR: /Snap/openvino-libs/current/usr/local/runtime/cmake - LD_LIBRARY_PATH: $LD_LIBRARY_PATH:/snap/openvino-libs/current/usr/local/runtime/3rdparty/tbb/lib
アプリケーションのセクションで OpenVINO 環境を設定します:
apps: app: command: usr/local/app environment: LD_LIBRARY_PATH$LD_LIBRARY_PATH:$SNAP/openvino-libs:$SNAP/openvino-extra-libs
スナップをインストールし、プラグを接続します。スナップは、同一ユーザーによって公開されている場合にのみ自動的に接続できます。それ以外は、インストール後にアプリケーション・プラグを OpenVINO スロットに手動で接続する必要があります:
snap connect app:openvino-libs openvino-libs:openvino-libs snap connect app:openvino-3rdparty-libs openvino-libs:openvino-3rdparty-libs
手法 3 (推奨): OpenVINO Debian パッケージに基づくユーザー・アプリケーション・スナップ #
OpenVINO ツールキットも APT リポジトリー経由で配布されており、スナップで使用できます。サードパーティーの apt リポジトリーを snap の snapcraft.yaml に追加できます (snapcraft ガイドを参照)。
GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB をダウンロードします:
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
gpg を使用してキーファイルからキー ID を特定するには、次のように入力します:
gpg --show-keys ./GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB pub rsa2048 2019-07-26 [SC] [expired: 2023-07-26] E1BA4ECEFB0656C61BF9794936B9569B3F1A1BC7 uid KEY-PIDT-PGP-20190726 pub rsa2048 2020-05-18 [SC] [expires: 2024-05-18] 6113D31362A0D280FC025AAB640736427872A220 uid CN=Intel(R) Software Development Products (PREPROD USE ONLY) pub rsa2048 2023-08-21 [SC] [expires: 2027-08-21] E9BF0AFC46D6E8B7DA5882F1BAC6F0C353D04109 uid CN=Intel(R) Software Development Products
GPG キーを asc ファイルにエクスポートします:
gpg --armor --export E9BF0AFC46D6E8B7DA5882F1BAC6F0C353D04109./GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB > 53D04109.acs
ここで、.asc ファイルの名前は最後の 8 つのシンボルです
このキーを
<project>/snap/keys/folder
に保存します。Snapcraft は対応するキーをインストールします。次に、deb タイプのリポジトリーでトップレベルのパッケージ・リポジトリー・キーワードを使用して、OpenVINO apt リポジトリーを snap の snapcraft.yaml に追加できます:
package-repositories: - type: apt components: [main]main] suites: [ubuntu20]ubuntu20] key-id: E9BF0AFC46D6E8B7DA5882F1BAC6F0C353D04109 url: https://apt.repos.intel.com/openvino/2024
OpenVINO dep パッケージを build-packages および stage-packages 依存関係に追加します:
parts: app-build: build-packages: - openvino-libraries-dev stage-packages: - openvino-libraries-2024.1.0
ユーザー・アプリケーションのビルド