Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

GPU (Graphics Processing Unit)

Una GPU è un processore con migliaia di core progettato per i calcoli paralleli, che la rende l'hardware principale per addestrare ed eseguire modelli di deep learning.

Un'unità di elaborazione grafica (GPU) è un processore con migliaia di core semplici, capaci di eseguire contemporaneamente la stessa operazione su molti dati. Le GPU sono state progettate per renderizzare grafica 3D, un'attività che comporta il calcolo parallelo di milioni di pixel e vertici, e sono diventate l'hardware principale del deep learning perché l'addestramento e l'inferenza delle reti neurali si basano soprattutto su moltiplicazioni di matrici, parallelizzabili allo stesso modo. La piattaforma CUDA di NVIDIA, rilasciata nel 2007, ha reso le sue GPU programmabili per il calcolo generico e nel 2012 la rete AlexNet, addestrata per cinque o sei giorni su due GPU NVIDIA GTX 580, ha vinto la sfida ImageNet con un errore top-5 del 15.3%, contro il 26.2% del secondo classificato. Oggi PyTorch, TensorFlow e JAX funzionano sulle GPU NVIDIA tramite CUDA, sulle GPU AMD tramite ROCm e sui chip Apple tramite Metal; cluster composti da migliaia di GPU addestrano i più grandi modelli di base.

Come le GPU accelerano il deep learning#

Una CPU dedica gran parte della superficie del chip a cache e logica di controllo, così che pochi core possano eseguire rapidamente codice con diramazioni. Una GPU usa quella superficie per l'aritmetica: una GPU NVIDIA è suddivisa in multiprocessori streaming, ognuno dei quali esegue gruppi di 32 thread, chiamati warp, che svolgono la stessa istruzione su dati diversi. Mentre alcuni warp attendono i dati dalla memoria, altri eseguono calcoli, così il chip resta occupato finché c'è abbastanza lavoro parallelo. Dalla generazione Volta del 2017, le GPU NVIDIA includono anche i Tensor Core, unità che moltiplicano piccole matrici in un unico passaggio a precisione ridotta, ora anche in FP8 e, da Blackwell, in FP4. Una NVIDIA A100 raggiunge un picco di 19.5 TFLOPS nei calcoli standard FP32 e 312 TFLOPS in BF16 sui Tensor Core: per questo la maggior parte dell'addestramento su GPU usa la precisione mista. Questo codice misura il tempo della stessa moltiplicazione di matrici su CPU e GPU:

import time

import torch

gpu = torch.accelerator.current_accelerator()  # cuda, mps, or xpu device on this machine
a = torch.randn(4096, 4096)
b = torch.randn(4096, 4096)

for device in (torch.device("cpu"), gpu):
    x, y = a.to(device), b.to(device)
    x @ y  # warm-up run
    torch.accelerator.synchronize()
    start = time.perf_counter()
    for _ in range(10):
        x @ y
    torch.accelerator.synchronize()  # GPU calls return immediately, so wait for them to finish
    seconds = (time.perf_counter() - start) / 10
    print(f"{device.type}: {seconds * 1000:.1f} ms per multiply, {2 * 4096**3 / seconds / 1e12:.1f} TFLOPS")

Su un portatile Apple M5 Pro stampa cpu: 80.0 ms per multiply, 1.7 TFLOPS e mps: 18.3 ms per multiply, 7.5 TFLOPS, quindi la GPU integrata del portatile è circa 4.4 volte più veloce in FP32. Le GPU dei data center ampliano ulteriormente il divario, grazie sia a un maggior numero di core sia alla memoria ad ampia larghezza di banda (HBM), che fornisce diversi terabyte al secondo e mantiene i core riforniti di pesi e attivazioni. La memoria GPU, spesso chiamata VRAM, determina anche le dimensioni del modello e del batch size che possono entrare in un singolo dispositivo; tecniche come il gradient checkpointing e l'addestramento distribuito servono a superare questo limite.

Addestrare e distribuire modelli sulle GPU#

Un processo di addestramento mantiene la GPU occupata solo se il resto della pipeline riesce a stare al passo: i worker CPU devono decodificare e aumentare le immagini abbastanza rapidamente, i batch devono essere sufficientemente grandi da saturare i core e i calcoli dovrebbero usare precisione ridotta sui Tensor Core. Un utilizzo basso della GPU indica solitamente uno di questi problemi:

Ultralytics YOLO si addestra per impostazione predefinita sulla prima GPU CUDA disponibile, accetta device=[0, 1] per l'addestramento multi-GPU e con batch=-1 esegue AutoBatch, che misura la memoria libera della GPU e sceglie una dimensione del batch che ne utilizza circa il 60%. I team che non dispongono di hardware locale possono scegliere una GPU cloud su Ultralytics Platform per ogni esecuzione di addestramento. Per l'inferenza, un modello YOLO26n esportato in TensorRT elabora un'immagine da 640 pixel in 1,7 ms su una GPU NVIDIA T4, rispetto ai 38,9 ms con ONNX su CPU. Questo codice addestra YOLO26 sulla prima GPU con AutoBatch:

from ultralytics import YOLO

# Carica il modello YOLO26 di rilevamento più piccolo
model = YOLO("yolo26n.pt")

# Addestra sulla GPU 0 e lascia che AutoBatch scelga la dimensione del batch in base alla memoria della GPU
results = model.train(data="coco8.yaml", epochs=3, imgsz=640, device=0, batch=-1)

GPU, CPU, TPU e NPU a confronto#

  • CPU: pochi core potenti per codice generico con diramazioni. Nella maggior parte delle pipeline di addestramento, le CPU gestiscono il caricamento e la pre-elaborazione dei dati, oltre all'inferenza quando non è disponibile un acceleratore.
  • GPU: migliaia di core programmabili e Tensor Core. Le GPU eseguono quasi tutti i modelli e framework, sono prodotte da diversi fornitori e sono disponibili su tutti i principali cloud.
  • TPU: chip di Google specifico per le applicazioni, progettato attorno a grandi unità di moltiplicazione di matrici. Le TPU sacrificano la flessibilità delle GPU in cambio di efficienza nei carichi di lavoro con grandi matrici dense e sono disponibili tramite Google Cloud.
  • NPU: acceleratore di reti neurali a basso consumo presente in telefoni, portatili e dispositivi edge, usato per l'inferenza anziché per l'addestramento.

Applicazioni nel mondo reale#

  • Addestramento di modelli di grandi dimensioni: i modelli linguistici e di visione con miliardi di parametri vengono addestrati su cluster di migliaia di GPU per data center, connesse tramite collegamenti ad alta velocità come NVLink e InfiniBand.
  • Analisi video in tempo reale: una singola GPU può eseguire contemporaneamente il rilevamento e il tracking degli oggetti su molti flussi delle telecamere, per il monitoraggio del traffico, l'analisi del commercio al dettaglio o l'ispezione in fabbrica.
  • Robotica e veicoli autonomi: moduli GPU integrati come NVIDIA Jetson eseguono modelli di percezione a bordo, dove inviare i dati delle telecamere a un server comporterebbe un ritardo eccessivo.
  • Imaging medico: le GPU elaborano grandi volumi 3D di TC e MRI e segmentano organi e tumori in pochi secondi anziché in minuti.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning