Comparando o desempenho de LLMs no Ollama em uma GPU com 16 GB de VRAM
Teste de velocidade de LLM em RTX 4080 com 16 GB de VRAM
Executar grandes modelos de linguagem localmente oferece privacidade, capacidade de funcionamento offline e zero custos de API. Este benchmark revela exatamente o que se pode esperar de 14 populares LLMs no Ollama em uma RTX 4080.
Com uma GPU de 16GB de VRAM, enfrentei um compromisso constante: modelos maiores com qualidade potencialmente superior, ou modelos menores com inferência mais rápida. Para mais informações sobre desempenho de LLMs — vazão versus latência, limites de VRAM, requisições paralelas e benchmarks entre runtimes — veja Desempenho de LLMs: Benchmarks, Gargalos e Otimização.
Este artigo foca no Ollama. Para a mesma classe de GPU de 16 GB medida com llama.cpp em contextos de 19K, 32K e 64K (VRAM, carga da GPU, tokens por segundo em checkpoints densos e MoE), veja Benchmarks de LLMs com llama.cpp para 16 GB de VRAM (velocidade e contexto).
Uma vez que a vazão e a divisão de VRAM pareçam aceitáveis, cargas de trabalho em estilo agente ainda precisam de predefinições sensatas de temperatura e penalidade para pilhas no estilo Qwen e Gemma; veja parâmetros de inferência agêntica para Qwen e Gemma.

Resumindo
Aqui está a tabela de comparação atualizada do desempenho de LLMs em RTX 4080 16GB com Ollama 0.17.7, (2026-03-09) adicionados os modelos Qwen 3.5 9b, 9bq8, 27b e 35b:
| Modelo | RAM+VRAM Usada | Divisão CPU/GPU | Tokens/seg |
|---|---|---|---|
| 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 |
Insight chave: Modelos que cabem inteiramente na VRAM são drasticamente mais rápidos. O GPT-OSS 20B alcança 139,93 tokens/seg, enquanto o GPT-OSS 120B com offloading pesado para CPU arrasta-se a 12,64 tokens/seg — uma diferença de velocidade de 11 vezes.
Configuração de Hardware de Teste
O benchmark foi realizado no seguinte sistema:
- GPU: NVIDIA RTX 4080 com 16GB de VRAM
- CPU: Intel Core i7-14700 (8 P-cores + 12 E-cores)
- RAM: 64GB DDR5-6000
Isto representa uma configuração de alto nível de consumidor comum para inferência local de LLMs. Os 16GB de VRAM são a restrição crítica — eles determinam quais modelos rodam inteiramente na GPU versus aqueles que requerem offloading para CPU.
Entender como o Ollama usa os núcleos da CPU Intel torna-se importante quando os modelos excedem a capacidade da VRAM, pois o desempenho da CPU impacta diretamente a velocidade da inferência das camadas transferidas (offloaded).
Objetivo deste Benchmark
O objetivo principal era medir a velocidade de inferência sob condições realistas. Eu já sabia por experiência que o Mistral Small 3.2 24B se destaca na qualidade da linguagem, enquanto o Qwen3 14B oferece um seguimento de instruções superior para os meus casos de uso específicos.
Este benchmark responde à pergunta prática: Quão rápido cada modelo pode gerar texto, e qual é a penalidade de velocidade para exceder os limites de VRAM?
Os parâmetros de teste foram:
- Tamanho do contexto: 19.000 tokens. Este é o valor médio nas minhas requisições Generate.
- Prompt: “compare weather and climate between capital cities of australia”
- Métrica: taxa de avaliação (tokens por segundo durante a geração)
Instalação e Versão do Ollama
Todos os testes usaram a versão 0.15.2 do Ollama, a liberação mais recente no momento do teste. Mais tarde, reexecutei com o Ollama v 0.17.7 - para adicionar os modelos Qwen3.5. Para uma referência completa dos comandos do Ollama usados neste benchmark, veja a folha de dicas do Ollama.
Para uma recuperação rápida - instale o Ollama no Linux:
curl -fsSL https://ollama.com/install.sh | sh
Verifique a instalação:
ollama --version
Se você precisar armazenar modelos em um drive diferente devido a restrições de espaço, confira como mover modelos do Ollama para um drive diferente.
Modelos Testados
Os seguintes modelos foram benchmarkados, em ordem alfabética:
| Modelo | Parâmetros | Quantização | Observações |
|---|---|---|---|
| devstral-small-2:24b | 24B | Q4_K_M | Foco em código |
| glm-4.7-flash | 30B | Q4_K_M | Modelo de raciocínio |
| gpt-oss:20b | 20B | Q4_K_M | Mais rápido em geral |
| gpt-oss:120b | 120B | Q4_K_M | Maior testado |
| ministral-3:14b | 14B | Q4_K_M | Modelo eficiente da Mistral |
| mistral-small3.2:24b | 24B | Q4_K_M | Forte qualidade de linguagem |
| nemotron-3-nano:30b | 30B | Q4_K_M | Oferta da NVIDIA |
| qwen3:14b | 14B | Q4_K_M | Melhor seguimento de instruções |
| qwen3.5:9b | 9B | Q4_K_M | Rápido, totalmente na GPU |
| qwen3.5:9b-q8_0 | 9B | Q8_0 | Qualidade superior, totalmente na GPU |
| qwen3.5:27b | 27B | Q4_K_M | Excelente qualidade, lento no Ollama |
| qwen3-vl:30b-a3b | 30B | Q4_K_M | Capacidade visual |
| qwen3-coder:30b | 30B | Q4_K_M | Foco em código |
| qwen3.5:35b | 35B | Q4_K_M | Boas capacidades de codificação |
Para baixar qualquer modelo:
ollama pull gpt-oss:20b
ollama pull qwen3:14b
Entendendo o Offloading de CPU
Quando os requisitos de memória de um modelo excedem a VRAM disponível, o Ollama distribui automaticamente as camadas do modelo entre a GPU e a RAM do sistema. A saída mostra isso como uma divisão percentual, como “18%/82% CPU/GPU”.
Isso tem implicações de desempenho massivas. Cada geração de token requer transferência de dados entre a memória da CPU e da GPU — um gargalo que se acumula a cada camada transferida para a CPU.
O padrão fica claro a partir dos nossos resultados:
- Modelos 100% na GPU: 61-140 tokens/seg
- Modelos 70-82% na GPU: 19-51 tokens/seg
- 22% na GPU (maioria na CPU): 12,6 tokens/seg
Isso explica por que um modelo de 20B de parâmetros pode superar um modelo de 120B em 11 vezes na prática. Se você planeja atender várias requisições simultâneas, entender como o Ollama lida com requisições paralelas torna-se essencial para o planejamento de capacidade. A divisão de offload para CPU acima é realmente um problema de orçamento de KV-cache e pesos disfarçado — KV Cache em GPUs de 16 GB passa pela matemática exata e as configurações do OLLAMA_KV_CACHE_TYPE que permitem recuperar espaço sem recorrer a um modelo menor.
Resultados Detalhados do Benchmark
Modelos Rodando 100% na GPU
GPT-OSS 20B — O Campeão da Velocidade
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 tokens/seg, o GPT-OSS 20B é o vencedor claro para aplicações críticas em velocidade. Ele usa apenas 14GB de VRAM, deixando espaço para janelas de contexto maiores ou outras cargas de trabalho da GPU.
Qwen3 14B — Excelente Equilíbrio
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
O Qwen3 14B oferece o melhor seguimento de instruções, na minha experiência, com uma pegada de memória confortável de 12GB. A 61,85 tokens/seg, é responsivo o suficiente para uso interativo.
Para desenvolvedores integrando o Qwen3 em aplicações, veja Saída Estruturada de LLMs com Ollama e Qwen3 para extrair respostas JSON estruturadas.
Ministral 3 14B — Rápido e Compacto
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
O modelo menor da Mistral entrega 70,13 tokens/seg cabendo inteiramente na VRAM. Uma escolha sólida quando você precisa da qualidade da família Mistral na velocidade máxima.
qwen3.5:9b - rápido e novo
ollama run qwen3.5:9b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of 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 - quantização q8
Esta quantização reduz o desempenho do qwen3.5:9b em 30% comparado ao q4.
ollama run qwen3.5:9b-q8_0 --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of 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
Modelos que Requerem Offloading de CPU
qwen3-coder:30b - o mais rápido do conjunto de LLMs 30b por ser apenas texto
ollama run qwen3-coder:30b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of 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 — Melhor Desempenho Parcialmente Transferido
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
Apesar de 30% das camadas estarem na CPU, o Qwen3-VL mantém 50,99 tokens/seg — mais rápido do que alguns modelos 100% na GPU. A capacidade visual adiciona versatilidade para tarefas multimodais.
Mistral Small 3.2 24B — Compromisso entre Qualidade e Velocidade
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
O Mistral Small 3.2 oferece qualidade de linguagem superior, mas paga uma penalidade de velocidade pesada. A 18,51 tokens/seg, ele se sente perceptivelmente mais lento para chat interativo. Vale a pena para tarefas onde a qualidade importa mais do que a latência.
GLM 4.7 Flash — Modelo de Raciocínio 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
O GLM 4.7 Flash é um modelo Mixture of Experts de 30B-A3B — 30B de parâmetros totais com apenas 3B ativos por token. Como um modelo de “raciocínio”, ele gera raciocínio interno antes das respostas. Os 33,86 tokens/seg incluem tanto tokens de raciocínio quanto de saída. Apesar do offloading para CPU, a arquitetura MoE o mantém razoavelmente rápido.
qwen3.5:35b - Novo modelo com desempenho auto-hospedado decente
ollama run qwen3.5:35b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of 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 — O Pesado
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
Rodar um modelo de 120B com 16GB de VRAM é tecnicamente possível, mas doloroso. Com 78% na CPU, os 12,64 tokens/seg tornam o uso interativo frustrante. Mais adequado para processamento em lote onde a latência não importa.
qwen3.5:27b - Inteligente, mas lento no Ollama
ollama run qwen3.5:27b --verbose
/set parameter num_ctx 19000
compare weather and climate between capital cities of 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
Testei o qwen3.5:27b e tive uma opinião extremamente boa sobre o desempenho deste modelo com o OpenCode. Ele é muito capaz, conhecedor, tem excelente chamamento de ferramentas (tool calling), embora seja lento na minha máquina no Ollama. Tentei outras plataformas de auto-hospedagem de LLMs e obtive velocidades muito maiores. Acho que é hora de abandonar o Ollama. Vou escrever sobre isso um pouco mais tarde.
Recomendações Práticas
Para Chat Interativo
Use modelos que cabem 100% na VRAM:
- GPT-OSS 20B — Velocidade máxima (139,93 t/s)
- Ministral 3 14B — Boa velocidade com qualidade Mistral (70,13 t/s)
- Qwen3 14B — Melhor seguimento de instruções (61,85 t/s)
Para uma melhor experiência de chat, considere Interfaces de Chat Open-Source para Ollama local.
Para Processamento em Lote
Isto é novamente, no meu equipamento - 14GB de VRAM.
Quando a velocidade é menos crítica:
- Mistral Small 3.2 24B — Qualidade de linguagem superior
- Qwen3-VL 30B — Capacidade de visão + texto
Quando a velocidade não é crítica em absoluto:
- Qwen3.5:35b - Boas capacidades de codificação
- Qwen3.5:27b - Extremamente bom, mas lento no Ollama. Tive bastante sucesso hospedando este modelo no llama.cpp.
Para Desenvolvimento e Codificação
Se você está construindo aplicações com o Ollama:
Opções de Hospedagem Alternativas
Se as limitações do Ollama o preocupam (veja preocupações com a degradação do Ollama), explore outras opções no Guia de Hospedagem de LLMs Locais ou compare Docker Model Runner vs Ollama.
Conclusão
Com 16GB de VRAM, você pode executar LLMs capazes em velocidades impressionantes — se escolher sabiamente. As descobertas-chave:
-
Mantenha-se dentro dos limites de VRAM para uso interativo. Um modelo de 20B a 140 tokens/seg supera um modelo de 120B a 12 tokens/seg para a maioria dos propósitos práticos.
-
GPT-OSS 20B vence em velocidade pura, mas o Qwen3 14B oferece o melhor equilíbrio entre velocidade e capacidade para tarefas de seguimento de instruções.
-
O offloading de CPU funciona, mas espere quedas de 3 a 10 vezes na velocidade. Aceitável para processamento em lote, frustrante para chat.
-
O tamanho do contexto importa. O contexto de 19K usado aqui aumenta significativamente o uso de VRAM. Reduza o contexto para melhor utilização da GPU.
Para busca impulsionada por IA combinando LLMs locais com resultados da web, veja auto-hospedagem do Perplexica com Ollama.
Para explorar mais benchmarks, compromissos entre VRAM e vazão, e ajuste de desempenho entre Ollama e outros runtimes, confira nosso hub Desempenho de LLMs: Benchmarks, Gargalos e Otimização.
Links Úteis
Recursos Internos
- Folha de dicas do Ollama: Comandos mais úteis do Ollama
- Como o Ollama Lida com Requisições Paralelas
- Como o Ollama está usando os núcleos de Desempenho e Eficiência da CPU Intel
- Hospedagem de LLMs Locais: Guia Completo 2026 - Ollama, vLLM, LocalAI, Jan, LM Studio e Mais