Glossario

TensorRT

Ottimizza i modelli di deep learning con TensorRT per un'inferenza più veloce ed efficiente sulle GPU NVIDIA . Ottieni prestazioni in tempo reale con YOLO e le applicazioni di AI.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

TensorRT è un ottimizzatore di inferenza e una libreria runtime di Deep Learning (DL) ad alte prestazioni sviluppata da NVIDIA. È stato progettato specificamente per massimizzare il throughput di inferenza e minimizzare la latenza di inferenza per le applicazioni di deep learning in esecuzione sulle GPUNVIDIA . TensorRT prende i modelli di rete neurale addestrati da vari framework e applica numerose ottimizzazioni per generare un motore runtime altamente ottimizzato per la distribuzione. Questo processo è fondamentale per distribuire i modelli in modo efficiente negli ambienti di produzione, soprattutto quando la velocità e la reattività sono fondamentali.

Caratteristiche principali e ottimizzazioni

TensorRT ottiene miglioramenti significativi delle prestazioni grazie a diverse tecniche sofisticate:

  • Calibrazione della precisione: Riduce la precisione del modello da FP32 a precisioni inferiori come FP16 o INT8(precisione mista o quantizzazione del modello) con una perdita minima di accuratezza, che porta a calcoli più veloci e a un minore utilizzo della memoria.
  • Fusione di livelli e Tensor : Combina più livelli o operazioni in un unico kernel(Layer Fusion), riducendo l'utilizzo della larghezza di banda della memoria e l'overhead del lancio del kernel.
  • Kernel Auto-Tuning: Seleziona i migliori algoritmi preimplementati (kernel) per il target NVIDIA GPU per l'architettura della GPU NVIDIA di destinazione, garantendo prestazioni ottimali per l'hardware specifico.
  • Memoria dinamica Tensor : Riduce al minimo l'ingombro della memoria riutilizzando la memoria allocata per i tensori la cui durata non si sovrappone.
  • Esecuzione Multi-Stream: Consente l'elaborazione parallela di più flussi di input.

Come funziona TensorRT

Il flusso di lavoro prevede in genere di prendere un modello addestrato (ad esempio da PyTorch o TensorFlowspesso attraverso un formato intermedio come ONNX) e lo inserisce nell'ottimizzatore TensorRT . TensorRT analizza il modello, esegue ottimizzazioni del grafo e ottimizzazioni specifiche in base alla precisione e alla GPU di destinazione specificate e infine genera un piano di inferenza ottimizzato, noto come motore TensorRT . Questo file di motore può essere distribuito per un'inferenza veloce.

Rilevanza nell'IA e nel ML

TensorRT è molto importante per la fase di implementazione dei modelli nel ciclo di vita dell'apprendimento automatico. La sua capacità di accelerare in modo significativo l'inferenza lo rende indispensabile per le applicazioni che richiedono un'inferenza in tempo reale, come ad esempio il rilevamento di oggetti con modelli come Ultralytics YOLO, la segmentazione delle immagini e l'elaborazione del linguaggio naturale. È un componente chiave dello stack software di NVIDIA , insieme a strumenti come CUDA, consentendo agli sviluppatori di sfruttare tutto il potenziale dell'hardware NVIDIA , dalle potenti GPU per data center ai moduli NVIDIA Jetson a basso consumo energetico per l'Edge AI. Ultralytics offre un'integrazione perfetta, consentendo agli utenti di esportare i modelli YOLO in formato TensorRT per una distribuzione ottimizzata, spesso utilizzata con piattaforme come Triton Inference Server.

Applicazioni del mondo reale

TensorRT è ampiamente utilizzato in diversi settori in cui è necessaria un'inferenza AI veloce ed efficiente:

  1. Veicoli autonomi: Nelle auto a guida autonoma(AI in Automotive), TensorRT ottimizza i modelli di percezione (come il rilevamento degli oggetti e la segmentazione della corsia) in esecuzione su piattaforme NVIDIA DRIVE integrate, garantendo un processo decisionale in tempo reale fondamentale per la sicurezza. Modelli come RTDETR possono essere ottimizzati con TensorRT per essere utilizzati in questi sistemi(confronto tra RTDETRv2 e YOLOv5 ).
  2. Analisi di immagini mediche: ospedali e istituti di ricerca utilizzano TensorRT per accelerare l'inferenza di modelli di intelligenza artificiale che analizzano scansioni mediche (TAC, risonanza magnetica) per attività come il rilevamento di tumori o l'identificazione di anomalie(AI in Healthcare), consentendo diagnosi più rapide e supportando i flussi di lavoro clinici. Spesso questo fa parte di sistemi di Computer Vision (CV) più ampi.

TensorRT vs. Tecnologie correlate

Mentre TensorRT si concentra sull'ottimizzazione dell'inferenza specificamente per le GPU NVIDIA , esistono altri strumenti nell'ecosistema:

  • Framework di apprendimento profondo (PyTorch, TensorFlow): Sono utilizzati principalmente per l'addestramento dei modelli, ma offrono anche funzionalità di inferenza di base. TensorRT ottimizza i modelli addestrati in questi framework per la distribuzione.
  • ONNX Runtime: Un motore di inferenza multipiattaforma che supporta diversi acceleratori hardware, tra cui le GPU NVIDIA (spesso utilizzando TensorRT come fornitore di esecuzione), le CPU e altri. Offre una compatibilità hardware più ampia ma potrebbe non raggiungere lo stesso livello di ottimizzazione sull'hardware NVIDIA come TensorRT direttamente.
  • Intel OpenVINO: simile a TensorRT ma ottimizzato per l'hardware Intel (CPU, iGPU, VPU). I modelli Ultralytics possono essere esportati anche in formato OpenVINO .

Il principale elemento di differenziazione di TensorRT è la sua profonda integrazione con l'hardware NVIDIA e le sue strategie di ottimizzazione aggressiva su misura per le GPU, che spesso producono i benchmark più performanti (vedi MLPerf Benchmarks) su piattaforme NVIDIA rispetto a runtime più generici. La gestione dei modelli e delle implementazioni può essere semplificata utilizzando piattaforme come Ultralytics HUB.

Leggi tutto