Accélération matérielle avec LiteRT

Les appareils mobiles et périphériques modernes sont équipés de processeurs graphiques (GPU) et de processeurs de réseau neuronal (NPU) spécialisés, capables d'accélérer les modèles d'IA jusqu'à 25 fois par rapport à un CPU, tout en réduisant la consommation d'énergie jusqu'à 5 fois.

LiteRT simplifie l'accès à ces semi-conducteurs spécialisés grâce à une pile d'accélération matérielle unifiée. Au lieu de gérer des SDK fragmentés et spécifiques à un fournisseur ou des API matérielles complexes, LiteRT fournit une API CompiledModel simplifiée qui fait abstraction de la complexité de l'optimisation des modèles, de la gestion de la mémoire et de la répartition du matériel.

Types d'accélérateurs

LiteRT fournit une interface unifiée pour exécuter des modèles sur différents backends matériels. En tirant parti de l'API CompiledModel, vous pouvez passer facilement d'un accélérateur à l'autre à l'aide de la compilation sur l'appareil ou Ahead-of-Time (AOT), avec un retour automatique au processeur pour les opérations non compatibles.

  • CPU : chemin d'exécution par défaut utilisant XNNPACK et toujours disponible. Idéal pour les tâches générales et comme solution de secours pour les opérateurs non compatibles.
  • GPU : optimisé par ML Drift, offre des performances SOTA sur les plates-formes périphériques utilisant OpenCL, WebGPU, Metal, etc. Pour en savoir plus, consultez Accélération GPU avec LiteRT.
  • NPU : efficacité et performances maximales pour les charges de travail d'IA. LiteRT offre un flux de développement unifié pour accéder aux chipsets NPU spécialisés, y compris Google Tensor, Qualcomm et MediaTek, sans nécessiter l'intégration de SDK spécifiques aux fournisseurs. Pour en savoir plus, consultez Accélération NPU avec LiteRT.

Ces accélérateurs peuvent être combinés pour obtenir les meilleures performances possibles lorsque certaines opérations complexes ne sont pas disponibles sur un matériel donné. Lorsque des accélérateurs sont en concurrence pour une opération, LiteRT utilise l'ordre de priorité suivant : NPU, GPU, CPU.