Esportazione TensorRT per modelli YOLO26

Distribuire modelli di visione artificiale in ambienti ad alte prestazioni può richiedere un formato che massimizzi velocità ed efficienza. Questo è particolarmente vero quando distribuisci il tuo modello su GPU NVIDIA.

Utilizzando il formato di esportazione TensorRT, puoi ottimizzare i tuoi modelli Ultralytics YOLO26 per un'inferenza rapida ed efficiente su hardware NVIDIA. Questa guida ti fornirà passaggi semplici da seguire per il processo di conversione e ti aiuterà a sfruttare al meglio l'avanzata tecnologia NVIDIA nei tuoi progetti di deep learning.

TensorRT

NVIDIA TensorRT optimization workflow

TensorRT, sviluppato da NVIDIA, è un kit di sviluppo software (SDK) avanzato progettato per l'inferenza di deep learning ad alta velocità. È particolarmente adatto per applicazioni in tempo reale come il rilevamento oggetti.

Questo toolkit ottimizza i modelli di deep learning per le GPU NVIDIA e porta a operazioni più rapide ed efficienti. I modelli TensorRT vengono sottoposti all'ottimizzazione TensorRT, che include tecniche come la fusione dei layer, la calibrazione della precisione (INT8 e FP16), la gestione dinamica della memoria dei tensori e l'auto-tuning del kernel. Convertire i modelli di deep learning nel formato TensorRT permette agli sviluppatori di sfruttare appieno il potenziale delle GPU NVIDIA.

TensorRT è noto per la sua compatibilità con vari formati di modelli, inclusi TensorFlow, PyTorch e ONNX, offrendo agli sviluppatori una soluzione flessibile per integrare e ottimizzare modelli da framework diversi. Questa versatilità abilita un'efficiente distribuzione dei modelli attraverso diversi ambienti hardware e software.

Caratteristiche principali dei modelli TensorRT

I modelli TensorRT offrono una serie di caratteristiche chiave che contribuiscono alla loro efficienza ed efficacia nell'inferenza di deep learning ad alta velocità:

  • Calibrazione della precisione: TensorRT supporta la calibrazione della precisione, permettendo ai modelli di essere ottimizzati per specifici requisiti di accuratezza. Ciò include il supporto per formati a precisione ridotta come INT8 e FP16, che possono ulteriormente incrementare la velocità di inferenza mantenendo livelli di accuratezza accettabili.

  • Fusione dei layer: Il processo di ottimizzazione di TensorRT include la fusione dei layer, in cui più livelli di una rete neurale vengono combinati in un'unica operazione. Questo riduce il sovraccarico computazionale e migliora la velocità di inferenza minimizzando l'accesso alla memoria e il calcolo.

TensorRT neural network layer fusion optimization

  • Gestione dinamica della memoria dei tensori: TensorRT gestisce in modo efficiente l'utilizzo della memoria dei tensori durante l'inferenza, riducendo il sovraccarico di memoria e ottimizzando l'allocazione. Ciò si traduce in un utilizzo più efficiente della memoria GPU.

  • Auto-tuning del kernel: TensorRT applica l'auto-tuning del kernel per selezionare il kernel GPU più ottimizzato per ogni layer del modello. Questo approccio adattivo assicura che il modello sfrutti appieno la potenza computazionale della GPU.

Opzioni di distribuzione in TensorRT

Prima di esaminare il codice per esportare i modelli YOLO26 nel formato TensorRT, capiamo dove vengono normalmente utilizzati i modelli TensorRT.

TensorRT offre diverse opzioni di distribuzione, ognuna delle quali bilancia in modo diverso facilità di integrazione, ottimizzazione delle prestazioni e flessibilità:

  • Distribuzione all'interno di TensorFlow: Questo metodo integra TensorRT in TensorFlow, permettendo ai modelli ottimizzati di girare in un ambiente TensorFlow familiare. È utile per modelli con un mix di layer supportati e non, poiché TF-TRT può gestirli in modo efficiente.

NVIDIA TensorRT optimization workflow

  • Runtime API TensorRT standalone: Offre un controllo granulare, ideale per applicazioni critiche per le prestazioni. È più complesso ma permette l'implementazione personalizzata di operatori non supportati.

  • NVIDIA Triton Inference Server: Un'opzione che supporta modelli da vari framework. Particolarmente adatta per l'inferenza cloud o edge, fornisce funzionalità come l'esecuzione simultanea dei modelli e l'analisi dei modelli.

Esportazione di modelli YOLO26 in TensorRT

Puoi migliorare l'efficienza di esecuzione e ottimizzare le prestazioni convertendo i modelli YOLO26 nel formato TensorRT.

Installazione

Per installare il pacchetto richiesto, esegui:

Installazione
# Install the required package for YOLO26
pip install ultralytics

Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di YOLO26. Se riscontri difficoltà durante l'installazione dei pacchetti richiesti per YOLO26, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.

Utilizzo

Prima di immergerti nelle istruzioni per l'uso, assicurati di dare un'occhiata alla gamma di modelli YOLO26 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più adatto alle esigenze del tuo progetto.

Utilizzo
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT format
model.export(format="engine")  # creates 'yolo26n.engine'

# Load the exported TensorRT model
tensorrt_model = YOLO("yolo26n.engine")

# Run inference
results = tensorrt_model("https://ultralytics.com/images/bus.jpg")

Argomenti di esportazione

ArgomentoTipoPredefinitoDescrizione
formatstr'engine'Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione.
imgszint o tuple640Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche.
halfboolFalseAbilita la quantizzazione FP16 (precisione dimezzata), riducendo le dimensioni del modello e potenzialmente velocizzando l'inferenza sull'hardware supportato.
int8boolFalseAttiva la quantizzazione INT8, comprimendo ulteriormente il modello e velocizzando l'inferenza con una perdita minima di accuratezza, principalmente per i dispositivi edge.
dynamicboolFalseConsente dimensioni di input dinamiche, migliorando la flessibilità nella gestione di dimensioni variabili delle immagini.
simplifyboolTrueSemplifica il grafo del modello con onnxslim, migliorando potenzialmente le prestazioni e la compatibilità.
workspacefloat o NoneNoneImposta la dimensione massima dello spazio di lavoro in GiB per le ottimizzazioni di TensorRT, bilanciando utilizzo della memoria e prestazioni; usa None per l'auto-allocazione da parte di TensorRT fino al massimo del dispositivo.
nmsboolFalseAggiunge la Non-Maximum Suppression (NMS), essenziale per un post-elaborazione del rilevamento accurato ed efficiente.
batchint1Specifica la dimensione dell'inferenza batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict.
datastr'coco8.yaml'Percorso del file di configurazione del dataset (default: coco8.yaml), essenziale per la quantizzazione.
fractionfloat1.0Specifica la frazione del dataset da utilizzare per la calibrazione della quantizzazione INT8. Consente di calibrare su un sottoinsieme dell'intero dataset, utile per esperimenti o quando le risorse sono limitate. Se non specificato con INT8 abilitato, verrà utilizzato l'intero dataset.
devicestrNoneSpecifica il dispositivo per l'esportazione: GPU (device=0), DLA per NVIDIA Jetson (device=dla:0 o device=dla:1).
Suggerimento

Assicurati di utilizzare una GPU con supporto CUDA durante l'esportazione verso TensorRT.

Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.

Esportazione in TensorRT con quantizzazione INT8

L'esportazione dei modelli YOLO di Ultralytics tramite TensorRT con precisione INT8 esegue la quantizzazione post-addestramento (PTQ). TensorRT utilizza la calibrazione per la PTQ, che misura la distribuzione delle attivazioni all'interno di ogni tensore di attivazione mentre il modello YOLO elabora l'inferenza su dati di input rappresentativi, e quindi utilizza quella distribuzione per stimare i valori di scala per ogni tensore. Ogni tensore di attivazione che è candidato alla quantizzazione ha una scala associata che viene dedotta da un processo di calibrazione.

Quando elabora reti implicitamente quantizzate, TensorRT utilizza l'INT8 in modo opportunistico per ottimizzare il tempo di esecuzione dei layer. Se un layer viene eseguito più velocemente in INT8 e ha scale di quantizzazione assegnate sui suoi dati di input e output, allora al layer viene assegnato un kernel con precisione INT8; altrimenti, TensorRT seleziona una precisione FP32 o FP16 per il kernel in base a quale risulta in un tempo di esecuzione più veloce per quel layer.

Suggerimento

È fondamentale assicurarsi che lo stesso dispositivo che utilizzerà i pesi del modello TensorRT per la distribuzione venga utilizzato per l'esportazione con precisione INT8, poiché i risultati della calibrazione possono variare tra i dispositivi.

Configurazione dell'esportazione INT8

Gli argomenti forniti durante l'utilizzo di esportazione per un modello YOLO di Ultralytics influenzeranno notevolmente le prestazioni del modello esportato. Dovranno anche essere selezionati in base alle risorse del dispositivo disponibili, tuttavia gli argomenti predefiniti dovrebbero funzionare per la maggior parte delle GPU discrete NVIDIA Ampere (o più recenti). L'algoritmo di calibrazione utilizzato è "MINMAX_CALIBRATION" e puoi leggere ulteriori dettagli sulle opzioni disponibili nella Guida per gli sviluppatori di TensorRT. I test di Ultralytics hanno riscontrato che "MINMAX_CALIBRATION" era la scelta migliore e le esportazioni sono bloccate sull'utilizzo di questo algoritmo.

  • workspace : Controlla la dimensione (in GiB) dell'allocazione della memoria del dispositivo durante la conversione dei pesi del modello.

    • Regola il valore di workspace in base alle tue esigenze di calibrazione e alla disponibilità di risorse. Sebbene un workspace più grande possa aumentare il tempo di calibrazione, consente a TensorRT di esplorare una gamma più ampia di tattiche di ottimizzazione, migliorando potenzialmente le prestazioni e l'accuratezza del modello. Al contrario, un workspace più piccolo può ridurre il tempo di calibrazione ma potrebbe limitare le strategie di ottimizzazione, influenzando la qualità del modello quantizzato.

    • Il valore predefinito è workspace=None, che consentirà a TensorRT di allocare memoria automaticamente; durante la configurazione manuale, questo valore potrebbe dover essere aumentato se la calibrazione si blocca (esce senza avviso).

    • TensorRT segnalerà UNSUPPORTED_STATE durante l'esportazione se il valore di workspace è superiore alla memoria disponibile per il dispositivo, il che significa che il valore di workspace dovrebbe essere abbassato o impostato su None.

    • Se workspace è impostato sul valore massimo e la calibrazione fallisce/si blocca, considera l'utilizzo di None per l'auto-allocazione o la riduzione dei valori di imgsz e batch per ridurre i requisiti di memoria.

    • Ricorda che la calibrazione per INT8 è specifica per ogni dispositivo; prendere in prestito una GPU "high-end" per la calibrazione potrebbe tradursi in prestazioni scarse quando l'inferenza viene eseguita su un altro dispositivo.

  • batch : La dimensione massima del batch che verrà utilizzata per l'inferenza. Durante l'inferenza possono essere utilizzati batch più piccoli, ma l'inferenza non accetterà batch più grandi di quanto specificato.

Nota

L'utilizzo di batch piccoli può portare a una scalatura imprecisa durante la calibrazione INT8. Questo perché il processo si regola in base ai dati che vede. Batch piccoli potrebbero non catturare l'intera gamma di valori, portando a problemi con la calibrazione finale. L'utilizzo di una dimensione del batch maggiore aiuta a garantire risultati di calibrazione più rappresentativi.

La sperimentazione da parte di NVIDIA li ha portati a consigliare l'utilizzo di almeno 500 immagini di calibrazione rappresentative dei dati per il tuo modello, con la calibrazione di quantizzazione INT8. Questa è una linea guida e non un requisito rigido, e dovrai sperimentare ciò che è necessario per ottenere buone prestazioni per il tuo set di dati. Poiché i dati di calibrazione sono necessari per la calibrazione INT8 con TensorRT, assicurati di utilizzare l'argomento data quando int8=True per TensorRT e usa data="my_dataset.yaml", che utilizzerà le immagini dalla validazione per calibrare. Quando non viene passato alcun valore per data con l'esportazione verso TensorRT con quantizzazione INT8, l'impostazione predefinita sarà quella di utilizzare uno dei set di dati di esempio "piccoli" basati sull'attività del modello invece di generare un errore.

Esempio
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(
    format="engine",
    dynamic=True,  # (1)!
    batch=8,  # (2)!
    workspace=4,  # (3)!
    int8=True,
    data="coco.yaml",  # (4)!
)

# Load the exported TensorRT INT8 model
model = YOLO("yolo26n.engine", task="detect")

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")
  1. Esporta con assi dinamici; questa opzione sarà abilitata per impostazione predefinita quando si esporta con int8=True anche quando non è impostata esplicitamente. Vedi argomenti di esportazione per ulteriori informazioni.
  2. Imposta la dimensione massima del batch a 8 per il modello esportato e la calibrazione INT8.
  3. Alloca 4 GiB di memoria invece di allocare l'intero dispositivo per il processo di conversione.
  4. Utilizza il set di dati COCO per la calibrazione, nello specifico le immagini utilizzate per la validazione (5.000 in totale).
Cache di calibrazione

TensorRT genererà una .cache di calibrazione che può essere riutilizzata per velocizzare l'esportazione dei pesi futuri del modello utilizzando gli stessi dati, ma ciò potrebbe portare a una calibrazione scarsa quando i dati sono molto diversi o se il valore di batch viene cambiato drasticamente. In queste circostanze, la .cache esistente dovrebbe essere rinominata e spostata in una directory diversa o eliminata completamente.

Vantaggi dell'utilizzo di YOLO con TensorRT INT8

  • Dimensioni del modello ridotte: La quantizzazione da FP32 a INT8 può ridurre le dimensioni del modello di 4 volte (su disco o in memoria), portando a tempi di download più rapidi, minori requisiti di archiviazione e ridotto ingombro di memoria quando si distribuisce un modello.

  • Consumo energetico inferiore: Le operazioni a precisione ridotta per i modelli YOLO esportati in INT8 possono consumare meno energia rispetto ai modelli FP32, specialmente per i dispositivi alimentati a batteria.

  • Velocità di inferenza migliorate: TensorRT ottimizza il modello per l'hardware di destinazione, portando potenzialmente a velocità di inferenza più elevate su GPU, dispositivi embedded e acceleratori.

Nota sulle velocità di inferenza

Per le prime chiamate di inferenza con un modello esportato in TensorRT INT8, ci si può aspettare tempi di pre-elaborazione, inferenza e/o post-elaborazione più lunghi del solito. Ciò può verificarsi anche quando si modifica imgsz durante l'inferenza, specialmente quando imgsz non è lo stesso specificato durante l'esportazione (l'esportazione imgsz è impostata come profilo "ottimale" di TensorRT).

Svantaggi dell'utilizzo di YOLO con TensorRT INT8

  • Diminuzioni nelle metriche di valutazione: Utilizzare una precisione inferiore significherà che mAP, Precision, Recall o qualsiasi altra metrica utilizzata per valutare le prestazioni del modello probabilmente peggiorerà leggermente. Vedi la sezione Risultati delle prestazioni per confrontare le differenze in mAP50 e mAP50-95 quando si esporta con INT8 su un piccolo campione di vari dispositivi.

  • Tempi di sviluppo aumentati: Trovare le impostazioni "ottimali" per la calibrazione INT8 per il set di dati e il dispositivo può richiedere una quantità significativa di test.

  • Dipendenza dall'hardware: La calibrazione e i guadagni di prestazioni potrebbero essere altamente dipendenti dall'hardware e i pesi del modello sono meno trasferibili.

Prestazioni di esportazione Ultralytics YOLO TensorRT

NVIDIA A100

Prestazioni

Testato con Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Consulta i documenti sul rilevamento per esempi di utilizzo con questi modelli addestrati su COCO, che includono 80 classi pre-addestrate.

Nota

Tempi di inferenza mostrati per mean, min (più veloce) e max (più lento) per ogni test utilizzando pesi pre-addestrati yolov8n.engine

PrecisionTest Evalmedia
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchdimensione
(pixel)
FP32Predict0.520.51 | 0.568640
FP32COCOval0.520.520.371640
FP16Predict0.340.34 | 0.418640
FP16COCOval0.330.520.371640
INT8Predict0.280.27 | 0.318640
INT8COCOval0.290.470.331640

GPU Consumer

Prestazioni di Rilevamento (COCO)

Testato con Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6

Nota

Tempi di inferenza mostrati per mean, min (più veloce) e max (più lento) per ogni test utilizzando pesi pre-addestrati yolov8n.engine

PrecisionTest Evalmedia
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchdimensione
(pixel)
FP32Predict1.060.75 | 1.888640
FP32COCOval1.370.520.371640
FP16Predict0.620.75 | 1.138640
FP16COCOval0.850.520.371640
INT8Predict0.520.38 | 1.008640
INT8COCOval0.740.470.331640

Dispositivi Embedded

Prestazioni di Rilevamento (COCO)

Testato con JetPack 6.0 (L4T 36.3) Ubuntu 22.04.4 LTS, python 3.10.12, ultralytics==8.2.16, tensorrt==10.0.1

Nota

Tempi di inferenza mostrati per mean, min (più veloce) e max (più lento) per ogni test utilizzando pesi pre-addestrati yolov8n.engine

PrecisionTest Evalmedia
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchdimensione
(pixel)
FP32Predict6.116.10 | 6.298640
FP32COCOval6.170.520.371640
FP16Predict3.183.18 | 3.208640
FP16COCOval3.190.520.371640
INT8Predict2.302.29 | 2.358640
INT8COCOval2.320.460.321640
Informazioni

Consulta la nostra guida rapida su NVIDIA Jetson con Ultralytics YOLO per saperne di più sulla configurazione.

Informazioni

Consulta la nostra guida rapida su NVIDIA DGX Spark con Ultralytics YOLO per saperne di più sulla configurazione.

Metodi di valutazione

Espandi le sezioni sottostanti per informazioni su come questi modelli sono stati esportati e testati.

Configurazioni di esportazione

Vedi modalità export per dettagli riguardanti gli argomenti di configurazione dell'esportazione.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# TensorRT FP32
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2)

# TensorRT FP16
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, half=True)

# TensorRT INT8 with calibration `data` (i.e. COCO, ImageNet, or DOTAv1 for appropriate model task)
out = model.export(
    format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, int8=True, data="coco8.yaml"
)
Ciclo di predizione

Vedi modalità predict per ulteriori informazioni.

import cv2

from ultralytics import YOLO

model = YOLO("yolo26n.engine")
img = cv2.imread("path/to/image.jpg")

for _ in range(100):
    result = model.predict(
        [img] * 8,  # batch=8 of the same image
        verbose=False,
        device="cuda",
    )
Configurazione della validazione

Consulta la modalità val per saperne di più sugli argomenti di configurazione della validazione.

from ultralytics import YOLO

model = YOLO("yolo26n.engine")
results = model.val(
    data="data.yaml",  # COCO, ImageNet, or DOTAv1 for appropriate model task
    batch=1,
    imgsz=640,
    verbose=False,
    device="cuda",
)

Distribuzione dei modelli YOLO26 esportati in TensorRT

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLO26 nel formato TensorRT, sei pronto per distribuirli. Per istruzioni dettagliate sulla distribuzione dei tuoi modelli TensorRT in vari ambienti, dai un'occhiata alle seguenti risorse:

In questa guida, ci siamo concentrati sulla conversione dei modelli Ultralytics YOLO26 nel formato di modello TensorRT di NVIDIA. Questo passaggio di conversione è fondamentale per migliorare l'efficienza e la velocità dei modelli YOLO26, rendendoli più efficaci e adatti a diversi ambienti di distribuzione.

Per ulteriori informazioni sui dettagli di utilizzo, dai un'occhiata alla documentazione ufficiale di TensorRT.

Se sei curioso riguardo a ulteriori integrazioni di Ultralytics YOLO26, la nostra pagina delle guide all'integrazione offre un'ampia selezione di risorse e approfondimenti informativi.

FAQ

Come posso convertire i modelli YOLO26 nel formato TensorRT?

Per convertire i tuoi modelli Ultralytics YOLO26 nel formato TensorRT per un'inferenza ottimizzata su GPU NVIDIA, segui questi passaggi:

  1. Installa il pacchetto richiesto:

    pip install ultralytics
  2. Esporta il tuo modello YOLO26:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="engine")  # creates 'yolo26n.engine'
    
    # Run inference
    model = YOLO("yolo26n.engine")
    results = model("https://ultralytics.com/images/bus.jpg")

Per ulteriori dettagli, visita la guida all'installazione di YOLO26 e la documentazione sull'esportazione.

Quali sono i vantaggi dell'utilizzo di TensorRT per i modelli YOLO26?

L'utilizzo di TensorRT per ottimizzare i modelli YOLO26 offre diversi vantaggi:

  • Velocità di inferenza più rapida: TensorRT ottimizza i layer del modello e utilizza la calibrazione della precisione (INT8 e FP16) per velocizzare l'inferenza senza sacrificare significativamente l'accuratezza.
  • Efficienza della memoria: TensorRT gestisce dinamicamente la memoria dei tensori, riducendo l'overhead e migliorando l'utilizzo della memoria GPU.
  • Fusione dei layer (Layer Fusion): Combina più layer in singole operazioni, riducendo la complessità computazionale.
  • Auto-tuning del kernel: Seleziona automaticamente i kernel GPU ottimizzati per ogni layer del modello, garantendo le massime prestazioni.

Per saperne di più, esplora la documentazione ufficiale di TensorRT da NVIDIA e la nostra panoramica approfondita su TensorRT.

Posso utilizzare la quantizzazione INT8 con TensorRT per i modelli YOLO26?

Sì, puoi esportare i modelli YOLO26 utilizzando TensorRT con quantizzazione INT8. Questo processo coinvolge la quantizzazione post-addestramento (PTQ) e la calibrazione:

  1. Esporta con INT8:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml")
  2. Esegui l'inferenza:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.engine", task="detect")
    result = model.predict("https://ultralytics.com/images/bus.jpg")

Per ulteriori dettagli, fai riferimento alla sezione sull'esportazione di TensorRT con quantizzazione INT8.

Come posso distribuire i modelli YOLO26 TensorRT su un NVIDIA Triton Inference Server?

La distribuzione dei modelli YOLO26 TensorRT su un NVIDIA Triton Inference Server può essere effettuata utilizzando le seguenti risorse:

Queste guide ti aiuteranno a integrare in modo efficiente i modelli YOLO26 in vari ambienti di distribuzione.

Quali sono i miglioramenti delle prestazioni osservati con i modelli YOLO26 esportati in TensorRT?

I miglioramenti delle prestazioni con TensorRT possono variare in base all'hardware utilizzato. Ecco alcuni benchmark tipici:

  • NVIDIA A100:

    • Inferenza FP32: ~0,52 ms / immagine
    • Inferenza FP16: ~0,34 ms / immagine
    • Inferenza INT8: ~0,28 ms / immagine
    • Leggera riduzione di mAP con precisione INT8, ma miglioramento significativo nella velocità.
  • GPU consumer (es. RTX 3080):

    • Inferenza FP32: ~1,06 ms / immagine
    • Inferenza FP16: ~0,62 ms / immagine
    • Inferenza INT8: ~0,52 ms / immagine

Benchmark dettagliati delle prestazioni per diverse configurazioni hardware sono disponibili nella sezione sulle prestazioni.

Per approfondimenti più completi sulle prestazioni di TensorRT, consulta la documentazione di Ultralytics e i nostri report di analisi delle prestazioni.

Commenti