Due RTX 3090 in PCIe 3.0, due Xeon E5-2696 v4 e 188 GB di DDR4-2133: sulla carta è una workstation che molti darebbero per superata. Invece, con llama.cpp e la quantization UD-Q6_K_XL di Qwen3.8-Flash-Next, l'autore di un post tecnico ha portato il decode da circa 17 token/s a 25-29 token/s su contesti brevi e medi, e da 12 a circa 17 token/s a 131.000 token di profondità. Il contesto pieno resta 261.888 token con KV in f16.
La novità è la PR #27861, una cache LRU degli esperti residente in GPU. Invece di caricare interi layer di esperti in VRAM, il runtime tiene in cache gli esperti usati più di recente per ogni layer. Poiché il modello tende a scegliere per un token gli stessi esperti dei token precedenti, il tasso di successo arriva all'80-85% sul codice e più alto sulla prosa. I 48 layer di esperti restano pinnati nella RAM di sistema: la GPU diventa una cache veloce, non l'archivio.
L'altro passaggio decisivo è stato abbassare l'ubatch da 2048 a 512. I buffer di calcolo scalano con l'ubatch e questa mossa libera circa 5 GB per GPU, portando la cache da 80 a 135 slot per layer a contesto pieno. Il prezzo da pagare è un prefill più lento sui prompt lunghi; i prompt brevi restano sostanzialmente invariati.
Questo risultato sposta il baricentro del problema. Nei modelli MoE, la VRAM non è più l'unico indicatore di fattibilità: la gerarchia di memoria e la politica di cache degli esperti contano altrettanto. Un sistema con PCIe 3.0 saturo e DDR4 lente può comunque migliorare in modo misurabile se il software evita di rileggere da RAM gli esperti già presenti in GPU. Le implicazioni di secondo ordine sono concrete per chi gestisce cluster on-premise con hardware non recente: il costo marginale di tenere in vita due 3090 scende, mentre il TCO di macchine più nuove va giustificato con carichi in cui il prefill o il training continuo dominano.
Non è una bacchetta magica. L'autore segnala che thread count, poll, CPU masks, KV q8, lazy PLE e i draft n-gram sulla prosa non hanno prodotto benefici o hanno peggiorato le cose. Il multi-token prediction a temperatura 0,7 è controproducente perché i batch di verifica rileggono gli esperti dalla RAM host; funziona solo in greedy o a contesto profondo. Più di due upload di cache per passo saturano il PCIe 3.0 e fanno crollare il tasso di successo.
Per replicare non serve un fork: bastano llama.cpp master e la PR 27861. La dimensione della cache va calibrata sulla VRAM residua dopo buffer KV e di calcolo; su Q6 l'autore stima circa 100 MB per slot per GPU. Il prossimo test dichiarato è la quantization UD-Q4_K_XL, seguita da un possibile ritorno su MTP. Più che un singolo trick, il caso segnala una direzione: l'inference MoE sta diventando un problema di caching e scheduling, non solo di capacità. E in quel campo i margini per l'hardware on-premise più datato sono più ampi di quanto i benchmark su singola GPU lasciassero credere. Per chi valuta deployment on-premise, AI-RADAR raccoglie su /llm-onpremise strumenti analitici per soppesare questi trade-off.
💬 Commenti (0)
🔒 Accedi o registrati per commentare gli articoli.
Nessun commento ancora. Sii il primo a commentare!