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 つのステップが含まれます:

  1. 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
  2. アプリケーションの 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
  3. スナップをインストールし、プラグを接続します。スナップは、同一ユーザーによって公開されている場合にのみ自動的に接続できます。それ以外は、インストール後にアプリケーション・プラグを OpenVINO スロットに手動で接続する必要があります:

    snap connect app:openvino-libs openvino-libs:openvino-libs 
    snap connect app:openvino-3rdparty-libs openvino-libs:openvino-3rdparty-libs