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 kit de développement logiciel (SDK) pour l'inférence d'apprentissage profond haute performance. Développé par NVIDIA, il facilite l'optimisation des réseaux neuronaux entraînés en vue de leur déploiement dans des environnements de production, en particulier sur les GPU NVIDIA . Il est conçu pour prendre des modèles entraînés à partir de frameworks comme PyTorch ou TensorFlow et les optimiser pour une inférence plus rapide et plus efficace, ce qui est crucial pour les applications en temps réel.

Qu'est-ce que TensorRT?

TensorRT est essentiellement un optimiseur d'inférence et un moteur d'exécution. Il prend un modèle d'apprentissage profond entraîné et applique diverses optimisations pour améliorer ses performances pendant la phase d'inférence. Ce processus fait appel à des techniques telles que l'optimisation des graphes, la fusion des couches, la quantification et l'auto-tuning du noyau. En optimisant le modèle, TensorRT réduit la latence et augmente le débit, ce qui permet de déployer des modèles d'IA complexes dans des applications qui exigent des temps de réponse rapides.

TensorRT n'est pas un cadre de formation ; il est plutôt utilisé après qu'un modèle ait été formé à l'aide de cadres comme PyTorch ou TensorFlow. Il se concentre spécifiquement sur l'étape de déploiement, en veillant à ce que les modèles s'exécutent aussi rapidement et efficacement que possible sur le matériel cible, principalement les GPU NVIDIA . Ceci est particulièrement utile pour les applications fonctionnant sur des appareils en périphérie ou dans des centres de données où la vitesse d'inférence et l'utilisation des ressources sont essentielles.

Comment fonctionne TensorRT

Le processus d'optimisation dans TensorRT comprend plusieurs étapes clés pour améliorer la performance de l'inférence :

  • Optimisation du graphique: TensorRT analyse le graphique du réseau neuronal et le restructure pour éliminer les opérations redondantes et rationaliser le flux d'exécution. Il peut s'agir de supprimer des couches inutiles ou des opérations qui ne contribuent pas de manière significative à la sortie finale.
  • Fusion de couches: Plusieurs couches compatibles sont combinées en une seule couche afin de réduire les frais généraux et d'améliorer l'efficacité des calculs. Par exemple, les couches consécutives de convolution, de biais et de ReLU peuvent souvent être fusionnées en une seule opération.
  • Quantification: TensorRT peut réduire la précision des poids et des activations du modèle de la virgule flottante (FP32 ou FP16) aux formats entiers (INT8 ou même plus bas). Cela permet de réduire les besoins en bande passante de la mémoire et d'accélérer les calculs, en particulier sur le matériel optimisé pour l'arithmétique des nombres entiers. Bien que la quantification puisse légèrement réduire la précision, TensorRT vise à minimiser cet impact tout en améliorant considérablement la vitesse.
  • Auto-tuning du noyau: TensorRT sélectionne l'implémentation la plus efficace (noyau) pour chaque opération de la couche en fonction de l'architecture cible GPU . Ce processus de réglage automatique garantit que le modèle tire pleinement parti des capacités matérielles sous-jacentes.

Ces optimisations conduisent collectivement à des améliorations substantielles de la vitesse d'inférence et de l'efficacité par rapport à l'exécution du modèle original non optimisé.

Applications de TensorRT

TensorRT est largement utilisé dans diverses applications où l'inférence en temps réel ou en temps quasi réel est essentielle. Voici deux exemples concrets :

  • Véhicules autonomes: Dans les voitures autonomes, la détection rapide des objets et la compréhension de la scène sont primordiales pour la sécurité et la réactivité. Ultralytics YOLO Lorsqu'ils sont optimisés à l'aide du site TensorRT, les modèles d'analyse peuvent atteindre les vitesses d'inférence nécessaires sur les plateformes NVIDIA DRIVE pour traiter les données des capteurs en temps réel, ce qui permet une prise de décision rapide en matière de navigation et d'évitement des obstacles.
  • Analyse vidéo en temps réel: Pour des applications telles que la surveillance de la sécurité ou du trafic, TensorRT permet le traitement de flux vidéo haute résolution pour la détection, le suivi et l'analyse d'objets avec un temps de latence minimal. Cela permet des alertes et des actions immédiates en fonction des événements détectés, comme la détection d'intrusion dans les systèmes d'alarme de sécurité ou l'analyse du flux de trafic pour les villes intelligentes.

TensorRT est également bénéfique dans d'autres domaines tels que l'analyse d'images médicales, la robotique et les services d'inférence basés sur le cloud, partout où une faible latence et un débit élevé sont essentiels.

TensorRT et Ultralytics YOLO

Ultralytics YOLO peuvent être exportés et optimisés à l'aide de TensorRT pour être déployés sur les appareils NVIDIA . La documentation d'exportation pour Ultralytics YOLO fournit des instructions détaillées sur la façon de convertir les modèles YOLO au format TensorRT . Cela permet aux utilisateurs de profiter des capacités d'optimisation de TensorRT pour accélérer considérablement la vitesse d'inférence de leurs modèles YOLO .

Pour les utilisateurs qui déploient YOLOv8 sur NVIDIA Jetson Edge devices, l'optimisation TensorRT est souvent une étape cruciale pour obtenir des performances en temps réel. De plus, DeepStream sur NVIDIA Jetson exploite TensorRT pour des applications d'analyse vidéo très performantes.

Avantages de l'utilisation TensorRT

L'utilisation de TensorRT offre plusieurs avantages clés pour le déploiement de modèles d'apprentissage profond :

  • Vitesse d'inférence accrue: Les optimisations réduisent considérablement la latence de l'inférence et augmentent le débit, ce qui permet d'obtenir des performances en temps réel.
  • Latence réduite: Une latence réduite est essentielle pour les applications nécessitant des réponses immédiates, telles que les systèmes autonomes et les analyses en temps réel.
  • Utilisation optimisée des ressources: La quantification et l'optimisation des graphes permettent de réduire l'empreinte mémoire et les demandes de calcul, ce qui rend les modèles plus efficaces pour fonctionner sur des appareils aux ressources limitées.
  • Accélération matérielle: TensorRT est conçu pour maximiser l'utilisation des GPU NVIDIA , ce qui garantit des performances optimales sur le matériel NVIDIA .
  • Préparation au déploiement: Il fournit un environnement d'exécution prêt pour la production, rationalisant le processus de déploiement du modèle formé à l'application.

En résumé, TensorRT est un outil essentiel pour les développeurs qui cherchent à déployer des applications d'inférence d'apprentissage profond très performantes, en particulier lorsqu'ils utilisent les GPU NVIDIA . En optimisant les modèles pour la vitesse et l'efficacité, TensorRT aide à combler le fossé entre la recherche et le déploiement dans le monde réel, rendant l'IA avancée accessible et pratique dans divers secteurs d'activité.

Tout lire