CPU
Una CPU è il processore generico di un computer. Nell'IA carica e prepara i dati, coordina gli acceleratori ed esegue l'inferenza quando non è disponibile una GPU.
Un'unità di elaborazione centrale (CPU) è il processore generico che esegue il sistema operativo e i programmi di un computer. Esegue le istruzioni su un numero ridotto di core potenti, ciascuno progettato per elaborare rapidamente un flusso di istruzioni, con cache ampie, predizione dei salti ed esecuzione fuori ordine che mantengono veloci i programmi complessi con molti rami. Nei sistemi di intelligenza artificiale (AI), la CPU carica e decodifica i dati, applica l'aumento dei dati, alimenta le GPU e altri acceleratori e gestisce le fasi che precedono e seguono un modello, come il ridimensionamento delle immagini prima dell'inferenza e la soppressione non massima dopo il rilevamento degli oggetti. Esegue anche il modello quando manca un acceleratore o non vale la pena sostenerne il costo, dai laptop e dalle funzioni cloud a un Raspberry Pi. Per questo la latenza di inferenza della CPU è un obiettivo progettuale fondamentale per i modelli di IA edge.
Come le CPU eseguono le reti neurali#
Una rete neurale trascorre la maggior parte del tempo a moltiplicare matrici, e le CPU accelerano questa operazione in tre modi. Più core, da 4 in una scheda compatta a oltre 100 in un chip server, elaborano in parallelo parti diverse di un batch o di un livello. All'interno di ogni core, le unità SIMD (istruzione singola, dati multipli) applicano un'istruzione a molti numeri contemporaneamente: AVX2 e AVX-512 nei chip x86 di Intel e AMD e NEON nei chip Arm, come quelli di telefoni, Mac con chip Apple e schede Raspberry Pi; i chip server Arm più recenti dispongono dell'estensione SVE, più ampia. I chip recenti aggiungono unità matriciali, come le Advanced Matrix Extensions (AMX) di Intel, presenti nei processori server Xeon dal 2023, e la Scalable Matrix Extension (SME) di Arm, che moltiplicano piccoli blocchi di valori BF16 o INT8 per istruzione.
La velocità di elaborazione della CPU resta molto inferiore a quella di una GPU, perché la CPU dedica la superficie del chip alla cache e alla logica di controllo per prestazioni elevate su un singolo thread, anziché a migliaia di unità aritmetiche, e legge i pesi dalla normale memoria di sistema, con una larghezza di banda molto inferiore a quella di una GPU. I motori di inferenza riducono in parte il divario: ONNX Runtime, OpenVINO di Intel e NCNN di Tencent fondono i livelli, scelgono i kernel più veloci per il set di istruzioni disponibile ed eseguono modelli quantizzati INT8, che spostano un quarto dei dati rispetto ai pesi FP32. Di solito, per scegliere un motore e una precisione destinati alla CPU, si parte dall'hardware:
Ultralytics ha progettato YOLO26 per questo tipo di hardware, e YOLO26n è fino al 43% più veloce di YOLO11n nell'inferenza CPU ONNX su una CPU Intel Xeon, mentre l'esportazione OpenVINO accelera l'inferenza su CPU fino a 3 volte. Questo codice esegue YOLO26 sulla CPU, poi lo esporta in OpenVINO ed esegue il modello esportato:
from ultralytics import YOLO
# Esegui sulla CPU il modello di rilevamento YOLO26 più piccolo, anche se è disponibile una GPU
model = YOLO("yolo26n.pt")
results = model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
print(results[0].speed) # millisecondi per la preelaborazione, l'inferenza e la postelaborazione
# Esporta nel formato OpenVINO ed esegui il modello esportato sulla stessa CPU
path = model.export(format="openvino")
ov_model = YOLO(path)
results = ov_model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
print(results[0].speed)Ogni dizionario speed suddivide il tempo necessario per un'immagine in preelaborazione, inferenza e postelaborazione, quindi le due stampe confrontano i tempi di inferenza PyTorch e OpenVINO sulla macchina che esegue il codice.
CPU, GPU, TPU e NPU a confronto#
- CPU: pochi core potenti per codice generico con molti rami. Ogni computer ne ha una e può eseguire qualsiasi modello senza hardware aggiuntivo, ma con una velocità di elaborazione inferiore a quella degli acceleratori seguenti.
- GPU: migliaia di core più semplici, oltre ai Tensor Core per i calcoli matriciali e alla memoria ad ampia larghezza di banda. Le GPU sono l'hardware standard per l'addestramento e l'inferenza ad alta velocità.
- TPU: chip di Google specifico per le applicazioni, basato su grandi unità di moltiplicazione matriciale, disponibile in Google Cloud e, come Edge TPU, in piccoli moduli di inferenza.
- NPU: acceleratore di reti neurali a basso consumo integrato nei chip di telefoni, laptop e dispositivi embedded. I chip Intel Core Ultra, AMD Ryzen AI, Qualcomm Snapdragon e Apple serie M combinano core CPU, una GPU e una NPU in un unico processore.
Applicazioni nel mondo reale#
- Pipeline dei dati di addestramento: mentre una GPU addestra il modello, i processi worker della CPU leggono le immagini dal disco, le decodificano, le ridimensionano e le arricchiscono, quindi assemblano i batch. Se i core CPU sono troppo pochi, una GPU costosa resta in attesa dei dati.
- Telecamere intelligenti e dispositivi edge: videocitofoni, sensori per la vendita al dettaglio e telecamere industriali eseguono modelli di rilevamento compatti sui propri processori, così il video resta sul dispositivo e ne escono solo gli avvisi.
- Inferenza serverless e cloud: le funzioni cloud e gli endpoint con poco traffico spesso vengono eseguiti su istanze con sole CPU, che si avviano rapidamente e costano meno che riservare una GPU.
- Modelli linguistici di grandi dimensioni in locale: progetti come llama.cpp eseguono modelli GGUF quantizzati sulle CPU dei laptop, dove la velocità di generazione dipende soprattutto dalla rapidità con cui la memoria fornisce i pesi di ogni token.










