
La domanda è sempre la stessa, e l’ho sentita di nuovo al WP Meetup di Pisa di marzo: “Ma se ho un i9 con 64 GB di DDR5, perché non mi fa girare un modello da 26 GB?”. Risposta breve: lo fa girare. In tre giorni. Quando la stessa cosa una scheda video con la VRAM giusta la fa in un minuto.
Questo post è la matematica dietro a quella differenza. Perché sapere la regola della VRAM, capire cosa succede quando il modello va in offload sulla CPU, e leggere i prezzi 2026 con un minimo di disciplina, decide se il lab di casa fa girare LLM utili o se diventa un termosifone costoso. Sul livello sotto, l’orchestrazione di tutto questo, ho già scritto in Proxmox bare-metal in casa e in routing multi-LLM in produzione. Qui scendo nel ferro.
CPU contro GPU: il modello mentale
Una CPU moderna è un processore con 8, 16, 32 core potenti. Ogni core esegue istruzioni complesse, con branch prediction, pipeline profonda, cache multilivello, capacità di fare cose molto diverse l’una dall’altra. È costruita per essere veloce su task sequenziali o moderatamente paralleli (4, 8, 32 thread che fanno cose distinte).
Una GPU moderna è esattamente l’opposto: 10.000 e oltre core “stupidi”, capaci di poche operazioni semplici, ma in grado di farle tutte insieme sugli stessi dati. È costruita per il massive parallel: la stessa moltiplicazione di matrici, ripetuta milioni di volte, distribuita su quei 10.000 core, con memoria velocissima (GDDR6X, GDDR7) attaccata direttamente al chip.
L’analogia che uso quando lo spiego: 32 ingegneri esperti che possono fare tutto, contro 12.000 stagisti che sanno fare solo somme e moltiplicazioni. Se devi compilare un kernel Linux i 32 ingegneri vincono di lontano. Se devi sommare 10 milioni di numeri, i 12.000 stagisti finiscono prima del primo caffè degli ingegneri.
Un LLM, alla fine del giorno, è un’enorme moltiplicazione di matrici. Pesi del modello (matrici di numeri) per il vettore di input (i token che hai dato in pasto), strato dopo strato, per produrre il prossimo token. Tante operazioni semplici, fatte tutte insieme, sui pesi che cambiano poco. Esattamente il task per cui le GPU sono nate.
La regola della VRAM: il modello deve entrare tutto
La regola operativa, quella che decide se il tuo setup funziona o no:
Il peso del modello + il contesto attivo devono entrare interamente nella VRAM della GPU.
Tradotto in numeri concreti, prendiamo un modello popolare nel 2026:
- Qwen3 30B MoE (Mixture of Experts, 4B parametri attivi per token): in formato GGUF Q4_K_M occupa circa 17-18 GB per i pesi. Aggiungi il contesto (KV cache) di una conversazione lunga e arrivi a 24-26 GB totali.
Su una RTX 5090 da 32 GB di VRAM: ci sta dentro, con margine. Inferenza fluida, 50-80 token/secondo, contesto largo gestibile.
Su una RTX 5080 da 16 GB di VRAM: non ci sta dentro. La libreria di inferenza (llama.cpp, ollama, vLLM) fa l’unica cosa che può fare: ne mette una parte in VRAM e una parte in RAM di sistema, gestita dalla CPU. Si chiama offload CPU.
E qui scatta il disastro.
Cosa succede in offload CPU
Apri due terminali e guardi:
$ nvidia-smi
+-----------------------------------------------------------+
| NVIDIA-SMI 575.xx Driver Version: 575.xx |
+-----------------------+-------------------------+---------+
| 0 RTX 5080 Off | 00000000:01:00.0 On | N/A |
| 30% 58C P2 85W / 320W | 15800MiB / 16376MiB | 5% |
+-----------------------+-------------------------+---------+
$ htop
CPU[||||||||||||||||||||||||||||||||||||||||] 100.0%
Mem[||||||||||||||||||||||||||||||| ] 28.4G/64.0G
La GPU è al 5% di utilizzo ma ha la VRAM piena. La CPU è al 100% su tutti i core. Il sistema è di una lentezza imbarazzante. Aprire una scheda di Firefox è un atto di fede.
Cosa sta succedendo: ad ogni token generato, parte dei pesi sono in VRAM (la GPU li usa veloce, GDDR7 a banda altissima), parte sono in RAM di sistema (la CPU li deve passare alla GPU via PCIe, banda PCIe Gen4 x16 = ~32 GB/s, la GDDR7 sta a ~1.000 GB/s e oltre). La CPU diventa il collo di bottiglia, ma soprattutto la GPU rimane in attesa per la maggior parte del tempo. Risultato: 3 token al secondo invece di 60. Una richiesta che doveva chiudersi in 30 secondi si chiude in 30 minuti. Un job di sintesi su 50.000 token, che con tutto in VRAM sta in 15 minuti, in offload diventa un weekend.
La frase che ho usato al meetup, e che sintetizza tutto: se l’LLM gira a circuito chiuso nella VRAM è una scheggia, se va in offload sulla CPU diventa inutilizzabile.
Esempi pratici: cosa gira dove (aprile 2026)
GPT OSS 20 (~14-15 GB in Q4_K_M): sta in una 5080 da 16 GB. Per task testuali brevi (riassunti, classificazione, traduzione, prompt singoli) è veloce e utile. Per uso agentico (Claude Code locale, agent framework che mantengono contesto di 30-50K token con tool calling) non basta: il contesto satura la VRAM residua, finisci in offload, l’agent diventa inusabile.
Qwen3 30B MoE (4B attivi, ~26 GB con contesto): sta in una 5090 da 32 GB. Inferenza fluida, contesto da 30-100K token gestibile. Il MoE è l’architettura che cambia la vita nel 2026: solo 4B parametri “attivi” alla volta, ma 30B totali nel modello (gli “experts” che vengono attivati dinamicamente). Il rapporto qualità/VRAM è il migliore della categoria.
GLM 4.7 Flash (in Q4 sta intorno ai 25 GB con contesto): gira bene su 5090. L’ho testato con Claude Code puntato all’endpoint locale: la qualità di generazione di codice è livello Sonnet 3.5 (non 4.6, ovviamente, ma non è poco). Totalmente offline, totalmente sotto controllo, zero token verso provider esterni. Per task di refactor su codice di clienti, dove la riservatezza è non negoziabile, è la differenza fra fattibile e non fattibile.
Whisper Large-v3 (~4 GB): voice-to-text, gira su qualsiasi scheda da 6 GB in su. 99% di accuratezza su lingue note (italiano, inglese), latenza di trascrizione molto sotto il real-time. È il modello “piccolo” che sembra magia: 4 GB di pesi, e nessun servizio cloud lo fa meglio.
La regola pratica che applico: se voglio fare uso testuale spot, una 5080 16 GB basta per i modelli piccoli. Se voglio fare agentico (Claude Code locale, code generation con contesto largo, agent multi-step), il minimo sindacabile è una 5090 con 32 GB. Tutto sotto è frustrazione.
RAM unificata: la promessa Apple, Nvidia, AMD
Negli ultimi 12 mesi è esplosa la categoria della RAM unificata: chip che integrano CPU + GPU sullo stesso die, con una RAM condivisa che fa sia da memoria di sistema sia da VRAM.
I tre player concreti del 2026:
- Apple M5 Pro / M5 Max: fino a 128 GB di memoria unificata. La GPU integrata vede tutta la RAM. Eccellenti su MLX (il framework Apple) e su llama.cpp con backend Metal.
- Nvidia DGX Spark: workstation compatta, GPU Grace Blackwell con 128 GB di memoria condivisa. Pensata proprio per LLM in casa o in piccoli laboratori AI.
- AMD Ryzen AI Max+ 395: fino a 128 GB di RAM unificata, GPU Radeon integrata, NPU dedicata.
Il vantaggio teorico è enorme: niente offload, niente PCIe come bottleneck, il modello vive nello stesso pool di memoria di tutto il resto. Un modello da 70 GB ci sta. Una cosa che la 5090 (32 GB) non può fare.
Il tradeoff reale: la banda di memoria. La GDDR7 di una 5090 ha banda effettiva intorno ai 1.500-1.800 GB/s. La RAM unificata di un M5 Max sta intorno ai 500-600 GB/s. La DGX Spark è da qualche parte in mezzo, dipende dalla configurazione. AMD Ryzen AI sta più in basso ancora, intorno ai 250-300 GB/s nelle versioni desktop.
Quindi: la RAM unificata fa girare modelli più grandi, ma più lenti per token. Per uso interattivo (chat, agentico) la 5090 vince perché la latenza per token è quello che senti. Per uso batch (riassunti notturni, embedding di archivi, training fine-tuning piccolo) la RAM unificata vince perché ci stai dentro modelli che la 5090 non vede.
La scelta pratica nel 2026:
- Modello fino a 30 GB con uso interattivo veloce: 5090 32 GB.
- Modello da 50-100 GB con uso batch/notturno: M5 Max 128 GB o DGX Spark.
- Vuoi entrambe le cose senza compromessi: due macchine diverse, con un orchestratore davanti che routa la richiesta a quella giusta. Esattamente quello che faccio con il routing multi-LLM in produzione, traslato in lab.
I numeri del mercato 2026 (con caveat)
Questi prezzi cambiano di settimana in settimana (la RAM e la VRAM negli ultimi sei mesi hanno avuto rincari brutali, con shortage globale legato all’AI infrastructure boom). I numeri di aprile 2026, da prendere con cautela:
| Hardware | Listino Nvidia/Apple/AMD | Rivenditore street |
|---|---|---|
| RTX 5080 16 GB | ~1.200 € | 1.500-1.800 € |
| RTX 5090 32 GB | 2.000 € (listino Nvidia diretto) | 4.000-4.500 € |
| Nvidia DGX Spark 128 GB | ~4.000 € | ~4.000 € |
| Apple Mac Studio M5 Max 128 GB | 6.000-7.000 € | identico |
| AMD Ryzen AI Max+ 395 128 GB (mini PC) | 2.500-3.000 € | identico |
| Schede AI enterprise (H200 etc) | 25.000-35.000 € | non rilevante per home |
La 5090 è il caso interessante. Nvidia produce un listino ufficiale a 2.000 € ma riserva le scorte a quel prezzo per una scheda su mille (numero indicativo, ma il rapporto con il volume in negozio è quello). Le altre vanno ai rivenditori che le rivendono a 4.000-4.500 €. È come la storia di chi compra il PS5 al lancio e chi lo trova due anni dopo: pazienza, alert sui rifornimenti, F5 sul sito Nvidia il giovedì mattina.
Una volta nella vita ne ho beccata una a listino da nvidia.com. Acquisto aziendale, ordine confermato in 30 secondi, scheda a casa in 4 giorni. Il valore della disciplina, non dell’hype.
La domanda di Luca al meetup: e se ho solo 64 GB di RAM?
Riprendendo la domanda iniziale. Se hai un i9 con 64 GB di DDR5 e nessuna GPU dedicata seria (o una scheda integrata), cosa puoi fare?
- Modelli piccoli (3B-7B): girano. Un modello come Phi-4 mini, o Qwen3 7B, o Llama 3.3 8B in Q4 sta sotto i 6 GB. Si avvia con llama.cpp puramente su CPU. Velocità: 3-15 token/secondo a seconda del modello e della CPU. Usabile per task semplici (riassunti brevi, classificazione, traduzione spot). Non usabile per agentico.
- Modelli medi (13B-30B) puramente CPU: tecnicamente girano. Qwen3 30B MoE in Q4 puramente CPU su un i9 12 core fa 1-3 token/secondo. Una risposta da 500 token arriva in 3-8 minuti. Per usi batch può andare. Per chat interattiva no.
- Modelli grandi (70B+) puramente CPU: dimentica. Su una conversazione media perdi mezza giornata.
La scorciatoia da scrivania, se non vuoi spendere 2.000 € di GPU:
- Apple silicon M3/M4 base con 24-36 GB unificati: gira modelli fino a 14B con accettabile fluidità. Non sostituisce una 5090 ma è il “tablet” dell’AI domestica.
- AMD Ryzen AI mini PC con NPU: 7-15 token/secondo su modelli 13B, consumo energetico tipo console.
La verità quasi imbarazzante è che nel 2026 il software è ancora indietro rispetto al silicio. Le NPU dei processori consumer sono usate al 30% dalla maggior parte delle librerie. Un anno fa era impensabile far girare un 30B in casa. Quattro mesi fa era inimmaginabile farlo a 60 token/secondo. Adesso ci stiamo, e la traiettoria continua.
Cosa rifarei diversamente
Avrei comprato la 5090 a listino sei mesi prima. Quando Nvidia ha aperto il primo blocco di stock a 2.000 €, ho aspettato perché “tanto c’è sempre la prossima ondata”. La prossima ondata l’ha presa il mercato grigio. Ho dovuto aspettare otto mesi e tre tentativi di acquisto per beccarne una a listino. Sarebbe stato lo stesso prezzo, sei mesi di esperienza in più.
Avrei strutturato il lab con due nodi GPU dal day uno. Uno con 5080 per i modelli piccoli/medi (Whisper, OSS 20, agenti light), uno con 5090 per i modelli grandi (Qwen3 30B, GLM 4.7, code generation). Routing davanti che decide. Invece ho iniziato con un nodo singolo e ho dovuto refactorare quando il carico è cresciuto.
Avrei messo un budget di sorveglianza ai prezzi. Un piccolo script che ogni ora controlla la pagina Nvidia, la pagina dei mini PC con Ryzen AI, gli annunci dei rivenditori. Mezz’ora a scriverlo, ti permette di catturare la finestra di prezzo “buono”. Lo farò questa settimana, vendetta gastronomica sull’attesa di otto mesi.
Avrei imparato prima la differenza fra modelli MoE e dense. Qwen3 30B MoE con 4B attivi è un’altra cosa rispetto a un Llama 30B dense. La VRAM occupata è simile, ma la velocità di inferenza è un altro pianeta (perché solo 4B di pesi per token sono attivi, non 30B). Per scegliere il modello giusto in casa nel 2026, leggere “B totali e B attivi” è la prima cosa.
Cosa mi sono portato a casa
Stiamo parlando di qualcosa che quattro mesi fa era impensabile, che un anno fa era inimmaginabile. Far girare GLM 4.7 in casa con la qualità di un Sonnet 3.5, ma in totale isolamento dalla rete dei provider AI, è una capacità che sposta il piano di gioco. Per i progetti di clienti dove la riservatezza è un vincolo (e nel mondo dell’editoria italiana spesso lo è), avere un nodo GPU in casa o in colocation cambia cosa puoi vendere.
Tre cose che porto come regola operativa:
Prima. La regola della VRAM è non negoziabile. Pesi + contesto in VRAM, oppure il setup è inutilizzabile. La differenza fra “1 minuto” e “3 giorni” è qui, non altrove.
Seconda. Per agentico serio (Claude Code locale, code generation con contesto largo) il minimo sindacabile nel 2026 è 32 GB di VRAM. RTX 5090, oppure RAM unificata di fascia alta. Sotto, è frustrazione.
Terza. RAM unificata e VRAM dedicata risolvono problemi diversi. La VRAM dedicata vince in latenza, la RAM unificata vince in capienza. Un lab serio dovrebbe avere entrambe, con un router davanti che decide chi gestisce cosa. Esattamente lo stesso pattern del cluster di produzione, in scala domestica.
Sul prossimo iterazione del lab (Targaryen 5080 + ROG 5090 + Ollama davanti come router) scriverò quando i numeri di esercizio saranno consolidati. Per ora, la matematica è quella di sopra, e tiene.
