Confronto delle prestazioni degli LLM su Ollama con GPU da 16 GB di VRAM

Test di velocità LLM su RTX 4080 con 16 GB di VRAM

Indice

Eseguire modelli linguistici di grandi dimensioni (LLM) localmente offre privacy, funzionalità offline e costi zero per le API. Questo benchmark rivela esattamente cosa ci si può aspettare da 14 popolari LLM su Ollama con una RTX 4080.

Con una GPU da 16 GB di VRAM, ho affrontato un compromesso costante: modelli più grandi con potenzialmente una qualità migliore o modelli più piccoli con un’inferenza più rapida. Per ulteriori informazioni sulle prestazioni dei LLM—throughput vs latenza, limiti della VRAM, richieste parallele e benchmark tra diversi runtime—consultare Prestazioni LLM: Benchmark, Colli di Bottiglia & Ottimizzazione.

Questo articolo si concentra su Ollama. Per la stessa classe di GPU da 16 GB misurata con llama.cpp a contesti di 19K, 32K e 64K (VRAM, carico GPU, token al secondo per checkpoint densi e MoE), consultare Benchmark LLM per GPU da 16 GB VRAM con llama.cpp (velocità e contesto).

Una volta che il throughput e la divisione della VRAM sembrano accettabili, i carichi di lavoro di tipo agente hanno ancora bisogno di impostazioni sane per temperatura e penalità per stack di tipo Qwen e Gemma; consultare i parametri di inferenza agentic per Qwen e Gemma.

Prestazioni LLM su Ollama - riordinamento delle blatte

TL;DR

Ecco l’aggiornata tabella di confronto delle prestazioni dei LLM su RTX 4080 16GB con Ollama 0.17.7, (09-03-2026) aggiunti i modelli Qwen 3.5 9b, 9bq8, 27b e 35b:

Modello RAM+VRAM Usati Ripartizione CPU/GPU Token/sec
gpt-oss:20b 14 GB 100% GPU 139.93
qwen3.5:9b 9.3 GB 100% GPU 90.89
ministral-3:14b 13 GB 100% GPU 70.13
qwen3:14b 12 GB 100% GPU 61.85
qwen3.5:9b-q8_0 13 GB 100% GPU 61.22
qwen3-coder:30b 20 GB 25%/75% CPU/GPU 57.17
qwen3-vl:30b-a3b 22 GB 30%/70% CPU/GPU 50.99
glm-4.7-flash 21 GB 27%/73% CPU/GPU 33.86
nemotron-3-nano:30b 25 GB 38%/62% CPU/GPU 32.77
qwen3.5:35b 27 GB 43%/57% CPU/GPU 20.66
devstral-small-2:24b 19 GB 18%/82% CPU/GPU 18.67
mistral-small3.2:24b 19 GB 18%/82% CPU/GPU 18.51
gpt-oss:120b 66 GB 78%/22% CPU/GPU 12.64
qwen3.5:27b 24 GB 43%/57% CPU/GPU 6.48

Indicatore chiave: I modelli che rientrano interamente nella VRAM sono drasticamente più veloci. GPT-OSS 20B raggiunge 139.93 token/sec, mentre GPT-OSS 120B con un pesante offloading sulla CPU procede a 12.64 token/sec—una differenza di velocità di 11 volte.

Configurazione Hardware del Test

Il benchmark è stato condotto sul seguente sistema:

  • GPU: NVIDIA RTX 4080 con 16GB VRAM
  • CPU: Intel Core i7-14700 (8 P-cores + 12 E-cores)
  • RAM: 64GB DDR5-6000

Questo rappresenta una configurazione consumer high-end comune per l’inferenza locale dei LLM. I 16GB di VRAM sono il vincolo critico—determinano quali modelli vengono eseguiti interamente sulla GPU rispetto a quelli che richiedono offloading sulla CPU.

Comprendere come Ollama utilizza i core della CPU Intel diventa importante quando i modelli superano la capacità della VRAM, poiché le prestazioni della CPU influenzano direttamente la velocità di inferenza dei livelli offloadati.

Scopo di Questo Benchmark

L’obiettivo principale era misurare la velocità di inferenza in condizioni realistiche. Sapevo già dall’esperienza che Mistral Small 3.2 24B eccelle nella qualità del linguaggio, mentre Qwen3 14B offre un migliore adattamento alle istruzioni per i miei casi d’uso specifici.

Questo benchmark risponde alla domanda pratica: Quanto velocemente può generare testo ciascun modello e qual è la penalità di velocità per superare i limiti della VRAM?

I parametri del test erano:

  • Dimensione del contesto: 19.000 token. Questo è il valore medio nelle mie richieste Generate.
  • Prompt: “confronta il meteo e il clima tra le capitali dell’australia”
  • Metrica: tasso di valutazione (tokens al secondo durante la generazione)

Installazione e Versione di Ollama

Tutti i test hanno utilizzato Ollama versione 0.15.2, l’ultima release al momento del test. Successivamente ho rieseguito i test su Ollama v 0.17.7 - per aggiungere i modelli Qwen3.5. Per un riferimento completo dei comandi Ollama utilizzati in questo benchmark, consultare il cheatsheet di Ollama.

Per un rapido riassunto - installare Ollama su Linux:

curl -fsSL https://ollama.com/install.sh | sh

Verificare l’installazione:

ollama --version

Se è necessario archiviare i modelli su un drive diverso a causa di vincoli di spazio, consultare come spostare i modelli Ollama su un drive diverso.

Modelli Testati

I seguenti modelli sono stati sottoposti a benchmark, in ordine alfabetico:

Modello Parametri Quantizzazione Note
devstral-small-2:24b 24B Q4_K_M Focalizzato sul codice
glm-4.7-flash 30B Q4_K_M Modello di pensiero
gpt-oss:20b 20B Q4_K_M Il più veloce in assoluto
gpt-oss:120b 120B Q4_K_M Il più grande testato
ministral-3:14b 14B Q4_K_M Il modello efficiente di Mistral
mistral-small3.2:24b 24B Q4_K_M Forte qualità del linguaggio
nemotron-3-nano:30b 30B Q4_K_M Soluzione di NVIDIA
qwen3:14b 14B Q4_K_M Miglior adattamento alle istruzioni
qwen3.5:9b 9B Q4_K_M Veloce, interamente su GPU
qwen3.5:9b-q8_0 9B Q8_0 Qualità più alta, interamente su GPU
qwen3.5:27b 27B Q4_K_M Qualità eccellente, lento su Ollama
qwen3-vl:30b-a3b 30B Q4_K_M Capacità visive
qwen3-coder:30b 30B Q4_K_M Focalizzato sul codice
qwen3.5:35b 35B Q4_K_M Buone capacità di coding

Per scaricare qualsiasi modello:

ollama pull gpt-oss:20b
ollama pull qwen3:14b

Comprendere l’Offloading della CPU

Quando i requisiti di memoria di un modello superano la VRAM disponibile, Ollama distribuisce automaticamente i livelli del modello tra GPU e RAM di sistema. L’output mostra questa come una ripartizione percentuale come “18%/82% CPU/GPU”.

Questo ha implicazioni massive sulle prestazioni. Ogni generazione di token richiede il trasferimento di dati tra la memoria della CPU e della GPU—un collo di bottiglia che si accumula con ogni livello offloadato alla CPU.

Il pattern è chiaro dai nostri risultati:

  • Modelli 100% GPU: 61-140 token/sec
  • Modelli 70-82% GPU: 19-51 token/sec
  • 22% GPU (principalmente CPU): 12.6 token/sec

Questo spiega perché un modello da 20B di parametri può superare di 11 volte un modello da 120B nella pratica. Se stai pianificando di servire multiple richieste concorrenti, comprendere come Ollama gestisce le richieste parallele diventa essenziale per la pianificazione della capacità.

Risultati Dettagliati del Benchmark

Modelli in Esecuzione 100% sulla GPU

GPT-OSS 20B — Il Campione della Velocità

ollama run gpt-oss:20b --verbose
/set parameter num_ctx 19000

NAME           SIZE     PROCESSOR    CONTEXT
gpt-oss:20b    14 GB    100% GPU     19000

eval count:           2856 token(s)
eval duration:        20.410517947s
eval rate:            139.93 tokens/s

A 139.93 token/sec, GPT-OSS 20B è il chiaro vincitore per le applicazioni critiche per la velocità. Utilizza solo 14GB di VRAM, lasciando spazio per finestre di contesto più grandi o altri carichi di lavoro della GPU.

Qwen3 14B — Equilibrio Eccellente

ollama run qwen3:14b --verbose
/set parameter num_ctx 19000

NAME         SIZE     PROCESSOR    CONTEXT
qwen3:14b    12 GB    100% GPU     19000

eval count:           3094 token(s)
eval duration:        50.020594575s
eval rate:            61.85 tokens/s

Qwen3 14B offre il miglior adattamento alle istruzioni nella mia esperienza, con un’impronta di memoria confortevole di 12GB. A 61.85 token/sec, è sufficientemente reattivo per un uso interattivo.

Per gli sviluppatori che integrano Qwen3 nelle applicazioni, consultare Output Strutturato LLM con Ollama e Qwen3 per l’estrazione di risposte JSON strutturate.

Ministral 3 14B — Veloce e Compatto

ollama run ministral-3:14b --verbose
/set parameter num_ctx 19000

NAME               SIZE     PROCESSOR    CONTEXT
ministral-3:14b    13 GB    100% GPU     19000

eval count:           1481 token(s)
eval duration:        21.11734277s
eval rate:            70.13 tokens/s

Il modello più piccolo di Mistral fornisce 70.13 token/sec rimanendo interamente nella VRAM. Una scelta solida quando si necessita della qualità della famiglia Mistral alla massima velocità.

qwen3.5:9b - veloce e nuovo

ollama run  qwen3.5:9b --verbose
/set parameter num_ctx 19000
confronta il meteo e il clima tra le capitali dell'australia

NAME          ID              SIZE      PROCESSOR    CONTEXT
qwen3.5:9b    6488c96fa5fa    9.3 GB    100% GPU     19000

eval count:           3802 token(s)
eval duration:        41.830174597s
eval rate:            90.89 tokens/s

qwen3.5:9b-q8_0 - quantizzazione q8

Questa quantizzazione riduce le prestazioni di qwen3.5:9b del 30% rispetto alla q4.

ollama run  qwen3.5:9b-q8_0 --verbose
/set parameter num_ctx 19000

confronta il meteo e il clima tra le capitali dell'australia
NAME               ID              SIZE     PROCESSOR    CONTEXT
qwen3.5:9b-q8_0    441ec31e4d2a    13 GB    100% GPU     19000

eval count:           3526 token(s)
eval duration:        57.595540159s
eval rate:            61.22 tokens/s

Modelli che Richiedono Offloading della CPU

qwen3-coder:30b - il più veloce tra gli LLM da 30b perché solo testo

ollama run qwen3-coder:30b --verbose
/set parameter num_ctx 19000
confronta il meteo e il clima tra le capitali dell'australia

NAME               ID              SIZE     PROCESSOR          CONTEXT
qwen3-coder:30b    06c1097efce0    20 GB    25%/75% CPU/GPU    19000
22%/605%

eval count:           559 token(s)
eval duration:        9.77768875s
eval rate:            57.17 tokens/s

Qwen3-VL 30B — Migliori Prestazioni Parzialmente Offloadate

ollama run qwen3-vl:30b-a3b-instruct --verbose
/set parameter num_ctx 19000

NAME                         SIZE     PROCESSOR          CONTEXT
qwen3-vl:30b-a3b-instruct    22 GB    30%/70% CPU/GPU    19000

eval count:           1450 token(s)
eval duration:        28.439319709s
eval rate:            50.99 tokens/s

Nonostante il 30% dei livelli sulla CPU, Qwen3-VL mantiene 50.99 token/sec—più veloce di alcuni modelli 100% GPU. La capacità visiva aggiunge versatilità per compiti multimodali.

Mistral Small 3.2 24B — Compromesso Qualità vs Velocità

ollama run mistral-small3.2:24b --verbose
/set parameter num_ctx 19000

NAME                    SIZE     PROCESSOR          CONTEXT
mistral-small3.2:24b    19 GB    18%/82% CPU/GPU    19000

eval count:           831 token(s)
eval duration:        44.899859038s
eval rate:            18.51 tokens/s

Mistral Small 3.2 offre una qualità del linguaggio superiore ma paga un’alta penalità di velocità. A 18.51 token/sec, risulta visibilmente più lento per il chat interattivo. Vale la pena per compiti in cui la qualità è più importante della latenza.

GLM 4.7 Flash — Modello di Pensiero MoE

ollama run glm-4.7-flash --verbose
/set parameter num_ctx 19000

NAME                 SIZE     PROCESSOR          CONTEXT
glm-4.7-flash        21 GB    27%/73% CPU/GPU    19000

eval count:           2446 token(s)
eval duration:        1m12.239164004s
eval rate:            33.86 tokens/s

GLM 4.7 Flash è un modello Mixture of Experts da 30B-A3B—30B di parametri totali con soli 3B attivi per token. Come modello di “pensiero”, genera ragionamenti interni prima delle risposte. I 33.86 token/sec includono sia i token di pensiero che quelli di output. Nonostante l’offloading sulla CPU, l’architettura MoE lo mantiene ragionevolmente veloce.

qwen3.5:35b - Nuovo modello con buone prestazioni self-hosted

ollama run qwen3.5:35b --verbose
/set parameter num_ctx 19000
confronta il meteo e il clima tra le capitali dell'australia

NAME           ID              SIZE     PROCESSOR          CONTEXT
qwen3.5:35b    4af949f8bdf0    27 GB    43%/57% CPU/GPU    19000

eval count:           3418 token(s)
eval duration:        2m45.458926548s
eval rate:            20.66 tokens/s

GPT-OSS 120B — Il Colosso

ollama run gpt-oss:120b --verbose
/set parameter num_ctx 19000

NAME            SIZE     PROCESSOR          CONTEXT
gpt-oss:120b    66 GB    78%/22% CPU/GPU    19000

eval count:           5008 token(s)
eval duration:        6m36.168233066s
eval rate:            12.64 tokens/s

Eseguire un modello da 120B su 16GB di VRAM è tecnicamente possibile ma doloroso. Con il 78% sulla CPU, i 12.64 token/sec rendono l’uso interattivo frustrante. Più adatto per l’elaborazione batch dove la latenza non è importante.

qwen3.5:27b - Intelligente ma lento su Ollama

ollama run qwen3.5:27b --verbose
/set parameter num_ctx 19000
confronta il meteo e il clima tra le capitali dell'australia

NAME           ID              SIZE     PROCESSOR          CONTEXT
qwen3.5:27b    193ec05b1e80    24 GB    43%/57% CPU/GPU    19000

eval count:           3370 token(s)
eval duration:        8m40.087510281s
eval rate:            6.48 tokens/s

Ho testato qwen3.5:27b e ho avuto un’opinione estremamente positiva sulle prestazioni di questo modello con OpenCode. È molto capace, preparato, con un eccellente tool calling, anche se è lento sulla mia macchina su Ollama. Ho provato altre piattaforme di self-hosting LLM e ho ottenuto velocità molto più elevate. Credo che sia il momento di lasciare Ollama. Ne scriverò un po’ più tardi.

Raccomandazioni Pratiche

Per Chat Interattiva

Utilizzare modelli che rientrano al 100% nella VRAM:

  1. GPT-OSS 20B — Velocità massima (139.93 t/s)
  2. Ministral 3 14B — Buona velocità con qualità Mistral (70.13 t/s)
  3. Qwen3 14B — Miglior adattamento alle istruzioni (61.85 t/s)

Per una migliore esperienza di chat, considerare Interfacce Chat Open-Source per Ollama locale.

Per Elaborazione Batch

Questo è, di nuovo, sul mio equipaggiamento - 14GB VRAM.

Quando la velocità è meno critica:

  • Mistral Small 3.2 24B — Qualità del linguaggio superiore
  • Qwen3-VL 30B — Capacità visive + testo

Quando la velocità non è critica affatto:

  • Qwen3.5:35b - Buone capacità di coding
  • Qwen3.5:27b - Estremamente buono, ma lento su Ollama. Ho avuto un buon successo nell’hostare questo modello su llama.cpp però.

Per Sviluppo e Coding

Se stai costruendo applicazioni con Ollama:

Alternative di Hosting

Se le limitazioni di Ollama ti preoccupano (vedere Preoccupazioni sull’enshittification di Ollama), esplora altre opzioni nella Guida all’Hosting Locale LLM o confronta Docker Model Runner vs Ollama.

Conclusione

Con 16GB di VRAM, puoi eseguire LLM capaci a velocità impressionanti—se scegli saggiamente. Le conclusioni chiave:

  1. Rimanere entro i limiti della VRAM per l’uso interattivo. Un modello da 20B a 140 token/sec batte un modello da 120B a 12 token/sec per la maggior parte degli scopi pratici.

  2. GPT-OSS 20B vince sulla pura velocità, ma Qwen3 14B offre il miglior equilibrio tra velocità e capacità per compiti di adattamento alle istruzioni.

  3. L’offloading della CPU funziona ma aspettati rallentamenti di 3-10 volte. Accettabile per l’elaborazione batch, frustrante per il chat.

  4. La dimensione del contesto è importante. Il contesto da 19K usato qui aumenta significativamente l’uso della VRAM. Ridurre il contesto per una migliore utilizzazione della GPU.

Per una ricerca alimentata dall’AI che combina LLM locali con risultati web, consultare self-hosting Perplexica con Ollama.

Per esplorare ulteriori benchmark, compromessi tra VRAM e throughput, e ottimizzazione delle prestazioni tra Ollama e altri runtime, consultare il nostro hub Prestazioni LLM: Benchmark, Colli di Bottiglia & Ottimizzazione.

Risorse Interne

Riferimenti Esterni

Iscriviti

Ricevi nuovi articoli su sistemi, infrastruttura e ingegneria AI.