TensorRT
Optimieren Sie Deep-Learning-Modelle mit TensorRT für schnellere und effizientere Inferenzen auf NVIDIA GPUs. Erzielen Sie Echtzeitleistung mit YOLO und KI-Anwendungen.
TensorRT ist ein hochleistungsfähiges Software Development Kit (SDK), das von
NVIDIA speziell für die Optimierung und Ausführung von
Deep-Learning-Modelle. Es funktioniert wie eine
spezialisierte Inferenz-Engine, die trainierte
trainierte neuronale Netzwerke umstrukturiert, um sie mit maximaler Effizienz auf NVIDIA
Grafikprozessoren (GPUs) auszuführen. Durch
durch die Straffung des Berechnungsgraphen und die Verwaltung der Speichernutzung, reduziert TensorRT
Inferenzlatenz und erhöht den Durchsatz,
Das macht es zu einem unverzichtbaren Werkzeug für Entwickler, die Anwendungen entwickeln, die sofortige Echtzeit-Reaktionen erfordern.
Wie TensorRT die Leistung optimiert
Das Hauptziel von TensorRT ist es, die Lücke zwischen einem Modell, das in einem flexiblen Rahmen trainiert wurde, und einem Modell zu schließen, das
für Geschwindigkeit. Es erreicht dies durch mehrere hochentwickelte Optimierungstechniken:
-
Schichtenfusion und Graphenoptimierung: TensorRT analysiert die Netzwerkarchitektur und fusioniert mehrere
Schichten in einer einzigen Operation. Zum Beispiel kann es eine Faltungsschicht
Faltungsschicht mit einem Bias- und Aktivierungsschritt kombinieren.
Diese Verringerung der Anzahl von Operationen minimiert den Overhead beim Starten von Kernels auf der GPU.
-
Präzise Kalibrierung: Um die Leistung weiter zu beschleunigen, unterstützt TensorRT
Modellquantisierung. Dieser Prozess konvertiert
Modellgewichte von standardmäßigen 32-Bit Fließkommazahlen (FP32) in Formate mit geringerer Genauigkeit wie
gemischte Genauigkeit (FP16) oder 8-Bit Ganzzahlen (INT8).
Dadurch wird die Nutzung der Speicherbandbreite drastisch reduziert, während die hohe
Genauigkeit.
-
Kernel-Auto-Tuning: Verschiedene GPU verarbeiten mathematische Operationen unterschiedlich.
TensorRT wählt automatisch die besten Datenschichten und Algorithmen aus einer umfangreichen Bibliothek von optimierten Kernels,
um sicherzustellen, dass das Modell optimal auf der spezifischen Zielhardware läuft, wie z.B. einem
NVIDIA Jetson oder einem Rechenzentrum A100.
-
Dynamischer Tensor : Das SDK optimiert die Speicherzuweisung durch die Wiederverwendung von Speicher für Tensoren (Daten
(Datencontainer), die nicht gleichzeitig benötigt werden, wiederverwendet, was den Gesamtspeicherbedarf während der
Modellbereitstellung.
Real-World Anwendungen von TensorRT
Aufgrund seiner Fähigkeit, riesige Datenmengen mit minimaler Verzögerung zu verarbeiten, wird TensorRT weithin in Branchen eingesetzt
die auf Computer Vision und komplexe KI-Aufgaben angewiesen sind.
-
Autonome Fahrzeuge: Auf dem Gebiet der
KI im Automobilbereich müssen selbstfahrende Autos
Videobilder von mehreren Kameras verarbeiten, um Fußgänger, Schilder und Hindernisse sofort detect . Mit TensorRT,
Wahrnehmungsmodelle wie Objekterkennungsnetzwerke
Bilder in Millisekunden analysieren, so dass das Steuerungssystem des Fahrzeugs sicherheitskritische Entscheidungen ohne
Verzögerung.
-
Intelligente Fertigung: Moderne Fabriken nutzen
KI in der Fertigung für die automatische optische
Inspektion. Hochgeschwindigkeitskameras erfassen Bilder von Produkten auf Fließbändern, und TensorRT Modelle identifizieren
Defekte oder Anomalien in Echtzeit. So wird sichergestellt, dass die Qualitätskontrolle mit der Hochgeschwindigkeitsproduktion Schritt hält.
Produktionsumgebungen Schritt halten kann, wobei die KI-Geräte oft direkt in der
der Fabrikhalle.
Verwendung von TensorRT mit Ultralytics YOLO11
Die Integration von TensorRT in Ihren Arbeitsablauf ist mit modernen KI-Werkzeugen einfach. Die ultralytics Das Paket
bietet eine nahtlose Methode zur Konvertierung von Standard
PyTorch Modelle in TensorRT zu integrieren. Dies erlaubt den Benutzern
die modernste Architektur von TensorRT zu nutzen
Ultralytics YOLO11 mit der Hardware-Beschleunigung von NVIDIA
GPUs.
Das folgende Beispiel zeigt, wie man ein YOLO11 in eine TensorRT exportiert (.engine) und
für die Inferenz verwenden:
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. andere Inferenztechnologien
Es ist wichtig, TensorRT von anderen Werkzeugen im Ökosystem des maschinellen Lernens zu unterscheiden.
-
TensorRT vs. Trainings-Frameworks: Bibliotheken wie PyTorch und
TensorFlow sind in erster Linie für das
Trainingsmodelle entwickelt, wobei Flexibilität und einfaches Debugging im Vordergrund stehen. TensorRT ist ausschließlich für
Inferenz und legt den Schwerpunkt auf Geschwindigkeit und Effizienz auf spezifischer Hardware.
-
TensorRT vs. ONNX Laufzeit: Die
ONNX (Offenes Neuronales Netzwerk Austausch)
Format ist für die Interoperabilität zwischen verschiedenen Plattformen konzipiert. Während
ONNX Runtime eine vielseitige Engine ist, die auf verschiedener Hardware läuft, bietet TensorRT
tiefgreifende, hardwarespezifische Optimierungen exklusiv für NVIDIA GPUs, die oft eine höhere Leistung als
generischen Läufern.
-
TensorRT vs. OpenVINO: Ähnlich wie TensorRT für NVIDIA Hardware optimiert ist, ist das
OpenVINO für die Beschleunigung von
Inferenz auf Intel Prozessoren (CPUs und integrierte GPUs) zu beschleunigen. Die Wahl zwischen beiden hängt ganz von der eingesetzten
Hardware.
Für skalierbare Cloud-Einsätze werden TensorRT häufig mit dem
NVIDIA Triton Inference Server verwendet, der Modellversionen verwaltet
verwaltet und gleichzeitige Anfragen effizient bearbeitet.