TensorRT
Scopri come TensorRT ottimizza i modelli di deep learning per le GPU NVIDIA. Impara a esportare Ultralytics YOLO26 in TensorRT per inferenze rapide e a bassa latenza.
TensorRT è un kit di sviluppo software (SDK) per l'inferenza di deep learning ad alte prestazioni, sviluppato da NVIDIA. È progettato per ottimizzare i modelli di reti neurali per la distribuzione, offrendo una bassa latenza di inferenza e un throughput elevato per le applicazioni di deep learning. In qualità di compilatore per l'ottimizzazione, TensorRT prende le reti addestrate da framework diffusi come PyTorch e TensorFlow e le ristruttura affinché vengano eseguite in modo efficiente sulle GPU NVIDIA. Questa funzionalità è essenziale per eseguire modelli di IA complessi in ambienti di produzione, dove velocità ed efficienza sono fondamentali.
Come TensorRT ottimizza i modelli#
La funzione principale di TensorRT consiste nel convertire una rete neurale addestrata in un "engine" ottimizzato e configurato specificamente 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 singolo kernel, riducendo l'overhead degli accessi alla memoria e migliorando la velocità di esecuzione.
- Calibrazione della precisione: TensorRT supporta modalità a precisione ridotta, come la precisione mista (FP16) e la quantizzazione degli interi (INT8). Riducendo il numero di bit utilizzati per rappresentare i numeri, spesso con una perdita minima di accuratezza, gli sviluppatori possono accelerare significativamente le operazioni matematiche e ridurre l'utilizzo della memoria. Questa è una forma di quantizzazione del modello.
- Ottimizzazione automatica dei kernel: il software seleziona automaticamente i migliori layer di dati e algoritmi per l'architettura GPU specifica in uso, garantendo il massimo utilizzo delle capacità di elaborazione parallela dell'hardware tramite CUDA.
Applicazioni nel mondo reale#
Grazie alla capacità di elaborare enormi quantità di dati con un ritardo minimo, TensorRT è ampiamente adottato nei settori che si affidano alla visione artificiale e ad attività di IA complesse in cui la tempestività è fondamentale.
-
Sistemi autonomi: nell'ambito dell'IA nel settore automobilistico, le auto a guida autonoma devono elaborare i flussi video provenienti da più telecamere per rilevare istantaneamente pedoni, segnali e ostacoli. Utilizzando TensorRT, i modelli di percezione, come le reti 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: gli stabilimenti moderni utilizzano l'IA nella produzione per l'ispezione ottica automatizzata. Le 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. Questo garantisce che il controllo qualità riesca a tenere il passo con gli ambienti produttivi ad alta velocità, spesso utilizzando dispositivi di IA edge come la piattaforma NVIDIA Jetson direttamente nello stabilimento.
Utilizzare TensorRT con Ultralytics YOLO#
Integrare TensorRT nel tuo workflow è semplice con gli strumenti moderni di IA. Il pacchetto ultralytics offre un metodo immediato per convertire i modelli PyTorch standard in engine TensorRT. In questo modo puoi sfruttare l'architettura all'avanguardia di Ultralytics YOLO26 insieme all'accelerazione hardware delle GPU NVIDIA. Per i team che desiderano gestire i propri dataset e le pipeline di addestramento prima dell'esportazione, la Ultralytics Platform offre un ambiente completo per preparare i modelli a una distribuzione ad alte prestazioni di questo tipo.
L'esempio seguente mostra come esportare un modello Ultralytics YOLO26 in un file engine TensorRT (.engine) e utilizzarlo per l'inferenza in tempo reale:
from ultralytics import YOLO
# Load the latest stable YOLO26 model (nano size)
model = YOLO("yolo26n.pt")
# Export the model to TensorRT format (creates 'yolo26n.engine')
# This step optimizes the computational graph for your specific GPU
model.export(format="engine")
# Load the optimized TensorRT engine for high-speed inference
trt_model = YOLO("yolo26n.engine")
# Run inference on an image source
results = trt_model("https://ultralytics.com/images/bus.jpg")TensorRT vs. ONNX vs. framework di addestramento#
È importante distinguere TensorRT da altri termini spesso utilizzati nell'ambito della distribuzione dei modelli:
- Rispetto a PyTorch/TensorFlow: framework come PyTorch sono progettati principalmente per l'addestramento dei modelli e la ricerca, offrendo flessibilità e facilità di debug. TensorRT è un motore di inferenza progettato esclusivamente per eseguire i modelli addestrati nel modo più rapido possibile. Non viene utilizzato per l'addestramento.
- Rispetto a ONNX: il formato ONNX (scambio aperto di reti neurali) funge da ponte intermedio tra i framework. Mentre ONNX offre interoperabilità, ad esempio per trasferire un modello da PyTorch a un'altra piattaforma, 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 puntano a 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 passaggio fondamentale nell'ambito professionale MLOps.









