Qualcomm TensorFlow Lite SDK ソフトウェア ユーザー ガイド
会社ロゴ

改訂履歴

リビジョン 日付 説明
AA 2023年XNUMX月 初回リリース
AB 2023年XNUMX月

Qualcomm TFLite SDK ツールの紹介

Qualcomm TensorFlow Lite ソフトウェア開発キット (Qualcomm TFLite SDK) ツールは、デバイス上の人工知能 (AI) 推論用の TensorFlow Lite フレームワークを提供し、アプリケーション開発者が適切な AI アプリケーションを開発または実行できるようにします。
このドキュメントでは、スタンドアロンの Qualcomm TFLite SDK をコンパイルし、開発環境をセットアップするための手順を段階的に説明します。これにより、次のような開発者ワークフローが可能になります。

  • 開発者がQualcomm TFLite SDKをコンパイルできるビルド環境を設定する
  • スタンドアロンの Qualcomm TFLite SDK アプリケーションの開発

サポートについては、https:// をご覧ください。www.qualcomm.com/support. 次の図は、Qualcomm TFLite SDK ワークフローの概要を示しています。
図1-1 Qualcomm TFLite SDKワークフロー
このツールにはプラットフォームSDKと設定が必要です file (JSON 形式) を使用して、Qualcomm TFLite SDK アーティファクトを生成します。

マルチメディア、AI、コンピューター ビジョン (CV) サブシステムを使用してエンドツーエンドのアプリケーションを構築するには、『Qualcomm Intelligent Multimedia SDK (QIM SDK) クイック スタート ガイド (80-50450-51)』を参照してください。
この表は、Qualcomm TFLite SDKのバージョンとCodeLinaroリリースのマッピングを示しています。 tag:
表1-1 リリース情報
繋がり

Qualcomm TFLite SDK バージョン CodeLinaro リリース tag
バージョン1.0 クアルコム TFLITE.SDK.1.0.r1-00200-TFLITE.0

表1-2 サポートされているQualcomm TFLite SDKバージョン

クアルコム TFLite SDK バージョン サポートされているソフトウェア製品 サポートされているTFLiteバージョン
バージョン1.0 QCS8550.LE.1.0
  • 2.6.0
  • 2.8.0
  • 2.10.1
  • 2.11.1
  • 2.12.1
  • 2.13.0

参考文献
表1-3 関連文書

タイトル 番号
クアルコム
00067.1 QCS8550.LE.1.0 のリリース ノート RNO-230830225415
Qualcomm インテリジェント マルチメディア SDK (QIM SDK) クイック スタート ガイド 80-50450-51
Qualcomm インテリジェント マルチメディア SDK (QIM SDK) リファレンス 80-50450-50
リソース
https://source.android.com/docs/setup/start/initializing

表1-4 頭字語と定義

頭字語または用語 意味
AI 人工知能
BIOS 基本的な入出力システム
CV コンピュータービジョン
インド Itsy パッケージ file
QIM SDK Qualcomm インテリジェント マルチメディア ソフトウェア開発キット
開発キット ソフトウェア開発キット
TFLite テンソルフローライト
動画 Xth 最も近い隣人

Qualcomm TFLite SDKツールのビルド環境をセットアップする

Qualcomm TFLite SDK ツールはソース形式でリリースされるため、コンパイルするためのビルド環境を確立することは必須ですが、一度だけ行うセットアップです。

前提条件

  • Linux ホスト マシンへの sudo アクセス権があることを確認します。
  • Linux ホストのバージョンが Ubuntu 18.04 または Ubuntu 20.04 であることを確認します。
  • ホスト システム上の最大ユーザー ウォッチ数と最大ユーザー インスタンス数を増やします。
  • /etc/sysctl.conf に以下のコマンドラインを追加し、ホストを再起動します: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288

必要なホストパッケージをインストールする

ホスト パッケージは Linux ホスト マシンにインストールされます。
ホスト パッケージをインストールするには、次のコマンドを実行します: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Ubuntu 18.04 以降の場合:
$ sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5- dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
詳細については、https://s をご覧ください。出典: android.com/docs/setup/start/初期化中。

Docker環境をセットアップする

Docker は、ソフトウェアの構築、開発、テスト、配信に使用されるプラットフォームです。SDK をコンパイルするには、Linux ホスト マシンで Docker を構成する必要があります。
Linux ホスト マシンで CPU 仮想化が有効になっていることを確認します。有効になっていない場合は、次の手順を実行して、基本入出力システム (BIOS) 構成設定から有効にします。

  1. BIOSから仮想化を有効にする:
    aシステムの起動時に F1 または F2 を押して BIOS に入ります。BIOS ウィンドウが表示されます。
    b. [詳細設定] タブに切り替えます。
    c. CPU 構成セクションで、仮想化テクノロジーを [有効] に設定します。
    aF12 キーを押して保存して終了し、システムを再起動します。
    これらの手順が機能しない場合は、システムプロバイダーからの特定の指示に従って仮想化を有効にしてください。
  2. Docker の古いインスタンスを削除します。
    $ sudo apt 削除 docker-desktop
    $ rm -r $HOME/.docker/desktop
    $ sudo rm /usr/local/bin/com.docker.cli
    $ sudo apt purge docker-desktop
  3.  docker リモート リポジトリを設定します。
    $ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg — dearmor -o /etc/apt/keyrings/docker.gpg $ echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/ keyrings/ docker.gpg] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null
  4.  Docker エンジンをインストールします。
    $ sudo apt-get アップデート $ sudo apt-get インストール docker-ce docker-ce-cli
  5.  ユーザーを docker グループに追加します:
    $ sudo groupadd docker $ sudo usermod -aG docker $USER
  6.  システムを再起動します。

プラットフォームSDKを生成する

プラットフォーム SDK は、Qualcomm TFLite SDK ツールをコンパイルするための必須要件です。Qualcomm TFLite SDK に必要なすべてのプラットフォーム依存関係を提供します。
プラットフォーム SDK を生成するには、次の手順を実行します。

  1. 優先ソフトウェア製品のビルドを作成します。
    QCS8550.LE.1.0 リリースをビルドする手順は、リリース ノートに記載されています。リリース ノートにアクセスするには、「参照」を参照してください。
    イメージが以前にビルドされている場合は、手順 2 を実行してから、クリーン ビルドを作成します。
  2. 次のコマンドを実行して、ユーザー スペース イメージとプラットフォーム SDK をビルドします。
    QCS8550.LE.1.0の場合、kalama.confのMACHINE_FEATURESにマシン機能qti-tflite-delegateを追加します。 file リリース ノートの指示に従ってビルド環境を入手します。
    ビルドからユーザー スペース イメージを生成した後、次のコマンドを実行してプラットフォーム SDK を生成します。
    $ bitbake -fc populate_sdk qti-robotics-image

Qualcomm TFLite SDK ツールの構築 – 開発者ワークフロー

Qualcomm TFLite SDKツールのワークフローでは、開発者が構成を提供する必要があります。 file 有効な入力エントリを使用します。tflite-tools プロジェクト (Qualcomm TFLite SDK ソース ツリーに存在) のヘルパー シェル スクリプトは、Qualcomm TFLite SDK ワークフローに使用できるシェル環境をセットアップするためのヘルパー ユーティリティ関数を提供します。
開発者は、コンテナ内で Qualcomm TFLite SDK プロジェクトをビルドし、tflite-tools によって提供されるユーティリティを使用して成果物を生成します。
Qualcomm TFLite SDK コンテナが構築された後、開発者はコンテナにアタッチし、コンテナ シェル環境のヘルパー ユーティリティを使用して継続的な開発を行うことができます。

  • USB/adb 経由で Linux ホストに接続された Qualcomm デバイスに Qualcomm TFLite SDK アーティファクトをインストールする機能があります。
  • Qualcomm TFLite SDK アーティファクトをコンテナから、Qualcomm デバイスが接続されている別のホスト マシンにコピーする機能もあります。
    繋がり

次の図は、Qualcomm TFLite SDK をビルドするためのヘルパー スクリプトを使用してコンテナー ビルド環境をセットアップした後に使用できるユーティリティ セットを示しています。
繋がり

図はユーティリティの実行順序を示しています。
図4-3 ホスト上のユーティリティのシーケンス
繋がり

Qualcomm TFLite SDK を同期してビルドする
Qualcomm TFLite SDK は、Docker イメージの作成時にコンパイルされます。Qualcomm TFLite SDK を同期してビルドするには、次の手順を実行します。

  1. ホスト上にディレクトリを作成する file Qualcomm TFLite SDKワークスペースを同期するためのシステム。
    examp上: $mkdir $cd
  2. CodeLinaro から Qualcomm TFLite SDK ソースコードを取得します。
    $ リポジトリ初期化 -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ manifest.git –repo-branch=qc/stable –repo-url=git://git.quicinc.com/ tools/repo.git -m TFLITE.SDK.1.0.r1-00200-TFLITE.0.xml -b リリース && リポジトリ同期 -qc –no-tags -j
  3. ホスト上にディレクトリを作成する file Dockerにマウントできるシステム。例:ample: mkdir-p / このディレクトリは Linux ホスト マシン上の任意の場所に作成でき、Qualcomm TFLite SDK プロジェクトが同期されている場所に依存しません。コンテナー内でワークフローが完了すると、Qualcomm TFLite SDK 成果物は、この手順で作成されたディレクトリにあります。
  4. JSON設定を編集する file /tflite-tools/targets/le-tflite-tools-builder.json に次のエントリが存在します。
    「イメージ」: 「tflite-tools-builder」、「デバイスOS」: 「le」、「追加_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “OFF”, “Gpu_delegate”: “ON”, “Xnnpack_delegate”: “ON” }, “TFLite_rsync_destination”: “/”, “SDK_path”: “/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>”, “SDK_shell_file”: “”, “Base_Dir_Location”: “” }
    json設定に記載されているエントリの詳細については fileDocker.mdのreadmeを参照してください file /tflite-tools/ にあります。
    注記 QCS8550 では、Qualcomm® Hexagon™ DSP デリゲートはサポートされていません。
  5. 環境を設定するためのスクリプトをソースします。
    $ cd /tflite-tools $ ソース ./scripts/host/docker_env_setup.sh
  6.  Qualcomm TFLite SDK の Docker イメージをビルドします: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json ビルドのセットアップが失敗した場合は、「Docker セットアップのトラブルシューティング」を参照してください。正常に完了すると、次のメッセージが表示されます: “Status:Build image complete successfully!!” この手順を実行すると、Qualcomm TFLite SDK もビルドされます。
  7.  Qualcomm TFLite SDKのDockerコンテナを実行します。これにより、コンテナが起動し、 tags JSON構成で提供される file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
  8. 前の手順で開始したコンテナーに接続します。
    $ docker アタッチ

Qualcomm TFLite SDKがコンパイルされ、成果物は展開する準備ができており、さらに
QIM SDK TFLite プラグインを生成するために使用されます。

デバイスをホストに接続し、アーティファクトを展開する]

コンパイル後、デバイスをホストに接続して展開するための2つのメカニズムがあります。
Qualcomm TFLite SDK アーティファクト。

  • ローカル Linux ホストに接続されたデバイス:
    開発者はデバイスをワークステーションに接続し、コンテナから Qualcomm TFLite SDK アーティファクトをデバイス (QCS8550) に直接インストールします。
  • リモート ホストに接続されたデバイス:
    開発者はデバイスをリモート ワークステーションに接続し、Windows および Linux プラットフォーム上のパック マネージャー インストーラー コマンドを使用して、Qualcomm TFLite SDK アーティファクトをデバイスにインストールできます (QCS8550)

図4-4 デバイスボードと開発者およびリモートワークステーションの接続
繋がり

デバイスをワークステーションに接続する

デバイスはワークステーションに接続されており、開発コンテナは USB/adb 経由でデバイスにアクセスできます。
図は、tagQualcomm TFLite SDK ワークフローのシーケンスは次のとおりです。
繋がり

  1. 次のコマンドを実行して、アーティファクトをデバイスにインストールします。
    $ tflite-tools-デバイスの準備
    $ tflite-tools-デバイスデプロイ
  2. アーティファクトをアンインストールするには、次のコマンドを実行します。
    $ tflite-tools-デバイスパッケージ削除

デバイスをリモートマシンに接続する

デバイスはリモート マシンに接続されており、Qualcomm TFLite SDK コンテナーは USB/ad b 経由でデバイスにアクセスできません。
図は、tagQualcomm TFLite SDK ワークフローのシーケンスは次のとおりです。
繋がり

tflite-toolsコンテナで次のコマンドを実行して、成果物をリモートマシンにコピーします。
デバイスのパッケージ マネージャーによって異なります。
$ tflite-tools-remote-sync-ipk-rel-pkg
注記 リモートマシン情報はJSON構成で提供されます file.
Windows プラットフォーム用のアーティファクトをインストールする
Qualcomm TFLite SDK アーティファクトは、リモート マシンのオペレーティング システムに基づいてデバイスにインストールできます。

Windows プラットフォームの場合は、次の手順を実行します。
PowerShell では、次のスクリプトを使用します: PS C:
> adb root PS C:> adb enable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb root PS C:> adb remount PS C:> adb shell mount -o remount,rw / PS C:> adb shell “mkdir -p /tmp” PS C:> adb push /tmp パッケージが ipk (QCS8550.LE.1.0 用) の場合は、次のコマンドを使用します。 PS C:> adb shell “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”

Linux プラットフォーム用のアーティファクトをインストールする
次のコマンドを使用します。
$ adb root $ adb enable-verity $ adb reboot $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp パッケージが ipk の場合 (QCS8550.LE.1.0 の場合): $ adb shell “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”

Dockerイメージをクリーンアップする
開発者ワークフローを完了したら、ディスク上のストレージを解放するために Docker 環境をクリーンアップする必要があります。Docker をクリーンアップすると、未使用のコンテナーとイメージが削除され、ディスク領域が解放されます。
次のコマンドを使用して、Docker イメージをクリーンアップします。

  1. Linux ワークステーションで次のコマンドを実行します。
    $ cd /tfliteツール
  2. コンテナを停止します。
    $ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json
  3. コンテナを削除します。
    $ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json
  4. 古い Docker イメージを削除します。
    $ tflite-tools-ホストイメージのクリーンアップ

Docker セットアップのトラブルシューティング

tflite-tools-host-build-image コマンドが Nospace left on device メッセージを返す場合は、docker ディレクトリを /local/mnt に移動します。セットアップのトラブルシューティングを行うには、次の手順を実行します。

  1. 既存のDockerをバックアップする files:
    $ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(日付 + %s).tar.gz
  2. docker を停止します。
    $ サービス docker 停止
  3. docker プロセスが実行されていないことを確認します。
    $ ps 偽 | grep docker
  4. docker ディレクトリ構造を確認します。
    $ sudo ls /var/lib/docker/
  5. docker ディレクトリを新しいパーティションに移動します。
    $ mv /var/lib/docker /local/mnt/docker
  6. 新しいパーティションの docker ディレクトリへのシンボリック リンクを作成します。
    $ ln -s /local/mnt/docker /var/lib/docker
  7. docker ディレクトリ構造が変更されていないことを確認します。
    $ sudo ls /var/lib/docker/
  8. dockerを起動します:
    $ サービスdocker開始
  9. docker ディレクトリを移動した後、すべてのコンテナを再起動します。

LinuxワークステーションでTFLite SDKを生成する

TFLite SDK ワークフローは、Linux ワークステーションを使用して、コンテナーなしで有効にすることができます。この手順は、コンテナーを使用する代わりに使用できます。
Qualcomm TFLite SDK を同期してビルドするには、次の手順を実行します。

  1. ホスト上にディレクトリを作成する file Qualcomm TFLite SDKワークスペースを同期するためのシステム。例:amp上:
    $mkdir
    $cd
  2. CodeLinaro から Qualcomm TFLite SDK ソースコードを取得します。
    $ リポジトリ初期化 -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ manifest.git –repo-branch=qc/stable –repo-url=git://git.quicinc.com/ tools/repo.git -m TFLITE.SDK.1.0.r1-00200-TFLITE.0.xml -b リリース && リポジトリ同期 -qc –no-tags -j8 && リポジトリ同期 -qc –no-tags -j8
  3. 3. JSON設定を編集する file 存在する/tflite-tools/targets/le-tflite-tools-builder.json に次のエントリを追加します。
    「イメージ」: 「tflite-tools-builder」、「デバイスOS」: 「le」、「追加_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “OFF”, “Gpu_delegate”: “ON”, “Xnnpack_delegate”: “ON” }, “TFLite_rsync_destination”: “”, “SDK_path”: “/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>”, “SDK_shell_file”: “、“Base_Dir_Location”: “”
    json設定に記載されているエントリの詳細については fileDocker.mdのreadmeを参照してください file で/tflite-tools/ です。
    注記 QCS8550では、Hexagon DSPデリゲートはサポートされていません。
  4. 環境を設定するためのスクリプトをソースします。
    $ cd /tfliteツール
    $ ソース ./scripts/host/host_env_setup.sh
  5. Qualcomm TFLite SDK をビルドします。
    $ tflite-tools-setup ターゲット/le-tflite-tools-builder.json
  6.  同じLinuxシェルで次のユーティリティコマンドを実行して、TFLite SDKアーティファクトを収集します。 
    TFLite_rsync_destination。
    $ tflite-tools-host-get-rel-package ターゲット/le-tflite-tools-builder.json
    $ tflite-tools-host-get-dev-package ターゲット/le-tflite-tools-builder.json
  7. オペレーティング システムに基づいてアーティファクトをインストールする
    • Windowsプラットフォームの場合、PowerShellでは次のスクリプトを使用します。
      PS C:> adb root PS C:> adb disabled-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb root PS C:> adb remount PS C:> adb shell mount -o remount,rw / PS C:> adb shell “mkdir -p /tmp” PS C:> adb push /tmp
      パッケージが ipk (QCS8550.LE.1.0 用) の場合は、次のコマンドを使用します。
      PS C:> adb shell “opkg –force-depends –force-reinstall –forceoverwrite install /tmp/
      Linux プラットフォームの場合は、次のスクリプトを使用します。
      $ adb root $ adb disabled-verity $ adb reboot $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp パッケージが ipk の場合 (QCS8550.LE.1.0 の場合):
      $ adb シェル “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”

QIM SDK ビルド用の Qualcomm TFLite SDK アーティファクトを生成する

生成されたアーティファクトを使用して QIM SDK で Qualcomm TFLite SDK GStreamer プラグインを有効にするには、次の手順を実行します。

  1. 同期の手順を完了し、Qualcomm TFLite SDK をビルドしてから、次のコマンドを実行します: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
    タール file 生成されます。指定されたパスにQualcomm TFLite SDKが含まれています。 「TFLite_rsync_destination」
  2. Qualcomm TFLite SDK GStreamerプラグインを有効にするには、tarを使用します。 file JSON設定の引数として file QIM SDK ビルド用。
    QIM SDK のコンパイルの詳細については、『Qualcomm Intelligent Multimedia SDK (QIM SDK) クイック スタート ガイド (80-50450-51)』を参照してください。

Qualcomm TFLite SDKを段階的に構築する

Qualcomm TFLite SDK を初めてビルドする場合は、「Qualcomm TFLite SDK ツールのビルド - 開発者ワークフロー」を参照してください。同じビルド環境を増分開発に再利用できます。
図に示されているヘルパー ユーティリティ (コンテナー内) は、開発者が変更したアプリケーションやプラグインをコンパイルするために使用できます。
図5-1 コンテナ内のワークフロー

繋がり

コード ディレクトリでコードの変更が完了したら、次の操作を行います。

  1. 変更したコードをコンパイルします。
    $ tflite-tools-増分ビルド-インストール
  2. パッケージのコンパイル済みコード:
    $ tflite-tools-ipk-rel-pkg または $ tflite-tools-deb-rel-pkg
  3. リリースパッケージをホストと同期する file システム:
    $ tflite-tools-remote-sync-ipk-rel-pkg
    Or
    $ tflite-tools-remote-sync-deb-rel-pkg
  4. 開発パッケージを準備します。
    $ tflite-tools-ipk-dev-pkg
    コンパイルされた成果物はJSONに記載されているTFLite_rsync_destinationフォルダにあります。 file任意のディレクトリにコピーできます。

QNN外部TFLiteデリゲートと連携

TFLite 外部デリゲートを使用すると、Qualcomm の QNN などの信頼できるサードパーティが提供するライブラリを使用して、モデル (一部または全体) を別のエグゼキューターで実行できます。このメカニズムでは、GPU や Hexagon Tensor Processor (HTP) などのさまざまなデバイス アクセラレータを推論に活用できます。これにより、開発者はデフォルトの TFLite から柔軟かつ分離された方法で推論を高速化できます。

前提条件:

  • QNN AI スタックを抽出するには、必ず Ubuntu ワークステーションを使用してください。
  • Qualcomm TFLite SDKと連携してQNNバージョン2.14を使用するようにしてください。

Qualcomm TFLite SDK は、TFLite の QNN 外部デリゲートを介して、複数の QNN バックエンドで推論を実行できます。共通のフラットバッファ表現を持つ TFLite モデルは、GPU および HTP で実行できます。
Qualcomm TFLite SDK パッケージがデバイスにインストールされたら、次の手順を実行して QNN ライブラリをデバイスにインストールします。

  1. Ubuntu 用の Qualcomm Package Manager 3 をダウンロードします。
    a. https://をクリックしますクアルコム/ をクリックし、[ツール] をクリックします。
    b. 左側のペインの「検索ツール」フィールドに「QPM」と入力します。「システム OS」リストから「Linux」を選択します。
    検索結果には、Qualcomm パッケージ マネージャーのリストが表示されます。
    c. Qualcomm Package Manager 3 を選択し、Linux debian パッケージをダウンロードします。
  2. Linux 用の Qualcomm Package Manager 3 をインストールします。次のコマンドを使用します。
    $ dpkg -i –force-overwrite /path/to/
    QualcommPackageManager3.3.0.83.1.Linux-x86.deb
  3. Qualcomm®をダウンロード
    Ubuntu ワークステーション上の AI Engine Direct SDK。
    a. https://をクリックしますクアルコム/ をクリックし、[ツール] をクリックします。
    b. 左側のペインの「検索ツール」フィールドに「AI スタック」と入力します。「システム OS」リストから「Linux」を選択します。
    A さまざまな AI スタック エンジンを含むドロップダウン リストが表示されます。
    c. Qualcomm® AI Engine Direct SDK をクリックし、Linux v2.14.0 パッケージをダウンロードします。
  4. Ubuntu ワークステーションに Qualcomm® AI Engine Direct SDK をインストールします。
    a. ライセンスをアクティブ化します。
    qpm-cli –license-activate qualcomm_ai_engine_direct
    b AI Engine Direct SDK をインストールします。
    $ qpm-cli –extract /path/to/ qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik
  5. adb push を使用して、Ubuntu ワークステーションからデバイスにライブラリをプッシュします。
    $ cd /opt/qcom/aistack/qnn/2.14.0.230828 $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnDsp.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnDspV66Stub.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnGpu.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnHtpPrepare.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnHtp.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnHtpV68Stub.so /usr/lib/ $ adb プッシュ ./lib/aarch64-oe-linux-gcc11.2/ libQnnSaver.so /usr/lib/ $ adb プッシュ ./lib/aarch64-oe-linux-gcc11.2/ libQnnSystem.so /usr/lib/ $ adb プッシュ ./lib/aarch64-oe-linux-gcc11.2/ libQnnTFLiteDelegate.so /usr/lib/ $ adb プッシュ ./lib/hexagon-v65/unsigned/ libQnnDspV65Skel.so /usr/lib/rfsa/adsp $ adb プッシュ ./lib/hexagon-v66/unsigned/ libQnnDspV66Skel.so /usr/lib/rfsa/adsp $ adb プッシュ ./lib/hexagon-v68/unsigned/ libQnnHtpV68Skel.so /usr/lib/rfsa/adsp $ adb プッシュ ./lib/hexagon-v69/unsigned/ libQnnHtpV69Skel.so /usr/lib/rfsa/adsp $ adb プッシュ ./lib/hexagon-v73/unsigned/ libQnnHtpV73Skel.so /usr/lib/rfsa/adsp

Qualcomm TFLite SDK のテスト

Qualcomm TFLite SDKは、特定のexamp開発者が評価したいモデルの検証、ベンチマーク、精度の取得に使用できる、さまざまなアプリケーションが用意されています。
Qualcomm TFLite SDKパッケージがデバイスにインストールされると、デバイス上でランタイムが利用可能になり、これらの例を実行できるようになります。ampファイルアプリケーション。
前提条件
デバイス上に次のディレクトリを作成します。
$ adb シェル “mkdir /data/Models”
$ adb シェル “mkdir /data/Labels”
$ adb シェル “mkdir /data/profiling”

ラベル画像

ラベル イメージは、Qualcomm TFLite SDK によって提供されるユーティリティで、事前トレーニング済みおよび変換済みの TensorFlow Lite モデルをロードし、それを使用して画像内のオブジェクトを認識する方法を示します。前提条件:
ダウンロードampモデルと画像:
互換性のあるモデルであればどれでも使用できますが、次の MobileNet v1 モデルは、1000 種類の異なるオブジェクトを認識するようにトレーニングされたモデルの優れたデモンストレーションを提供します。

  • モデルを取得
    $curl https://ストレージ/download.tensorflow.org/models/ mobilenet_v1_2018_02_22/mobilenet_v1_1.0_224.tgz | tar xzv -C /data $ mv /data/mobilenet_v1_1.0_224.tflite /data/Models/
  • ラベルを取得する
    $curl https://ストレージ/download.tensorflow.org/models/ mobilenet_v1_1.0_224_frozen.tgz | tar xzv -C /data mobilenet_v1_1.0_224/ labels.txt
    $ mv /data/mobilenet_v1_1.0_224/labels.txt /data/ラベル/
    Qualcomm TFLite SDK Docker コンテナに接続すると、イメージは次の場所にあります。
    “/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp”
    a. これを押してください file /data/Labels/へ
    b. 次のコマンドを実行します:
    $ adb シェル “label_image -l /data/Labels/labels.txt -i /data/Labels/ grace_hopper.bmp -m /data/Models/mobilenet_v1_1.0_224.tflite -c 10 -j 1 -p 1”

ベンチマーク

Qualcomm TFLite SDK は、さまざまな実行時間のパフォーマンスを計算するためのベンチマーク ツールを提供します。
これらのベンチマーク ツールは現在、次の重要なパフォーマンス メトリックの統計を測定および計算します。

  • 初期化時間
  • ウォームアップ状態の推定時間
  • 定常状態の推定時間
  • 初期化時のメモリ使用量
  • 全体的なメモリ使用量

前提条件

TFLite Model Zoo (https://) からテストするモデルをプッシュします。tfhub.dev/)を/data/Models/にコピーします。 次のスクリプト:  

  • XNNパック
    $ adb シェル “benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_xnnpack=true –num_threads=4 –max_secs=300 –profiling_output_csv_file=/データ/プロファイリング/”
  • GPU デリゲート
    $ adb シェル “benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_gpu=true –num_runs=100 –warmup_runs=10 — max_secs=300 –profiling_output_csv_file=/データ/プロファイリング/”
  • 外部代表
    QNN 外部デリゲート GPU:
    浮動小数点モデルで推論を実行します。
    $ adb シェルコマンド “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:gpu;library_path:/usr/lib/ libQnnGpu.so;skel_library_dir:/usr/lib/rfsa/adsp'”
    QNN 外部代表者 HTP:
    量子モデルで推論を実行します。
    $ adb シェルコマンド “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:htp;library_path:/usr/lib/ libQnnHtp.so;skel_library_dir:/usr/lib/rfsa/adsp'”

精度ツール

Qualcomm TFLite SDK は、さまざまな実行時間でモデルの精度を計算するための精度ツールを提供します。

  • GPUデリゲートによる分類
    必要なものをダウンロードする手順 fileテストするファイルは、「/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md」にあります。
    このツールを実行するためのバイナリはすでに SDK の一部であるため、開発者はそれを再度ビルドする必要はありません。
    $ adb シェル “image_classify_run_eval — モデル_file=/data/Models/ –ground_truth_images_path=/data/ — ground_truth_labels=/data/ –model_output_labels=/ data/ –delegate=gpu”
  • XNN パックによるオブジェクト検出
    $ adb シェル “inf_diff_run_eval –model_file=/data/Models/ –delegate=xnnpac

法的情報

この文書へのアクセスと使用、および仕様、参照ボード file本書に含まれる図面、診断およびその他の情報(以下、総称して "ドキュメンテーション")、 (あなたが代表する法人またはその他の法人を含む) 「あなた」または「あなたの」) 利用規約への同意 ("利用規約") 以下に定める利用規約に同意しない場合は、このドキュメントを使用することはできません。また、そのコピーを直ちに破棄するものとします。

  1. 法的通知。
    このドキュメントは、本ドキュメントに記載されているQualcomm Technologies, Inc.(以下「Qualcomm Technologies」)およびその関連会社の製品およびサービスの提供に関するお客様の内部使用のみを目的としてお客様に提供されるものであり、他の目的には使用できません。本ドキュメントは、Qualcomm Technologiesの事前の書面による承認なしに、いかなる方法でも変更、編集、または修正することはできません。本ドキュメントの無許可の使用または開示は、
    本書または本書に含まれる情報は固く禁じられており、お客様は、本書の全部または一部の不正使用または開示によって Qualcomm Technologies、その関連会社およびライセンサーが被った損害または損失について、Qualcomm Technologies、その関連会社およびライセンサーを補償することに同意するものとします。Qualcomm Technologies、その関連会社およびライセンサーは、本書に対するすべての権利および所有権を保持します。本書または本書で開示される情報によって、商標、特許、著作権、マスクワーク保護権、またはその他の知的財産権のライセンスが付与または暗示されることはありません。これには、本書の情報のいずれかを具体化する製品、サービス、またはテクノロジーの提供を作成、使用、輸入、または販売するライセンスが含まれますが、これらに限定されません。
    このドキュメントは、明示、黙示、法定、またはその他のいかなる種類の保証もなく、「現状のまま」提供されます。法律で許可される最大限の範囲で、QUALCOMM TECHNOLOGIES、その関連会社およびライセンサーは、所有権、商品性、非侵害、特定目的への適合性、満足のいく品質、完全性または正確性、および商慣習または取引過程もしくは履行過程から生じるすべての保証を明確に否認します。さらに、QUALCOMM TECHNOLOGIES またはその関連会社またはライセンサーは、お客様が本ドキュメントを信頼して被った、または行ったいかなる費用、損失、使用、または行為についても、お客様または第三者に対して一切の責任を負いません。
    このドキュメントで参照されている特定の製品キット、ツール、および資料については、それらのアイテムにアクセスしたり使用したりする前に、追加の利用規約に同意することが求められる場合があります。
    このドキュメントで指定されている技術データは、米国およびその他の適用可能な輸出管理法の対象となる場合があります。米国およびその他の適用可能な法律に反する送信は固く禁じられています。
    このドキュメントのいかなる内容も、ここで参照されるコンポーネントまたはデバイスの販売を申し出るものではありません。
    このドキュメントは予告なしに変更されることがあります。本利用規約と Webサイトの利用規約 www.qualcomm.com または、 www.qualcomm.com、本利用規約が優先します。本利用規約と、お客様による本ドキュメンテーションへのアクセスおよび使用に関してお客様と Qualcomm Technologies または Qualcomm Technologies 関連会社との間で締結されたその他の契約 (書面またはクリックスルー) との間に矛盾がある場合は、その他の契約が優先します。
    本利用規約は、抵触法の原則に関わらず、国際物品売買契約に関する国連条約を除き、カリフォルニア州法に準拠し、同法に従って解釈および執行されるものとします。本利用規約に起因または関連する紛争、請求、論争、または本利用規約の違反や有効性については、カリフォルニア州サンディエゴ郡の管轄裁判所のみで裁定されるものとし、お客様は、その目的のために当該裁判所の個人管轄権に同意するものとします。
  2. 商標および製品の帰属に関する声明。
    Qualcomm は、Qualcomm Incorporated の商標または登録商標です。Arm は、米国およびその他の国における Arm Limited (またはその子会社) の登録商標です。Bluetooth® ワードマークは、Bluetooth SIG, Inc. が所有する登録商標です。このドキュメントで参照されているその他の製品名およびブランド名は、それぞれの所有者の商標または登録商標である場合があります。
    このドキュメントで参照されている Snapdragon および Qualcomm ブランドの製品は、Qualcomm Technologies, Inc. および/またはその子会社の製品です。Qualcomm の特許技術は、Qualcomm Incorporated によってライセンスされています。

会社ロゴ

ドキュメント / リソース

Qualcomm TensorFlow Lite SDK ソフトウェア [pdf] ユーザーガイド
TensorFlow Lite SDK ソフトウェア、Lite SDK ソフトウェア、SDK ソフトウェア、ソフトウェア

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *