TensorRT
TensorRT è l'SDK di NVIDIA per ottimizzare modelli addestrati affinché funzionino con latenza ridotta sulle GPU NVIDIA. Scopri come funziona e come esportare YOLO in TensorRT.
TensorRT è un kit di sviluppo software (SDK) per l'inferenza del deep learning ad alte prestazioni, sviluppato da NVIDIA. È progettato per ottimizzare le reti neurali per la distribuzione, offrendo una latenza di inferenza ridotta e un throughput elevato per le applicazioni di deep learning. Agendo da compilatore di ottimizzazione, TensorRT ristruttura le reti addestrate con framework diffusi come PyTorch e TensorFlow per eseguirle in modo efficiente sulle GPU NVIDIA. Questa funzionalità è fondamentale per eseguire modelli di IA complessi in ambienti di produzione, dove velocità ed efficienza sono prioritarie.
Come TensorRT ottimizza i modelli#
La funzione principale di TensorRT consiste nel convertire una rete neurale addestrata in un "engine" ottimizzato, configurato appositamente per l'hardware di destinazione. A questo scopo utilizza diverse tecniche avanzate:
- Fusione dei layer: L'ottimizzatore combina più layer di una rete neurale in un unico kernel, riducendo l'overhead degli accessi alla memoria e aumentando la velocità di esecuzione.
- Calibrazione della precisione: TensorRT supporta modalità a precisione ridotta, come la precisione mista (FP16) e la quantizzazione intera (INT8). Riducendo il numero di bit usati per rappresentare i numeri, spesso con una perdita minima di precisione, gli sviluppatori possono accelerare notevolmente le operazioni matematiche e ridurre l'uso della memoria. Questa tecnica è una forma di quantizzazione del modello.
- Ottimizzazione automatica dei kernel: il software seleziona automaticamente i migliori layout dei dati e algoritmi per l'architettura GPU specifica in uso, garantendo il massimo sfruttamento delle capacità di elaborazione parallela dell'hardware tramite CUDA.
Applicazioni nel mondo reale#
Grazie alla capacità di elaborare enormi quantità di dati con ritardi minimi, TensorRT è ampiamente adottato nei settori che si basano sulla visione artificiale e su attività di IA complesse in cui la tempestività è fondamentale.
-
Sistemi autonomi: Nel campo dell'IA nel settore automobilistico, le auto a guida autonoma devono elaborare istantaneamente i flussi video di più telecamere per rilevare pedoni, cartelli e ostacoli. Con TensorRT, le reti di percezione come quelle per il rilevamento degli oggetti possono analizzare i fotogrammi in millisecondi, consentendo al sistema di controllo del veicolo di prendere decisioni critiche per la sicurezza senza ritardi.
-
Automazione industriale: Le fabbriche moderne utilizzano l'IA nella produzione per l'ispezione ottica automatizzata. Telecamere ad alta velocità acquisiscono immagini dei prodotti sulle linee di assemblaggio e i modelli ottimizzati con TensorRT identificano difetti o anomalie in tempo reale. In questo modo, il controllo qualità riesce a tenere il passo con gli ambienti di produzione ad alta velocità, spesso utilizzando dispositivi di IA edge, come la piattaforma NVIDIA Jetson, direttamente in fabbrica.
Uso di TensorRT con Ultralytics YOLO#
Integrare TensorRT nel flusso di lavoro è semplice con gli strumenti di IA moderni. Il pacchetto ultralytics offre un metodo immediato per convertire i modelli PyTorch standard in motori TensorRT. In questo modo puoi sfruttare l'architettura all'avanguardia di Ultralytics YOLO26 con l'accelerazione hardware delle GPU NVIDIA. Per i team che vogliono gestire i dataset e le pipeline di addestramento prima dell'esportazione, la Ultralytics Platform offre un ambiente completo per preparare i modelli a questo tipo di distribuzione ad alte prestazioni.
Il seguente esempio mostra come esportare un modello Ultralytics YOLO26 in un file motore TensorRT (.engine) e usarlo per l'inferenza in tempo reale:
from ultralytics import YOLO
# Carica l'ultima versione stabile del modello YOLO26 (dimensione nano)
model = YOLO("yolo26n.pt")
# Esporta il modello nel formato TensorRT (crea 'yolo26n.engine')
# Questo passaggio ottimizza il grafo computazionale per la tua GPU specifica
model.export(format="engine")
# Carica l'engine TensorRT ottimizzato per un'inferenza ad alta velocità
trt_model = YOLO("yolo26n.engine")
# Esegui l'inferenza su una sorgente di immagini
results = trt_model("https://ultralytics.com/images/bus.jpg")TensorRT, ONNX e framework di addestramento a confronto#
È importante distinguere TensorRT dagli altri termini ricorrenti nel contesto della distribuzione dei modelli:
- Rispetto a PyTorch/TensorFlow: Framework come PyTorch sono progettati principalmente per l'addestramento dei modelli e la ricerca, e offrono flessibilità e facilità di debug. TensorRT è un engine di inferenza progettato esclusivamente per eseguire i modelli addestrati alla massima velocità possibile. Non viene usato per l'addestramento.
- Rispetto a ONNX: Il formato ONNX (Open Neural Network Exchange) funge da ponte intermedio tra i framework. ONNX offre interoperabilità, ad esempio per trasferire un modello da PyTorch a un'altra piattaforma, mentre TensorRT si concentra sull'ottimizzazione specifica per l'hardware. Spesso un modello viene prima convertito in ONNX e poi analizzato da TensorRT per generare l'engine finale.
Per gli sviluppatori che vogliono massimizzare le prestazioni dei propri agenti di IA o sistemi di visione, comprendere il passaggio da un framework di addestramento a un runtime ottimizzato come TensorRT è un passo fondamentale per un approccio professionale a MLOps.










