GPU (Graphics Processing Unit)
Scopri come le GPU accelerino l’IA e il deep learning. Esplora la potenza del calcolo parallelo per addestrare i modelli Ultralytics YOLO26 e ottimizzare l’inferenza in tempo reale.
Un'unità di elaborazione grafica (GPU) è un circuito elettronico specializzato, originariamente progettato per accelerare la manipolazione e la creazione di immagini in un framebuffer per la visualizzazione. Sebbene le loro origini risiedano nel rendering della grafica computerizzata per i videogiochi e la visualizzazione professionale, le GPU si sono evolute fino a diventare il motore fondamentale della moderna intelligenza artificiale (AI). A differenza di un processore standard, che utilizza pochi core potenti per gestire le attività in sequenza, l'architettura di una GPU è composta da migliaia di core più piccoli ed efficienti, progettati per gestire più attività simultaneamente. Questa capacità, nota come calcolo parallelo, le rende eccezionalmente efficienti per le massicce operazioni su matrici e vettori alla base dell'apprendimento profondo (DL) e delle complesse reti neurali (NN).
Accelerare i carichi di lavoro dell'AI#
Il motivo principale per cui le GPU sono indispensabili per l'apprendimento automatico (ML) è la loro capacità di eseguire moltiplicazioni di matrici ad alta velocità. I framework di deep learning come PyTorch e TensorFlow sono ottimizzati specificamente per sfruttare questa accelerazione hardware. Ciò riduce significativamente i tempi di addestramento dei modelli, trasformando spesso settimane di calcolo su un processore standard in poche ore su una GPU. Il throughput computazionale di questi dispositivi viene in genere misurato in FLOPS (operazioni in virgola mobile al secondo), una metrica fondamentale per valutare la capacità dell'hardware di gestire le rigorose esigenze di modelli all'avanguardia come YOLO26.
Differenze tra hardware: GPU vs. CPU vs. TPU#
Per comprendere il panorama hardware, è utile distinguere la GPU dalle altre unità di elaborazione:
- CPU (Unità centrale di elaborazione): il "cervello" generico di un computer. Le CPU eccellono nell'elaborazione sequenziale e nella gestione di diramazioni logiche complesse, ma sono meno efficienti nel parallelismo massiccio richiesto dall'addestramento dell'AI su larga scala.
- GPU (Unità di elaborazione grafica): lo standard del settore per l'addestramento e l'inferenza. I principali produttori, come NVIDIA, utilizzano ecosistemi software come CUDA per consentire agli sviluppatori di programmare direttamente la GPU per il calcolo generico.
- TPU (Unità di elaborazione dei tensori): un circuito integrato per applicazioni specifiche (ASIC) sviluppato appositamente per l'apprendimento automatico con reti neurali. Sebbene siano altamente efficienti per operazioni specifiche sui tensori, sono meno versatili delle GPU per le attività di calcolo più generiche.
Applicazioni nel mondo reale#
L'implementazione di GPU ad alte prestazioni ha alimentato innovazioni in diversi settori:
- Veicoli autonomi: le auto a guida autonoma devono elaborare ogni secondo gigabyte di dati provenienti da telecamere, radar e sensori LiDAR. Le GPU abilitano l'inferenza in tempo reale, consentendo al computer di bordo del veicolo di eseguire modelli di rilevamento degli oggetti che identificano istantaneamente pedoni, segnali stradali e ostacoli.
- Analisi delle immagini medicali: in ambito sanitario, le GPU accelerano l'elaborazione di scansioni ad alta risoluzione, come risonanze magnetiche e TAC. Consentono ad algoritmi sofisticati di segmentazione delle immagini di delineare con precisione tumori o organi, aiutando i radiologi a formulare diagnosi più rapide e accurate senza affidarsi esclusivamente all'ispezione manuale.
Addestramento con le GPU#
Quando utilizzi il pacchetto ultralytics, l'impiego di una GPU è semplice e altamente consigliato per workflow efficienti. La libreria supporta il rilevamento automatico del dispositivo, ma puoi anche specificare esplicitamente il dispositivo.
L'esempio seguente mostra come addestrare un modello YOLO26 sulla prima GPU disponibile:
from ultralytics import YOLO
# Load the YOLO26n model
model = YOLO("yolo26n.pt")
# Train the model on the first available GPU (device=0)
# This significantly accelerates training compared to CPU usage
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, device=0)Distribuzione e ottimizzazione#
Oltre all'addestramento, le GPU svolgono un ruolo cruciale nella distribuzione dei modelli. Per massimizzare l'efficienza durante l'inferenza, i modelli vengono spesso convertiti in formati ottimizzati come TensorRT, che ristruttura la rete neurale per allinearla perfettamente all'architettura specifica della GPU, riducendo la latenza. Per gli sviluppatori che non hanno accesso a hardware locale di fascia alta, la piattaforma Ultralytics offre soluzioni basate sul cloud per gestire dataset e addestrare modelli su potenti cluster GPU remoti. Questa accessibilità favorisce l'innovazione nell'AI edge, consentendo di distribuire attività complesse di visione artificiale (CV) su dispositivi più piccoli ed efficienti dal punto di vista energetico sul campo.









