À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Détection et attribution d'appareils
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Dans Android 10, l'API Neural Networks (NNAPI) introduit des fonctions permettant aux applications et aux bibliothèques de framework de machine learning d'obtenir des informations sur les appareils disponibles et de spécifier les appareils sur lesquels exécuter un modèle. Fournir des informations sur les appareils disponibles permet aux applications de récupérer la version exacte des pilotes qui se trouvent sur l'appareil afin d'éviter les incompatibilités connues. En donnant aux applications la possibilité de spécifier les appareils devant exécuter différentes sections d'un modèle, elles peuvent être optimisées pour le produit sur lequel elles sont déployées.
La prise en charge de la détection et de l'attribution d'appareils est requise pour les implémentations NN HAL 1.2.
Implémentation
Pour prendre en charge les fonctionnalités de découverte et d'attribution d'appareils dans NNAPI, implémentez getType
et getVersionString
dans IDevice.hal
pour permettre au framework d'obtenir le type d'appareil et la version du pilote.
Pour chaque appareil, spécifiez le type dans l'une des catégories suivantes, comme indiqué dans DeviceType
dans types.hal
.
OTHER
:appareil qui ne correspond à aucune des autres catégories, y compris une interface hétérogène, qui est une interface IDevice
unique qui gère plusieurs appareils, éventuellement de différents types. Un pilote avec une interface hétérogène doit également exposer des interfaces IDevice
distinctes qui correspondent à des appareils individuels pour permettre à une application de choisir parmi ces appareils.
CPU
:processeur à un ou plusieurs cœurs.
GPU
:GPU capable d'exécuter des modèles NNAPI et d'accélérer des API graphiques telles que OpenGL ES et Vulkan.
ACCELERATOR
:unité de traitement neuronale (NPU) dédiée.
Implémentez getVersionString
dans IDevice.hal
pour obtenir la chaîne de version de l'implémentation de l'appareil.
Cette méthode doit renvoyer une chaîne lisible. Le format de la chaîne est spécifique au fournisseur. La chaîne de version doit être différente pour chaque nouvelle version d'un pilote.
Le nom de l'interface IDevice
doit respecter le format {VENDOR}-{DEVICE_NAME}
.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Device discovery and assignment\n\n| **Deprecated:** Starting in Android 15, the\n| [NNAPI (NDK API)](https://developer.android.com/ndk/guides/neuralnetworks) is deprecated. The Neural Networks HAL interface\n| continues to be supported.\n|\n| For more information, see the\n| [NNAPI Migration Guide](https://developer.android.com/ndk/guides/neuralnetworks/migration-guide).\n\nIn Android 10, the\n[Neural Networks API (NNAPI)](/docs/core/interaction/neural-networks)\nintroduces functions that allow\nmachine learning framework\nlibraries and apps to get information about the devices available and\nspecify which devices to execute a model on. Providing information about the\navailable devices allows apps to get the exact version of the drivers\nfound on the device to avoid known incompatibilities. By giving apps the\nability to specify which devices are to execute different sections of a model,\napps can be optimized for the product on which they are deployed.\n\nSupport for device discovery and assignment is required for NN HAL 1.2\nimplementations.\n\nImplementation\n--------------\n\nTo support the device discovery and assignment features in NNAPI, implement\n[`getType`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/neuralnetworks/1.2/IDevice.hal#76)\nand\n[`getVersionString`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/neuralnetworks/1.2/IDevice.hal#56)\nin `IDevice.hal` to allow the framework to get the device type and driver\nversion.\n\nFor each device, specify the type as one of the following categories as\nspecified in\n[`DeviceType`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/neuralnetworks/1.2/types.hal#4737)\nin\n[`types.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/neuralnetworks/1.2/types.hal).\n\n- **`OTHER`:** A device that doesn't fall into any of the other categories, including a heterogeneous interface, which is a single `IDevice` interface that manages multiple devices, possibly of different types. A driver with a heterogeneous interface should also expose separate `IDevice` interfaces that correspond to individual devices to allow an application to choose from those devices.\n- **`CPU`:** A single core or multicore CPU.\n- **`GPU`:** A GPU that can run NNAPI models and accelerate graphics APIs such as OpenGL ES and Vulkan.\n- **`ACCELERATOR`:** A dedicated neural processing unit (NPU).\n\nImplement\n[`getVersionString`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/neuralnetworks/1.2/IDevice.hal#56)\nin `IDevice.hal` for getting the version string of the device implementation.\nThis method must return a string that is human readable. The format of the\nstring is vendor specific. The version string must be different for each new\nversion of a driver.\n\nThe name of the `IDevice` interface must follow the `{VENDOR}-{DEVICE_NAME}`\nformat."]]