Vai al contenuto principale
HardwareIntermedio7 min di lettura

GPU o CPU: quando la CPU basta

i
iaLocale Team
•
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:

  1. 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.
  2. 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:

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:

ModelloDimensione fileVelocità di generazione
Qwen3 0.6B~0,5 GB34–36 token/s
TinyLlama 1.1B~0,6 GB25–28 token/s
Gemma 3 1B~0,8 GB~18 token/s
Gemma 4 E2B~7 GB~10 token/s
Granite 4 3B~2 GB8–9 token/s
Phi-4 Mini 3.8B~2,5 GB~7 token/s
OpenHermes 7B~4 GB4 token/s
Ministral 3 8B~6 GB3 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

  1. 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.
  2. Thread = core fisici, non core totali. Un CPU da 8 core/16 thread gira meglio a -t 8 che a -t 16.
  3. Quantizzazione Q4_K_M è il miglior compromesso: quasi la qualità di Q8, il doppio della velocità.
  4. Contesto moderato: il KV cache cresce col contesto. Se non ti servono 32k token, non allocarli.
  5. Dual channel vale l'oro: due banchi di RAM invece di uno raddoppiano la banda di memoria, e con essa i token/secondo.
  6. 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

ScenarioLa scelta giusta
Chat con modelli 0,5–4BCPU, senza pensarci
Automazioni batchCPU (costo + silenzio)
Notebook senza GPUCPU (l'unica opzione — e funziona)
Raspberry Pi / edgeCPU
Modelli 13B+ in qualitàGPU (o Mac con memoria unificata)
Prompt lunghi, molti utentiGPU

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

#cpu#gpu#hardware#inferenza#llama.cpp#ollama
Condividi:

Ti è piaciuto questo articolo?

Iscriviti alla newsletter per ricevere nuovi tutorial e guide.

Dopo l'iscrizione ricevi una email di conferma (double opt-in). Senza conferma non inviamo nulla. Nessuno spam, ti promettiamo.

Articoli Correlati