TensorRT
Optimisez les modèles de deep learning avec TensorRT pour une inférence plus rapide et efficace sur les GPU NVIDIA. Obtenez des performances en temps réel avec YOLO et les applications d'IA.
TensorRT est une bibliothèque d'exécution et un optimiseur d'inférence de deep learning haute performance de NVIDIA. Il est spécialement conçu pour maximiser les performances des réseaux neuronaux (NN) entraînés sur les unités de traitement graphique (GPU) NVIDIA. Une fois qu'un modèle est entraîné à l'aide d'un framework comme PyTorch ou TensorFlow, TensorRT prend ce modèle et applique de nombreuses optimisations pour le préparer au déploiement. Le résultat est un moteur d'exécution très efficace qui peut réduire considérablement la latence d'inférence et améliorer le débit, ce qui le rend idéal pour les applications nécessitant une inférence en temps réel.
Fonctionnement de TensorRT
TensorRT atteint ses gains de performance grâce à un processus d'optimisation en plusieurs étapes qui transforme un modèle entraîné standard en un moteur d'inférence rationalisé. Ce processus est largement automatisé et adapté à l'architecture GPU NVIDIA spécifique sur laquelle il sera déployé. Les principales techniques d'optimisation comprennent :
- Optimisation du graphe : TensorRT analyse le modèle entraîné et effectue des optimisations de graphe, telles que l'élimination des couches inutilisées et la fusion des couches verticalement (en combinant les couches séquentielles) et horizontalement (en combinant les couches parallèles). Cela réduit le nombre d'opérations et la surcharge de mémoire.
- Calibration de Précision : Elle prend en charge l'inférence de plus faible précision, telle que la précision mixte (FP16) et INT8. En convertissant les poids du modèle de la virgule flottante 32 bits (FP32) à des précisions inférieures par le biais de la quantification du modèle, TensorRT réduit considérablement l'utilisation de la mémoire et les exigences de calcul avec un impact minimal sur la précision.
- Réglage automatique du noyau : TensorRT sélectionne dans une vaste bibliothèque de noyaux GPU optimisés pour chaque opération ou crée ses propres noyaux spécialement réglés pour le GPU cible. Cela garantit que chaque calcul est effectué aussi efficacement que possible sur le matériel.
- Optimisation de la mémoire des tenseurs : Elle optimise l'utilisation de la mémoire en réutilisant la mémoire des tenseurs tout au long de l'exécution du modèle, réduisant ainsi l'empreinte mémoire et améliorant les performances.
Les modèles Ultralytics YOLO peuvent être facilement exportés au format TensorRT, permettant aux développeurs de tirer parti de ces optimisations pour leurs applications de vision par ordinateur (CV).
Applications concrètes
TensorRT est essentiel pour déployer une IA haute performance dans des environnements sensibles au temps et aux ressources limitées.
- Véhicules autonomes : Dans les voitures autonomes, les systèmes de perception doivent traiter les données des caméras et des capteurs en temps réel pour détecter les piétons, les autres véhicules et les obstacles. Les modèles comme Ultralytics YOLO11 optimisés avec TensorRT peuvent effectuer la détection d'objets avec une latence extrêmement faible, ce qui est essentiel pour prendre des décisions de conduite sûres.
- Fabrication intelligente : Dans une usine, l'IA dans la fabrication est utilisée pour le contrôle automatisé de la qualité. Une caméra capture des images de produits sur une bande transporteuse, et un modèle de vision les analyse pour détecter les défauts. En utilisant TensorRT, ces systèmes peuvent suivre le rythme des chaînes de production à grande vitesse, identifier instantanément les problèmes et améliorer l'efficacité globale.
TensorRT vs. Technologies connexes
Bien que TensorRT soit un moteur d'inférence puissant, il est important de comprendre en quoi il diffère des autres outils de l'écosystème de l'IA :
- Frameworks d'apprentissage profond : Les frameworks tels que PyTorch et TensorFlow sont principalement destinés à l'entraînement des modèles. Bien qu'ils aient leurs propres capacités d'inférence, ils ne sont pas aussi optimisés pour le déploiement qu'un runtime spécialisé comme TensorRT.
- ONNX Runtime : Le format Open Neural Network Exchange (ONNX) offre un moyen de représenter les modèles de manière interopérable. ONNX Runtime peut exécuter des modèles sur diverses plateformes matérielles, y compris les GPU NVIDIA (où il peut utiliser TensorRT comme fournisseur d'exécution). Cependant, l'intégration directe avec TensorRT offre souvent de meilleures performances sur le matériel NVIDIA en raison de ses optimisations spécifiques au matériel.
- Intel OpenVINO: OpenVINO est similaire à TensorRT mais est optimisé pour le matériel Intel (CPU, iGPU, VPU). Il sert le même objectif d'accélérer l'inférence mais est adapté à un écosystème matériel différent.
Le principal avantage de TensorRT est son intégration profonde avec l'écosystème NVIDIA, des GPU aux bibliothèques CUDA, permettant des performances inégalées pour les modèles déployés sur les plateformes NVIDIA, comme le montrent souvent les benchmarks MLPerf. La gestion du déploiement des modèles peut être davantage rationalisée grâce à des plateformes MLOps comme Ultralytics HUB.