Glossaire

TensorRT

Optimise les modèles d'apprentissage profond avec TensorRT pour une inférence plus rapide et efficace sur les GPU NVIDIA . Obtenir des performances en temps réel avec YOLO et les applications d'IA.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

TensorRT est un optimiseur d'inférence et une bibliothèque d'exécution de Deep Learning (DL) très performants développés par. NVIDIA. Il est conçu spécifiquement pour maximiser le débit d'inférence et minimiser la latence d'inférence pour les applications d'apprentissage profond fonctionnant sur les GPUNVIDIA . TensorRT prend des modèles de réseaux neuronaux formés à partir de divers frameworks et applique de nombreuses optimisations pour générer un moteur d'exécution hautement optimisé pour le déploiement. Ce processus est crucial pour déployer efficacement les modèles dans les environnements de production, en particulier lorsque la vitesse et la réactivité sont essentielles.

Principales caractéristiques et optimisations

TensorRT permet d'améliorer considérablement les performances grâce à plusieurs techniques sophistiquées :

  • Calibrage de la précision : Réduit la précision du modèle de FP32 à des précisions inférieures comme FP16 ou INT8(précision mixte ou quantification du modèle) avec une perte minimale de précision, ce qui permet d'accélérer les calculs et de réduire l'utilisation de la mémoire.
  • Fusion de couches et de Tensor : Combine plusieurs couches ou opérations en un seul noyau(fusion de couches), ce qui réduit l'utilisation de la bande passante de la mémoire et la surcharge de lancement du noyau.
  • Auto-réglage du noyau : Sélectionne les meilleurs algorithmes pré-implémentés (noyaux) pour la cible. NVIDIA GPU cible, garantissant ainsi des performances optimales pour le matériel spécifique.
  • Mémoire Tensor dynamique : Minimise l'empreinte mémoire en réutilisant la mémoire allouée aux tenseurs dont la durée de vie ne se chevauche pas.
  • Exécution multi-flux : Permet le traitement parallèle de plusieurs flux d'entrée.

Comment fonctionne TensorRT

Le flux de travail consiste généralement à prendre un modèle entraîné (par exemple, à partir de PyTorch ou de TensorFlowsouvent par le biais d'un format intermédiaire comme ONNX) et l'introduire dans l'optimiseur TensorRT . TensorRT analyse le modèle, effectue des optimisations de graphe et des optimisations spécifiques à la cible en fonction de la précision spécifiée et du GPU cible, et génère finalement un plan d'inférence optimisé, connu sous le nom de moteur TensorRT . Ce fichier de moteur peut ensuite être déployé pour une inférence rapide.

Pertinence dans l'IA et la ML

TensorRT est très pertinent pour la phase de déploiement des modèles du cycle de vie de l'apprentissage automatique. Sa capacité à accélérer considérablement l'inférence le rend indispensable pour les applications nécessitant une inférence en temps réel, telles que la détection d'objets avec des modèles comme Ultralytics YOLOla segmentation d'images et le traitement du langage naturel. Il s'agit d'un composant clé de la pile logicielle de NVIDIA , aux côtés d'outils tels que CUDAUltralytics YOLO permet aux développeurs d'exploiter tout le potentiel du matériel NVIDIA , qu'il s'agisse de puissants GPU pour centres de données ou de modules NVIDIA Jetson économes en énergie pour l'Edge AI. Ultralytics offre une intégration transparente, permettant aux utilisateurs d'exporter les modèles YOLO au format TensorRT pour un déploiement optimisé, souvent utilisé avec des plateformes telles que le serveur d'inférenceTriton .

Applications dans le monde réel

TensorRT est largement utilisé dans divers secteurs d'activité où une inférence rapide et efficace de l'IA est nécessaire :

  1. Véhicules autonomes: Dans les voitures autonomes(AI in Automotive), TensorRT optimise les modèles de perception (comme la détection d'objets et la segmentation des voies) fonctionnant sur les plateformes NVIDIA DRIVE embarquées, assurant une prise de décision en temps réel cruciale pour la sécurité. Des modèles comme RTDETR peuvent être optimisés à l'aide de TensorRT pour être déployés dans de tels systèmes(Comparaison RTDETRv2 vs YOLOv5 ).
  2. Analyse d'images médicales: les hôpitaux et les instituts de recherche utilisent TensorRT pour accélérer l'inférence de modèles d'IA qui analysent les scans médicaux (CT, IRM) pour des tâches telles que la détection de tumeurs ou l'identification d'anomalies(AI in Healthcare), ce qui permet d'accélérer les diagnostics et de prendre en charge les flux de travail cliniques. Cela fait souvent partie de systèmes de vision par ordinateur (VA) plus vastes.

TensorRT et les technologies apparentées

Alors que TensorRT se concentre sur l'optimisation de l'inférence spécifiquement pour les GPU NVIDIA , d'autres outils existent dans l'écosystème :

  • Cadres d'apprentissage profond (PyTorch, TensorFlow) : Ils sont principalement utilisés pour former des modèles mais offrent également des capacités d'inférence de base. TensorRT optimise les modèles formés dans ces frameworks en vue de leur déploiement.
  • ONNX Runtime: Un moteur d'inférence multiplateforme qui prend en charge plusieurs accélérateurs matériels, notamment les GPU NVIDIA (qui utilisent souvent TensorRT comme fournisseur d'exécution), les CPU et autres. Il offre une compatibilité matérielle plus large mais peut ne pas atteindre le même niveau d'optimisation sur le matériel NVIDIA que TensorRT directement.
  • Intel OpenVINO: similaire à TensorRT mais optimisé pour le matériel Intel (CPUs, iGPUs, VPUs). Les modèles Ultralytics peuvent également être exportés au format OpenVINO .

La principale différence de TensorRT est son intégration profonde avec le matériel NVIDIA et ses stratégies d'optimisation agressives adaptées aux GPU, qui permettent souvent d'obtenir les meilleures performances (voir les benchmarks MLPerf) sur les plateformes NVIDIA par rapport à des runtimes plus généralistes. La gestion des modèles et des déploiements peut être rationalisée en utilisant des plateformes comme Ultralytics HUB.

Tout lire