GPU o CPU: quando la CPU basta

Quando si parla di IA locale, il reflex è sempre lo stesso: "quanta VRAM mi serve?" In molti casi, però, la domanda è sbagliata. La risposta dipende da cosa vuoi fare, e per un numero crescente di scenari la CPU è più che sufficiente — anche su hardware che non avresti mai pensato di usare.
In questo articolo chiariamo il tradeoff: cosa fa davvero la differenza tra CPU e GPU, quando puoi saltare la GPU, e come misurare i numeri sul tuo hardware.
Come funziona l'inferenza: due fasi, un collo di bottiglia
Ogni richiesta a un modello LLM passa attraverso due fasi:
- Prefill: il modello legge il prompt (i token in ingresso) in un colpo solo. È la fase che determina quanto è lento il primo token — la cosiddetta latenza di primo token.
- Decode: il modello genera la risposta, un token alla volta. È la fase che determina la velocità con cui "scorre" il testo (i famosi token/secondo).
Le due fasi hanno requisiti diversi, e qui sta tutta la questione CPU vs GPU.
Prefill: vince chi calcola
Il prefill è un problema di potenza di calcolo puro: enormi moltiplicazioni di matrici che un'GPU esegue in parallelo su migliaia di core. Una GPU dedicata fa il prefill anche un ordine di grandezza più veloce di una CPU: su un prompt lungo, con la GPU il primo token arriva in un lampo, con la CPU può volerci qualche secondo.
Decode: vince chi legge memoria
La generazione token per token è un problema diverso: per ogni token, il modello deve rileggere tutti i pesi (e il KV cache) dalla memoria. La velocità di generazione dipende quasi solo dalla banda di memoria — quanti byte al secondo puoi leggere.
Ed è qui che la CPU fa la sua figura:
- le memorie dual o quad channel DDR5 raggiungono 50–100 GB/s;
- la VRAM di una GPU consumer arriva a 300–1000 GB/s;
- la memoria unificata di un Apple Silicon arriva a oltre 800 GB/s.
In pratica, per i modelli piccoli e medi (da 1 a circa 8B parametri in quantizzazione Q4), una CPU moderna a canali multipli genera i token a velocità perfettamente usabili: 5–20 token/secondo, a seconda del modello. È il ritmo di una persona che legge ad alta voce: più che sufficiente per conversazioni, riepiloghi e task brevi.
Quando la CPU basta
1. Modelli piccoli (0,5B–4B)
Sotto i 4B parametri quantizzati, i pesi occupano 0,5–3 GB di RAM: entrano nella cache di livello 3 del processore e la banda di memoria non è nemmeno un limite. Su un notebook di 5–6 anni fa con 12 GB di RAM, un modello da 1B genera oltre 20 token/secondo.
2. Uso interattivo con risposte brevi
Chat di ogni giorno, riformulazioni, classificazione, estrazione dati: le risposte brevi non soffrono della lentezza del prefill, e la generazione su CPU è fluida.
3. Carichi batch e notturni
Se il modello deve processare documenti, etichettare dati o generare report mentre dormi, la velocità non è l'obiettivo: è il costo. Una CPU consuma 50–150 W contro i 300–600 W di una GPU da gaming, e non produce calore né rumore.
4. Hardware già in casa
Quando il tuo portatile non ha una GPU discreta (e la stragrande maggioranza dei notebook consumer non ce l'ha), l'IA locale è comunque accessibile. Non c'è bisogno di comprare nulla: basta RAM.
5. Raspberry Pi e edge
Sul Raspberry Pi 5, un modello da 0,5–1B genera 5–10 token/secondo: poco per una chat, perfetto per automazioni, trigger vocali e assistenti offline che rispondono a comandi.
6. Affidabilità prima di tutto
In un contesto di produzione (un server di casa, un'automazione) la CPU è la soluzione più stabile: nessun driver da aggiornare, nessun "out of memory" della VRAM, consumo prevedibile.
Quando ti serve la GPU
- Modelli grandi (13B, 30B, 70B e oltre): la RAM di sistema non regge la velocità — 70B in Q4 richiede ~40 GB e scende a 1–2 token/secondo su CPU. Con 24 GB di VRAM (RTX 3090/4090) i token arrivano a 20–30/secondo.
- Prompt lunghi o contesto ampio: il prefill su CPU per 100k token può richiedere decine di secondi.
- Molti utenti in parallelo: il throughput per utente crolla su CPU appena due o tre richieste si sovrappongono.
- Latenza di primo token critica: assistenti in tempo reale, tool che aspettano la prima risposta.
Numeri reali: cosa aspettarti
Test di riferimento su un notebook Intel i5 di fascia media (12 GB RAM, niente GPU utile), con Ollama e modelli quantizzati Q4_K_M:
| Modello | Dimensione file | Velocità di generazione |
|---|---|---|
| Qwen3 0.6B | ~0,5 GB | 34–36 token/s |
| TinyLlama 1.1B | ~0,6 GB | 25–28 token/s |
| Gemma 3 1B | ~0,8 GB | ~18 token/s |
| Gemma 4 E2B | ~7 GB | ~10 token/s |
| Granite 4 3B | ~2 GB | 8–9 token/s |
| Phi-4 Mini 3.8B | ~2,5 GB | ~7 token/s |
| OpenHermes 7B | ~4 GB | 4 token/s |
| Ministral 3 8B | ~6 GB | 3 token/s |
La legge è semplice: sotto i ~10 token/secondo la conversazione inizia a pesare; sopra i 20 è fluida. E i numeri scalano con la banda di memoria: una workstation dual-socket con 12 canali DDR5 (o un Mac con memoria unificata) genera 5–10 volte più token/secondo dello stesso modello su un notebook.
Misura il tuo hardware in 5 minuti
Con Ollama:
ollama run qwen3:4b --verbose
Il flag --verbose mostra eval rate (token/s di generazione) e prompt eval rate (token/s del prefill).
Con llama.cpp, per forzare la CPU (zero layer sulla GPU):
llama-server -m qwen3-4b-q4_k_m.gguf -ngl 0 -t 8 --port 8080
Poi interroga l'API:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen3","messages":[{"role":"user","content":"Racconta una barzelletta"}]}'
I due numeri da annotare: eval rate (velocità di risposta) e time to first token (velocità del prefill). Se l'eval rate sta sopra i 10 token/s e il tuo caso d'uso non ha prompt enormi, la CPU ti basta.
Regole pratiche per spremere la CPU
- RAM prima di tutto: i pesi + il contesto devono stare in RAM. Come stima, 1 GB per ogni miliardo di parametri in Q4, più 0,5–1 GB di margine.
- Thread = core fisici, non core totali. Un CPU da 8 core/16 thread gira meglio a
-t 8che a-t 16. - Quantizzazione Q4_K_M è il miglior compromesso: quasi la qualità di Q8, il doppio della velocità.
- Contesto moderato: il KV cache cresce col contesto. Se non ti servono 32k token, non allocarli.
- Dual channel vale l'oro: due banchi di RAM invece di uno raddoppiano la banda di memoria, e con essa i token/secondo.
- Su sistemi multi-socket, pinna i thread a un nodo NUMA: leggere RAM dall'altro socket costa fino al 30% di velocità.
Il caso Apple Silicon
Un Mac moderno è il controesempio perfetto: la GPU integrata è veloce, ma la memoria è unificata — CPU e GPU leggono gli stessi byte. Un modello che "non sta in VRAM" sta benissimo in RAM su un Mac con 32–64 GB, e gira a velocità da GPU. Se hai un Mac, la domanda "CPU o GPU?" diventa irrilevante: misurando, scoprirai che il modello è più veloce di quanto ti aspetti.
In sintesi
| Scenario | La scelta giusta |
|---|---|
| Chat con modelli 0,5–4B | CPU, senza pensarci |
| Automazioni batch | CPU (costo + silenzio) |
| Notebook senza GPU | CPU (l'unica opzione — e funziona) |
| Raspberry Pi / edge | CPU |
| Modelli 13B+ in qualità | GPU (o Mac con memoria unificata) |
| Prompt lunghi, molti utenti | GPU |
La GPU non è il biglietto d'ingresso per l'IA locale: è un upgrade opzionale che conta quando la qualità o la velocità lo richiedono. Il tuo hardware attuale, con i modelli giusti, è probabilmente già abbastanza. Prova i numeri sul tuo machine e poi decidi.
Articolo generato con IA
In questi percorsi
Ti è piaciuto questo articolo?
Iscriviti alla newsletter per ricevere nuovi tutorial e guide.
Articoli Correlati

Intel e AMD collaborano su PyTorch/oneDNN: cosa cambia per l'IA locale sulle CPU
AMD unifica ZenDNN in oneDNN, Intel unisce le sue estensioni ACE: un solo stack open source per l'accelerazione x86 in PyTorch, già di default. Cosa cambia se fai girare i modelli in locale su CPU.

Mac Studio M5 Ultra: 512GB di memoria unificata sul desktop
Quattro die, 512GB di memoria unificata a 1,2 TB/s: il Mac Studio M5 Ultra porta i modelli MoE da 100 a 560B in locale. I conti sulla velocità, il confronto di costo con la DGX Station e quando il Mac è la scelta giusta.

