Glossar

TensorRT

Optimiere Deep-Learning-Modelle mit TensorRT für schnellere, effiziente Inferenzen auf NVIDIA GPUs. Erreiche Echtzeitleistung mit YOLO und KI-Anwendungen.

Trainiere YOLO Modelle einfach
mit Ultralytics HUB

Mehr erfahren

TensorRT ist ein Software Development Kit (SDK) für leistungsstarke Deep Learning Inferenzen. Es wurde von NVIDIA entwickelt und erleichtert die Optimierung von trainierten neuronalen Netzen für den Einsatz in Produktionsumgebungen, insbesondere auf NVIDIA GPUs. Es wurde entwickelt, um trainierte Modelle aus Frameworks wie PyTorch oder TensorFlow zu übernehmen und sie für schnellere und effizientere Inferenzen zu optimieren, was für Echtzeitanwendungen entscheidend ist.

Was ist TensorRT?

TensorRT ist im Wesentlichen ein Inferenzoptimierer und eine Laufzeit-Engine. Er nimmt ein trainiertes Deep-Learning-Modell und wendet verschiedene Optimierungen an, um seine Leistung während der Inferenzphase zu verbessern. Dieser Prozess umfasst Techniken wie Graphenoptimierung, Ebenenfusion, Quantisierung und Kernel-Autotuning. Durch die Optimierung des Modells verringert TensorRT die Latenzzeit und erhöht den Durchsatz, sodass komplexe KI-Modelle in Anwendungen eingesetzt werden können, die schnelle Reaktionszeiten erfordern.

TensorRT ist kein Trainingsframework; es wird vielmehr verwendet, nachdem ein Modell mit Frameworks wie PyTorch oder trainiert wurde. TensorFlow. Es konzentriert sich speziell auf die Einsatzphase und stellt sicher, dass die Modelle so schnell und effizient wie möglich auf der Zielhardware laufen, vor allem auf NVIDIA GPUs. Dies ist besonders wertvoll für Anwendungen, die auf Endgeräten oder in Rechenzentren laufen, wo die Geschwindigkeit der Schlussfolgerungen und die Ressourcennutzung entscheidend sind.

Wie TensorRT funktioniert

Der Optimierungsprozess in TensorRT umfasst mehrere wichtige Schritte zur Verbesserung der Schlussfolgerungsleistung:

  • Graph-Optimierung: TensorRT analysiert den Graphen des neuronalen Netzes und strukturiert ihn um, um überflüssige Operationen zu eliminieren und den Ausführungsfluss zu straffen. Dazu kann es gehören, dass unnötige Schichten oder Operationen, die nicht wesentlich zum Endergebnis beitragen, entfernt werden.
  • Layer Fusion: Mehrere kompatible Schichten werden zu einer einzigen Schicht zusammengefasst, um den Overhead zu reduzieren und die Rechenleistung zu verbessern. Zum Beispiel können aufeinanderfolgende Faltungsschichten, Bias- und ReLU-Schichten oft zu einer einzigen Operation verschmolzen werden.
  • Quantisierung: TensorRT kann die Genauigkeit der Gewichte und Aktivierungen des Modells von Fließkomma- (FP32 oder FP16) auf Ganzzahlformate (INT8 oder noch niedriger) reduzieren. Dies verringert die Anforderungen an die Speicherbandbreite und beschleunigt die Berechnungen, insbesondere auf Hardware, die für Ganzzahlarithmetik optimiert ist. Auch wenn die Quantisierung die Genauigkeit geringfügig beeinträchtigen kann, zielt TensorRT darauf ab, diese Auswirkungen zu minimieren und gleichzeitig die Geschwindigkeit deutlich zu erhöhen.
  • Kernel-Autotuning: TensorRT wählt die effizienteste Implementierung (Kernel) für jede Schichtoperation auf der Grundlage der Zielarchitektur GPU . Dieser Autotuning-Prozess stellt sicher, dass das Modell die zugrundeliegenden Hardware-Fähigkeiten voll ausschöpft.

Diese Optimierungen führen insgesamt zu erheblichen Verbesserungen bei der Inferenzgeschwindigkeit und -effizienz im Vergleich zum ursprünglichen, nicht optimierten Modell.

Anwendungen von TensorRT

TensorRT wird häufig in verschiedenen Anwendungen eingesetzt, bei denen Echtzeit- oder echtzeitnahe Schlussfolgerungen wichtig sind. Zwei konkrete Beispiele sind:

  • Autonome Fahrzeuge: In selbstfahrenden Autos sind eine schnelle Objekterkennung und ein schnelles Verständnis der Szene für die Sicherheit und Reaktionsfähigkeit von größter Bedeutung. Ultralytics YOLO Modelle, die mit TensorRT optimiert wurden, können auf NVIDIA DRIVE-Plattformen die notwendigen Inferenzgeschwindigkeiten erreichen, um Sensordaten in Echtzeit zu verarbeiten und schnelle Entscheidungen für Navigation und Hindernisvermeidung zu ermöglichen.
  • Videoanalyse in Echtzeit: Für Anwendungen wie die Sicherheits- oder Verkehrsüberwachung ermöglicht TensorRT die Verarbeitung von hochauflösenden Videoströmen zur Objekterkennung, -verfolgung und -analyse mit minimaler Latenzzeit. Dies ermöglicht sofortige Warnungen und Maßnahmen auf der Grundlage erkannter Ereignisse, wie z. B. die Erkennung von Einbrüchen in Sicherheitssystemen oder die Analyse des Verkehrsflusses in Smart Cities.

TensorRT ist auch in anderen Bereichen von Vorteil, z. B. bei der medizinischen Bildanalyse, in der Robotik und bei Cloud-basierten Inferenzdiensten, wo niedrige Latenzzeiten und hoher Durchsatz entscheidend sind.

TensorRT und Ultralytics YOLO

Ultralytics YOLO Modelle können mit TensorRT für den Einsatz auf NVIDIA Geräten exportiert und optimiert werden. Die Exportdokumentation für Ultralytics YOLO enthält detaillierte Anweisungen, wie man YOLO Modelle in das TensorRT Format konvertiert. Auf diese Weise können die Nutzer die Optimierungsmöglichkeiten von TensorRT nutzen, um die Inferenzgeschwindigkeit ihrer YOLO Modelle erheblich zu beschleunigen.

Für Nutzer, die YOLOv8 auf NVIDIA Jetson Edge-Geräten einsetzen, ist die TensorRT Optimierung oft ein entscheidender Schritt, um eine Echtzeitleistung zu erreichen. Außerdem nutzt DeepStream auf NVIDIA Jetson TensorRT für leistungsstarke Videoanalyseanwendungen.

Vorteile der Verwendung TensorRT

Die Nutzung von TensorRT bietet mehrere entscheidende Vorteile für den Einsatz von Deep Learning-Modellen:

  • Erhöhte Inferenzgeschwindigkeit: Optimierungen reduzieren die Latenzzeit bei den Schlussfolgerungen erheblich und erhöhen den Durchsatz, was eine Echtzeitleistung ermöglicht.
  • Geringere Latenzzeit: Geringere Latenzzeiten sind entscheidend für Anwendungen, die sofortige Reaktionen erfordern, wie z. B. autonome Systeme und Echtzeitanalysen.
  • Optimierte Ressourcenausnutzung: Die Quantisierung und die Optimierung des Graphen führen zu einer Verringerung des Speicherbedarfs und der Rechenanforderungen, sodass die Modelle auf ressourcenbeschränkten Geräten effizienter laufen.
  • Hardware-Beschleunigung: TensorRT wurde entwickelt, um die Nutzung der NVIDIA GPUs zu maximieren und eine optimale Leistung auf NVIDIA Hardware zu gewährleisten.
  • Bereitschaft zum Einsatz: Es bietet eine produktionsreife Laufzeitumgebung, die den Bereitstellungsprozess vom trainierten Modell bis zur Anwendung rationalisiert.

Zusammenfassend lässt sich sagen, dass TensorRT ein unverzichtbares Werkzeug für Entwickler ist, die leistungsstarke Deep-Learning-Anwendungen einsetzen wollen, insbesondere wenn sie NVIDIA GPUs verwenden. Durch die Optimierung von Modellen auf Geschwindigkeit und Effizienz hilft TensorRT dabei, die Lücke zwischen Forschung und Praxis zu schließen, und macht fortschrittliche KI in verschiedenen Branchen zugänglich und praktisch.

Alles lesen