デバイスの検出と割り当て
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Android 10 では、ニューラル ネットワーク API(NNAPI)に、機械学習フレームワーク ライブラリとアプリが使用可能なデバイスに関する情報を取得し、モデルを実行するデバイスを指定できるようにする機能が導入されました。アプリは、使用可能なデバイスに関する情報を得ることにより、デバイスで見つかったドライバの正確なバージョンから、既知の非互換性の問題を回避できるようになります。実行するデバイスをモデルのセクションごとに指定できるようになるため、デプロイする製品に合わせてアプリを最適化できます。
NN HAL 1.2 の実装には、デバイスの検出と割り当てのサポートが必要です。
実装
NNAPI でデバイスの検出と割り当ての機能をサポートするには、IDevice.hal
の getType
と getVersionString
を実装して、フレームワークがデバイスのタイプとドライバのバージョンを取得できるようにします。
types.hal
の DeviceType
で指定されているとおり、デバイスごとに、次のいずれかのカテゴリとしてタイプを指定します。
OTHER
: 他のいずれのカテゴリにも属さないデバイス。(場合によってはタイプが異なる)複数のデバイスを管理する単一の IDevice
インターフェースである異種インターフェースを含みます。異種インターフェースのドライバは、個々のデバイスに対応する個別の IDevice
インターフェースを公開し、アプリがこれらのデバイスから選択できるようにする必要もあります。
CPU
: シングルコアまたはマルチコア CPU。
GPU
: NNAPI モデルを実行し、OpenGL ES や Vulkan などのグラフィック API を高速化できる GPU。
ACCELERATOR
: 専用ニューラル プロセッシング ユニット(NPU)。
IDevice.hal
で getVersionString
を実装して、デバイス実装のバージョン文字列を取得します。このメソッドは、人間が読める文字列を返す必要があります。文字列の形式はベンダー固有です。バージョン文字列は、ドライバの新しいバージョンごとに異なる必要があります。
IDevice
インターフェースの名前は、{VENDOR}-{DEVICE_NAME}
形式に従う必要があります。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-04-26 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-04-26 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-04-26 UTC。"]]