TensorRT
Ottimizzate i modelli di deep learning con TensorRT per un'inferenza più rapida ed efficiente sulle GPU NVIDIA. Ottenere prestazioni in tempo reale con YOLO e le applicazioni di AI.
TensorRT è un ottimizzatore di inferenza di deep learning ad alte prestazioni e una libreria di runtime di NVIDIA. È stato progettato specificamente per massimizzare le prestazioni delle reti neurali (NN) addestrate sulle unità di elaborazione grafica (GPU) NVIDIA. Dopo che un modello è stato addestrato usando un framework come PyTorch o TensorFlow, TensorRT lo prende e applica numerose ottimizzazioni per prepararlo alla distribuzione. Il risultato è un motore di runtime altamente efficiente che può ridurre significativamente la latenza di inferenza e migliorare il throughput, rendendolo ideale per le applicazioni che richiedono inferenza in tempo reale.
Come funziona TensorRT
TensorRT ottiene i suoi guadagni di prestazioni attraverso un processo di ottimizzazione in più fasi che trasforma un modello addestrato standard in un motore di inferenza semplificato. Questo processo è in gran parte automatizzato e adattato alla specifica architettura di GPU NVIDIA su cui verrà implementato. Le principali tecniche di ottimizzazione includono:
- Ottimizzazione del grafico: TensorRT analizza il modello addestrato ed esegue ottimizzazioni del grafo, come l'eliminazione dei livelli inutilizzati e la fusione dei livelli in senso verticale (combinazione di livelli sequenziali) e orizzontale (combinazione di livelli paralleli). Questo riduce il numero di operazioni e l'overhead di memoria.
- Calibrazione di precisione: Supporta l'inferenza a bassa precisione, come la precisione mista (FP16) e INT8. Convertendo i pesi del modello da 32 bit in virgola mobile (FP32) a precisioni inferiori attraverso la quantizzazione del modello, TensorRT riduce drasticamente l'uso della memoria e i requisiti di calcolo con un impatto minimo sulla precisione.
- Sintonizzazione automatica del kernel: TensorRT seleziona da una vasta libreria di kernel ottimizzati per GPU per ogni operazione o crea i propri kernel specificamente sintonizzati per la GPU di destinazione. Questo garantisce che ogni calcolo venga eseguito nel modo più efficiente possibile sull'hardware.
- Ottimizzazione della memoria dei tensori: Ottimizza l'uso della memoria riutilizzando la memoria per i tensori durante l'esecuzione del modello, riducendo l'impronta di 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 del mondo reale
TensorRT è fondamentale per l'implementazione di IA ad alte prestazioni in ambienti sensibili al tempo e con risorse limitate.
- Veicoli autonomi: Nelle auto a guida autonoma, i sistemi di percezione devono elaborare in tempo reale i dati provenienti da telecamere e sensori per rilevare pedoni, altri veicoli e ostacoli. Modelli come Ultralytics YOLO11, ottimizzati con TensorRT, sono in grado di eseguire il rilevamento degli oggetti con una latenza estremamente bassa, fondamentale per prendere decisioni di guida sicure.
- Produzione intelligente: In fabbrica, l 'intelligenza artificiale viene utilizzata per il controllo qualità automatizzato. Una telecamera cattura le immagini dei prodotti su un nastro trasportatore e un modello di visione le analizza per individuare eventuali difetti. Utilizzando TensorRT, questi sistemi possono tenere il passo con le linee di produzione ad alta velocità, identificando istantaneamente i problemi e migliorando l'efficienza complessiva.
TensorRT vs. tecnologie correlate
Sebbene TensorRT sia un potente motore di inferenza, è importante capire come si differenzia da altri strumenti dell'ecosistema dell'IA:
- Quadri di apprendimento profondo: Framework come PyTorch e TensorFlow servono principalmente per l'addestramento dei modelli. Pur avendo le loro capacità di inferenza, non sono ottimizzati per la distribuzione come un runtime specializzato come TensorRT.
- Tempo di esecuzione ONNX: Il formato Open Neural Network Exchange (ONNX) fornisce un modo per rappresentare i modelli in modo interoperabile. ONNX Runtime può eseguire i modelli su varie piattaforme hardware, comprese le GPU NVIDIA (dove può utilizzare TensorRT come provider di esecuzione). Tuttavia, l'integrazione diretta con TensorRT offre spesso 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). Ha lo stesso scopo di accelerare l'inferenza, ma è adattato a un diverso ecosistema hardware.
Il vantaggio principale di TensorRT è la sua profonda integrazione con l'ecosistema NVIDIA, dalle GPU alle librerie CUDA, che consente di ottenere prestazioni senza precedenti per i modelli distribuiti sulle piattaforme NVIDIA, come spesso dimostrato dai benchmark MLPerf. La gestione della distribuzione dei modelli può essere ulteriormente semplificata con piattaforme MLOps come Ultralytics HUB.