フレームワークの使用

Qualcomm® AI Hub は、コンパイル、プロファイル、および推論ジョブに対して複数の Qualcomm® AI Engine Direct バージョンの使用をサポートしています。

フレームワークの問い合わせ

サポートされているすべての Qualcomm® AI Engine Direct バージョンの一覧をプログラムから取得するには、get_frameworks() を使用します。

import qai_hub as hub

client = hub.Client()
supported_frameworks = client.get_frameworks()
print(supported_frameworks)

これはCLIを用いても利用可能です

qai-hub list-frameworks

各フレームワークには2つの特別なタグがあります:

  • default: Qualcomm® AI Hub Workbench で使用されるフレームワークのデフォルトバージョンを指します。

  • latest:Qualcomm® AI Hub Workbench で使用されているフレームワークの最新リリース版を指します。

フレームワークバージョンを使用してジョブを提出する

コンパイル、プロファイル、または推論ジョブは、get_frameworks() に一覧表示されている api_version で識別される特定のフレームワークバージョンを指定して送信できます:

import qai_hub as hub

client = hub.Client()
compile_job = client.submit_compile_job(
    model="mobilenet_v2.onnx",
    device=hub.Device("Samsung Galaxy S23 (Family)"),
    target_runime="qnn_context_binary",
    options="--qairt_version 2.31"
)
print(compile_job)

フレームワークは default または latest のタグを使用して識別することもできます。次のコードサンプルは、Qualcomm® AI Engine Direct フレームワークの最新の利用可能なバージョンを使用します

import qai_hub as hub

client = hub.Client()
compile_job = client.submit_compile_job(
    model="mobilenet_v2.onnx",
    device=hub.Device("Samsung Galaxy S23 (Family)"),
    target_runime="qnn_context_binary",
    options="--qairt_version latest"
)
print(compile_job)

次のコードサンプルは、Qualcomm® AI Engine Direct フレームワークのデフォルト(最も安定した)バージョンを使用します。

import qai_hub as hub

client = hub.Client()
compile_job = client.submit_compile_job(
    model="mobilenet_v2.onnx",
    device=hub.Device("Samsung Galaxy S23 (Family)"),
    target_runime="qnn_context_binary",
    options="--qairt_version default"
)
print(compile_job)

バージョン選択

明示的な Qualcomm® AI Runtime バージョンを指定してプロファイルまたは推論ジョブを送信する場合、Qualcomm® AI Hub Workbench は入力モデルと互換性がある場合、そのバージョンを使用します。要求されたバージョンが入力モデルと互換性がない場合、Qualcomm® AI Hub Workbench はエラーを返します。

Qualcomm® AI Runtime バージョンを明示的に指定せずにプロファイルまたは推論ジョブを提出する場合、Qualcomm® AI Hub Workbench は入力モデルに基づいて自動的に互換性のあるバージョンを選択します。

入力モデルが Qualcomm® AI Engine Direct アセットでない場合(例: TensorFlow Lite モデルや標準的な ONNX モデル)、Qualcomm® AI Hub Workbench は常にデフォルトの Qualcomm® AI Engine Direct バージョンを選択します。

入力モデルが DLC またはコンテキストバイナリの Qualcomm® AI Engine Direct アセットである場合、Qualcomm® AI Hub Workbench はアセットから Qualcomm® AI Engine Direct バージョンを取得し、互換性のある Qualcomm® AI Engine Direct バージョンを選択します。デフォルトの Qualcomm® AI Engine Direct バージョンがモデルと互換性がある場合はそれが使用され、互換性がない場合は最新の Qualcomm® AI Engine Direct バージョンが使用されます。互換性のあるバージョンが存在しない場合はエラーが返されます。