L’evoluzione del computing enterprise è stata a lungo associata alla crescita della potenza di calcolo. In realtà il focus si sta indirizzando verso la specializzazione. I carichi di lavoro moderni (intelligenza artificiale, analytics in tempo reale, virtualizzazione spinta, sicurezza distribuita) hanno caratteristiche molto diverse tra loro.
La domanda che guida davvero le scelte hardware oggi non è “quale chip è più potente”, ma quale architettura minimizza il tempo totale di esecuzione (e il costo) di un carico reale: calcolo + memoria + trasferimenti + orchestrazione + sicurezza. CPU, GPU, NPU, DPU e TPU rispondono a questo problema in modo diverso perché sono costruite attorno a colli di bottiglia diversi.
Indice degli argomenti
Un punto fermo: la CPU resta il “control plane”
Nelle architetture moderne, la CPU continua a gestire sistema operativo e scheduling I/O, a interpretare ed eseguire istruzioni per thread applicativi, ad alimentare l’hardware specializzato (come le schede grafiche) con dati e comandi.
Il punto è che molte operazioni richieste da AI e analytics sono massivamente parallele: la CPU può parallelizzare solo entro un ordine di grandezza limitato (pochi core o poche decine), mentre gli acceleratori sono progettati per scalare su migliaia di unità di esecuzione.
CPU: pochi core “forti” e workload “misti”
La CPU (Central Processing Unit) è ottimizzata per:
- latenza (risposta rapida a singole richieste),
- controllo di flusso (ramificazioni, eccezioni, codice eterogeneo),
- workload “misti” (molte istruzioni diverse, non ripetitive).
Il vantaggio della CPU emerge in carichi con dipendenze strette (pipeline ETL con logica complessa, servizi transazionali, orchestrazione, parsing, regole). La CPU lavora bene quando i dati “stanno” in cache. Quando invece deve rimbalzare spesso su RAM, l’overhead cresce e il throughput cala. Le CPU dispongono in genere di una quantità inferiore di memoria “built-in” (cache) rispetto alle GPU, con un impatto sui carichi che riusano ripetutamente gli stessi dati. E qui c’è un tema importante: molti carichi AI non sono solo calcolo, ma gestione di grandi matrici/tensori. Se il dataset o le attivazioni (i valori intermedi generati dai layer della rete neurale) non sono ben gestiti nella gerarchia di memoria, il sistema “spende tempo” a spostare dati più che a computare.
GPU: parallelismo massivo per massimizzare il throughput
La GPU (Graphics Processing Unit) è progettata per massimizzare il throughput, non la flessibilità. La sua architettura privilegia l’esecuzione simultanea della stessa operazione su grandi volumi di dati, utilizzando migliaia di core più semplici rispetto a quelli di una CPU.
Questo approccio è particolarmente efficace nei carichi AI perché il training (e spesso l’inferenza) delle reti neurali è dominato da operazioni matematiche ripetitive su matrici e tensori. In questi casi, la GPU riduce drasticamente il tempo di esecuzione distribuendo il lavoro su un numero elevato di unità di calcolo.
Il vantaggio della GPU emerge però solo quando il carico è sufficientemente parallelo e continuo. Se i dataset sono piccoli, se l’inferenza è sporadica o se il flusso di dati verso la GPU è irregolare, l’acceleratore rischia di restare sottoutilizzato. In questi casi, il tempo perso nei trasferimenti di memoria tra CPU e GPU può diventare comparabile (o superiore) al tempo di calcolo.
Dal punto di vista infrastrutturale, questo significa che l’adozione delle GPU richiede attenzione non solo alla potenza di calcolo, ma anche alla collocazione della memoria, alla dimensione dei batch e alla continuità della pipeline dei dati.
NPU: ottimizzare l’inferenza riducendo consumo e latenza
La NPU (Neural Processing Unit) nasce per rispondere a un’esigenza diversa rispetto alla GPU: eseguire modelli di intelligenza artificiale in modo efficiente, prevedibile e con consumi contenuti, soprattutto in fase di inferenza.
Dal punto di vista architetturale, la differenza principale è che la NPU non punta a massimizzare il parallelismo generico, ma a ottimizzare il dataflow. La struttura della NPU è pensata per far “scorrere” i dati attraverso unità dedicate a operazioni tipiche del machine learning, come le moltiplicazioni e accumulazioni (MAC), riducendo al minimo gli accessi inutili alla memoria.
Questo rende la NPU adatta a contesti in cui:
- l’inferenza è frequente e ripetitiva,
- la latenza deve essere stabile,
- il consumo energetico è un vincolo reale.
È il motivo per cui le NPU stanno trovando spazio su dispositivi edge, endpoint e PC “AI-ready”. In questi ambienti, una GPU sarebbe spesso sovradimensionata o impraticabile, mentre la sola CPU non garantirebbe prestazioni adeguate.
Una NPU funziona bene quando il modello e il flusso di esecuzione sono noti e relativamente stabili. Non è lo strumento giusto per carichi sperimentali o per training su larga scala.
DPU: separare il calcolo applicativo dal data path infrastrutturale
La DPU (Data Processing Unit) affronta un altro collo di bottiglia: il peso crescente delle funzioni infrastrutturali sui sistemi moderni.
In ambienti virtualizzati e cloud-native, una quota significativa della CPU viene assorbita da attività che riguardano networking, storage e sicurezza. La DPU sposta queste funzioni su un processore dedicato, che integra core di calcolo, acceleratori hardware e interfacce di rete ad alte prestazioni.
Dal punto di vista architetturale, la DPU consente una separazione netta tra control e data plane infrastrutturale e il calcolo applicativo.
Il risultato è una maggiore prevedibilità delle prestazioni, una riduzione della “contesa” sulle CPU e un miglior isolamento dei workload, con benefici anche sul piano della sicurezza.
La DPU diventa rilevante quando l’obiettivo non è accelerare una singola applicazione, ma aumentare la densità e la stabilità complessiva dei workload per nodo, soprattutto in data center fortemente virtualizzati.
TPU: specializzazione spinta per carichi AI standardizzati
La TPU (Tensor Processing Unit) rappresenta un modello ancora più spinto di specializzazione. È un ASIC progettato da Google specificamente per operazioni tensoriali e trova impiego soprattutto in ambienti cloud hyperscale.
A differenza di CPU e GPU, la TPU è pensata per funzionare al meglio su carichi altamente standardizzati e ripetibili. Quando il modello, il framework e il flusso di esecuzione sono allineati, la TPU offre un’elevata densità di calcolo e un buon rapporto prestazioni/consumi.
Il limite è evidente: la flessibilità è ridotta e l’utilizzo è fortemente legato all’ecosistema del cloud provider che la offre. Per la maggior parte delle aziende, quindi, la TPU non è una scelta “infrastrutturale” diretta, ma un’opzione da valutare come servizio, in funzione di costi, lock-in e integrazione con lo stack MLOps esistente.
Criteri di scelta
Per orientarsi nelle scelte hardware è utile scomporre il workload in alcune domande operative.
Quanto parallelismo reale è disponibile? Quando il carico presenta un elevato grado di parallelismo, continuo e regolare, GPU e altri acceleratori AI risultano efficaci. Se invece il parallelismo è limitato o discontinuo, nella maggior parte dei casi la CPU offre un comportamento più prevedibile.
Dove si colloca il collo di bottiglia: nel calcolo o nei trasferimenti di dati? Se a pesare sono soprattutto copie di memoria e operazioni di I/O, l’acceleratore rischia di non essere pienamente utilizzato. In questi scenari, la gerarchia di memoria – cache, memoria on-chip e RAM – incide in modo significativo sui tempi complessivi.
Si tratta di training o di inferenza? E dove viene eseguita l’elaborazione? Training e inferenza rispondono a esigenze diverse, pur beneficiando entrambe del parallelismo. Le NPU trovano spazio soprattutto nei casi di inferenza in tempo reale, grazie a un’ottimizzazione mirata del flusso dei dati e dell’accesso alla memoria, in particolare su edge ed endpoint.
Quanto pesa la componente infrastrutturale sui costi complessivi? Quando networking, storage e sicurezza assorbono una quota rilevante delle risorse CPU, l’introduzione di una DPU può migliorare efficienza e stabilità più di un semplice potenziamento della capacità di calcolo.
In sintesi:
- se domina la latenza → CPU o NPU
- se domina il throughput parallelo → GPU o TPU
- se il limite è infrastrutturale → DPU
- se il vincolo è energetico o di deployment → NPU o CPU
Il confronto tecnico
| Caratteristica | CPU | GPU | NPU | DPU | TPU |
| Principali vendor | Intel, AMD, ARM, Apple | Nvidia, AMD, Intel, Qualcomm | Huawei, Apple, Qualcomm | Nvidia, Intel, Marvell, Broadcom | |
| Tipo di architettura | General purpose, pochi core ad alte prestazioni | Parallelismo massivo, migliaia di core | Acceleratore AI specializzato | Processore data-centric | ASIC per calcolo tensoriale |
| Parallelismo | Limitato | Molto elevato | Elevato ma mirato | Medio, orientato ai flussi | Molto elevato su workload specifici |
| Profilo di latenza | Bassa | Media | Bassa e stabile | Bassa per funzioni di rete/storage | Ottimizzata per batch |
| Throughput | Medio | Molto alto | Elevato in inferenza | Elevato sui dati infrastrutturali | Molto alto |
| Gestione della memoria | Cache gerarchiche | Memoria dedicata ad alta banda | Dataflow ottimizzato | Memoria per pacchetti e flussi | Memoria progettata per tensori |
| Efficienza energetica | Media | Bassa-media | Alta | Media | Alta su carichi compatibili |
| Carichi ideali | OS, applicazioni, orchestrazione | Training AI, analytics paralleli | Inferenza AI, edge, device | Networking, storage, sicurezza | Training/inferenza su larga scala |
| Flessibilità | Molto alta | Media | Bassa | Media | Molto bassa |
| Contesti tipici | Tutti i sistemi IT | Data center, cloud, HPC | Edge, PC AI-ready, embedded | Data center cloud-native | Hyperscaler |
| Rischi di sottoutilizzo | Basso | Alto se carico discontinuo | Medio | Basso se infrastruttura complessa | Alto fuori dal cloud |
Dove si perde tempo in un workload AI (più del calcolo)
Quando si analizzano le prestazioni di un workload AI, il tempo totale di esecuzione non dipende solo dalla potenza di calcolo. In molti casi, la parte dominante è altrove. Vediamo dove:
Preparazione e trasferimento dei dati. Prima che il modello inizi a calcolare, i dati devono essere:
- caricati da storage,
- pre-processati (normalizzazione, trasformazioni),
- trasferiti verso la memoria del dispositivo di calcolo.
Se il trasferimento tra CPU e acceleratore (GPU o NPU) avviene frequentemente o su piccoli batch, il tempo speso sul bus può superare quello di computazione. In questi casi, l’acceleratore resta in attesa dei dati.
Gerarchia di memoria e localizzazione dei dati. Il calcolo AI è efficiente solo quando i dati risiedono nella memoria più vicina all’unità di calcolo:
- cache per la CPU,
- memoria on-chip o ad alta banda per GPU, NPU e TPU.
Quando i tensori non “stanno” in questa memoria e devono essere continuamente recuperati da RAM o da memoria remota, il throughput cala. Questo effetto è spesso invisibile nelle metriche di picco, ma emerge chiaramente nei tempi end-to-end.
Parallelismo. Le GPU e altri acceleratori danno il meglio solo se il carico è sufficientemente parallelo e continuo. Dataset piccoli, modelli leggeri o inferenza sporadica non riescono a saturare le unità di calcolo. In questi scenari, la CPU può risultare più prevedibile, anche se meno potente sulla carta.
Overhead di orchestrazione e scheduling. Il lavoro di “coordinamento” tra CPU, acceleratori, runtime AI e sistema operativo introduce overhead. Creazione dei job, sincronizzazione dei thread, gestione delle code e delle dipendenze possono incidere in modo significativo, soprattutto in pipeline complesse o altamente frammentate.
Funzioni infrastrutturali che competono con il calcolo. Networking, storage e sicurezza condividono spesso le stesse risorse CPU del workload AI. In ambienti virtualizzati, queste funzioni possono sottrarre tempo di calcolo utile, aumentando latenza e variabilità delle prestazioni.
In sintesi, un workload AI ben progettato non è quello che usa l’acceleratore più potente, ma quello che:
- riduce i trasferimenti inutili di dati,
- mantiene i tensori vicino al calcolo,
- garantisce continuità e parallelismo,
- separa il più possibile calcolo applicativo e funzioni infrastrutturali.


















