TensorRT
Optimisez les modèles d'apprentissage profond 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 un kit de développement logiciel (SDK) de haute performance développé par
NVIDIA pour optimiser et exécuter des modèles d'apprentissage
modèles d'apprentissage profond. Il fonctionne comme un
moteur d'inférence spécialisé qui prend les réseaux
réseaux neuronaux entraînés et les restructure pour qu'ils s'exécutent avec une efficacité maximale sur les processeurs graphiques (GPU) NVIDIA
(GPU). En
en rationalisant le graphe de calcul et en gérant l'utilisation de la mémoire, TensorRT réduit considérablement la latence de l'inférence et augmente le débit.
latence de l'inférence et augmente le débit,
ce qui en fait un outil essentiel pour les développeurs d'applications nécessitant des réponses immédiates et en temps réel.
Comment TensorRT optimise les performances
L'objectif principal de TensorRT est de combler le fossé entre un modèle formé dans un cadre flexible et un modèle déployé
pour la vitesse. Il y parvient grâce à plusieurs techniques d'optimisation sophistiquées :
-
Fusion des couches et optimisation des graphes : TensorRT analyse l'architecture du réseau et fusionne plusieurs couches en une seule opération.
couches en une seule opération. Par exemple, il peut combiner une couche de convolution avec une étape de biais et d'activation.
couche de convolution avec une étape de biais et d'activation.
Cette réduction du nombre d'opérations minimise les frais généraux liés au lancement des noyaux sur le GPU.
-
Étalonnage de précision : Pour accélérer encore les performances, TensorRT prend en charge la quantification des modèles.
la quantification des modèles. Ce processus convertit
les poids des modèles de la virgule flottante 32 bits standard (FP32) vers des formats de précision inférieure tels que la précision mixte (FP16) ou les entiers 8 bits (INT8).
précision mixte (FP16) ou les entiers 8 bits (INT8).
Cela permet de réduire considérablement l'utilisation de la bande passante de la mémoire tout en maintenant une haute
précision.
-
Auto-réglage du noyau : Les architectures de GPU traitent différemment les opérations mathématiques.
TensorRT sélectionne automatiquement les meilleures couches de données et les meilleurs algorithmes à partir d'une vaste bibliothèque de noyaux optimisés,
s'assurer que le modèle s'exécute de manière optimale sur le matériel cible spécifique, tel qu'un
NVIDIA Jetson ou un centre de données A100.
-
Mémoire Tensor dynamique : Le SDK optimise l'allocation de la mémoire en réutilisant la mémoire pour les tenseurs (conteneurs de données) qui ne sont pas nécessaires simultanément.
tenseurs (conteneurs de données) qui ne sont pas nécessaires simultanément, ce qui réduit efficacement l'empreinte mémoire globale pendant le déploiement du modèle.
déploiement du modèle.
Applications réelles de TensorRT
En raison de sa capacité à traiter des quantités massives de données avec un délai minimal, TensorRT est largement adopté dans les industries qui dépendent de la vision par ordinateur et des tâches d'IA complexes.
vision par ordinateur et les tâches complexes d'intelligence artificielle.
-
Véhicules autonomes : Dans le domaine de l
de l 'IA dans l'automobile, les voitures autopilotées doivent
traiter des flux vidéo provenant de plusieurs caméras afin de detect instantanément detect piétons, les panneaux et les obstacles. L'utilisation de TensorRT,
modèles de perception tels que les réseaux de détection d'objets
peuvent analyser les images en quelques millisecondes, ce qui permet au système de contrôle du véhicule de prendre des décisions cruciales pour la sécurité sans décalage.
décalage.
-
Fabrication intelligente : Les usines modernes utilisent
l 'IA dans la fabrication pour l'inspection optique
automatisée. Des caméras à grande vitesse capturent des images de produits sur les chaînes de montage, et des modèles TensorRT identifient les défauts ou les anomalies en temps réel.
les défauts ou les anomalies en temps réel. Le contrôle de la qualité suit ainsi le rythme des environnements de production à grande vitesse.
de production à grande vitesse, en déployant souvent des dispositifs d'IA en périphérie
l'usine.
Utiliser TensorRT avec Ultralytics YOLO11
L'intégration de TensorRT dans votre flux de travail est simple avec les outils d'IA modernes. Les ultralytics paquet
fournit une méthode transparente pour convertir les
PyTorch dans les moteurs TensorRT . Cela permet aux utilisateurs de
de tirer parti de l'architecture de pointe de
Ultralytics YOLO11 avec l'accélération matérielle des GPU NVIDIA
GPU.
L'exemple suivant montre comment exporter un modèle YOLO11 vers un fichier de moteur TensorRT (.engine) et
l'utiliser pour l'inférence :
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TensorRT format (creates 'yolo11n.engine')
# This step optimizes the model for the specific GPU currently in use
model.export(format="engine")
# Load the optimized TensorRT model for high-speed inference
tensorrt_model = YOLO("yolo11n.engine")
results = tensorrt_model("https://ultralytics.com/images/bus.jpg")
TensorRT vs. autres technologies d'inférence
Il est important de distinguer TensorRT des autres outils de l'écosystème de l'apprentissage automatique.
-
TensorRT vs. les frameworks de formation : Des bibliothèques comme PyTorch et
TensorFlow sont conçues principalement pour
modèles de formation, en privilégiant la flexibilité et la facilité de débogage. TensorRT est strictement destiné à l'inférence
l'inférence, en privilégiant la vitesse brute et l'efficacité sur du matériel spécifique.
-
TensorRT vs. ONNX Runtime : Le
ONNX (Open Neural Network Exchange)
est conçu pour assurer l'interopérabilité entre différentes plateformes. Alors que
ONNX Runtime est un moteur polyvalent qui fonctionne sur différents matériels, TensorRT
fournit des optimisations plus profondes, spécifiques au matériel et exclusives aux GPU NVIDIA , ce qui permet souvent d'obtenir des performances supérieures à celles des moteurs génériques.
génériques.
-
TensorRT vs. OpenVINO: Tout comme TensorRT est optimisé pour le matériel NVIDIA , la boîte à outils OpenVINO est conçue pour accélérer le traitement des données NVIDIA
OpenVINO est conçu pour accélérer l'inférence
l'inférence sur les processeurs Intel (CPU et GPU intégrés). Le choix de l'un ou l'autre dépend entièrement de votre
matériel.
Pour les déploiements évolutifs dans le nuage, les moteurs TensorRT sont souvent servis par le serveur d'inférence
NVIDIA Triton Inference Server, qui gère les versions de modèles
et gère efficacement les demandes simultanées.