TensorRT
Ottimizza i modelli di deep learning con TensorRT per un'inferenza più rapida ed efficiente sulle GPU NVIDIA. Ottieni prestazioni in tempo reale con YOLO e applicazioni AI.
TensorRT è un ottimizzatore di inferenza di deep learning ad alte prestazioni e una libreria runtime di NVIDIA. È specificamente progettato per massimizzare le prestazioni delle reti neurali (NN) addestrate sulle Graphics Processing Units (GPU) NVIDIA. Dopo che un modello è stato addestrato utilizzando un framework come PyTorch o TensorFlow, TensorRT prende quel modello e applica numerose ottimizzazioni per prepararlo alla distribuzione. Il risultato è un motore runtime altamente efficiente che può ridurre significativamente la latenza di inferenza e migliorare il throughput, rendendolo ideale per applicazioni che richiedono inferenza in tempo reale.
Come funziona TensorRT
TensorRT ottiene i suoi guadagni di performance attraverso un processo di ottimizzazione multi-step che trasforma un modello addestrato standard in un motore di inferenza semplificato. Questo processo è in gran parte automatizzato e adattato alla specifica architettura GPU NVIDIA su cui verrà distribuito. Le principali tecniche di ottimizzazione includono:
- Ottimizzazione del grafo: TensorRT analizza il modello addestrato ed esegue ottimizzazioni del grafo, come l'eliminazione di layer inutilizzati e la fusione di layer verticalmente (combinando layer sequenziali) e orizzontalmente (combinando layer paralleli). Ciò riduce il numero di operazioni e l'overhead di memoria.
- Calibrazione della precisione: Supporta l'inferenza a precisione inferiore, come la precisione mista (FP16) e INT8. Convertendo i pesi del modello da floating-point a 32 bit (FP32) a precisioni inferiori tramite la quantizzazione del modello, TensorRT riduce drasticamente l'utilizzo della memoria e i requisiti computazionali con un impatto minimo sull'accuratezza.
- Auto-tuning del kernel: TensorRT seleziona da una vasta libreria di kernel GPU ottimizzati per ogni operazione oppure crea kernel appositamente ottimizzati per la GPU di destinazione. Ciò garantisce che ogni calcolo venga eseguito nel modo più efficiente possibile sull'hardware.
- Ottimizzazione della memoria dei tensori: Ottimizza l'utilizzo della memoria riutilizzando la memoria per i tensori durante l'esecuzione del modello, riducendo l'ingombro della memoria e migliorando le prestazioni.
I modelli Ultralytics YOLO possono essere facilmente esportati nel formato TensorRT, consentendo agli sviluppatori di sfruttare queste ottimizzazioni per le loro applicazioni di computer vision (CV).
Applicazioni nel mondo reale
TensorRT è fondamentale per distribuire l'AI ad alte prestazioni in ambienti con vincoli di tempo e risorse.
- Veicoli autonomi: Nelle auto a guida autonoma, i sistemi di percezione devono elaborare i dati provenienti da telecamere e sensori in tempo reale per rilevare pedoni, altri veicoli e ostacoli. Modelli come Ultralytics YOLO11 ottimizzati con TensorRT possono eseguire il rilevamento di oggetti con una latenza estremamente bassa, il che è fondamentale per prendere decisioni di guida sicure.
- Produzione intelligente: In un ambiente di fabbrica, l'IA nella produzione viene utilizzata per il controllo qualità automatizzato. Una telecamera acquisisce immagini dei prodotti su un nastro trasportatore e un modello di visione le analizza per rilevare difetti. Utilizzando TensorRT, questi sistemi possono tenere il passo con le linee di produzione ad alta velocità, identificando i problemi istantaneamente e migliorando l'efficienza complessiva.
TensorRT vs. Tecnologie correlate
Sebbene TensorRT sia un potente motore di inferenza, è importante capire come differisce dagli altri strumenti nell'ecosistema dell'IA:
- Framework di Deep Learning: Framework come PyTorch e TensorFlow sono principalmente per l'addestramento di modelli. Sebbene abbiano le proprie capacità di inferenza, non sono ottimizzati per il deployment come un runtime specializzato come TensorRT.
- ONNX Runtime: Il formato Open Neural Network Exchange (ONNX) fornisce un modo per rappresentare i modelli in modo interoperabile. ONNX Runtime può eseguire modelli su varie piattaforme hardware, incluse le GPU NVIDIA (dove può utilizzare TensorRT come execution provider). Tuttavia, l'integrazione diretta con TensorRT spesso produce prestazioni migliori sull'hardware NVIDIA grazie alle sue ottimizzazioni specifiche per l'hardware.
- Intel OpenVINO: OpenVINO è simile a TensorRT ma è ottimizzato per l'hardware Intel (CPU, iGPU, VPU). Svolge lo stesso scopo di accelerare l'inferenza, ma è progettato per un diverso ecosistema hardware.
Il vantaggio principale di TensorRT è la sua profonda integrazione con l'ecosistema NVIDIA, dalle GPU alle librerie CUDA, che consente prestazioni senza pari per i modelli distribuiti su piattaforme NVIDIA, come spesso mostrato nei benchmark MLPerf. La gestione della distribuzione dei modelli può essere ulteriormente semplificata con piattaforme MLOps come Ultralytics HUB.