Comparando o desempenho de LLMs no Ollama em GPU com 16GB de VRAM

Teste de velocidade de LLM no RTX 4080 com 16GB de VRAM

Conteúdo da página

Executar modelos de linguagem grandes localmente oferece privacidade, capacidade offline e zero custos de API. Este benchmark revela exatamente o que se pode esperar de 14 LMs populares no Ollama com uma RTX 4080.

Com uma GPU de 16GB de VRAM, enfrentei um compromisso constante: modelos maiores com potencialmente melhor qualidade, ou modelos menores com inferência mais rápida. Para mais informações sobre o desempenho de LLMs — throughput vs. latência, limites de VRAM, solicitações paralelas e benchmarks entre diferentes runtimes — consulte Desempenho de LLMs: Benchmarks, Gargalos & 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), consulte Benchmarks de LLMs com 16 GB de VRAM usando llama.cpp (velocidade e contexto).

Uma vez que o throughput e a divisão de VRAM pareçam aceitáveis, cargas de trabalho estilo agente ainda precisam de presets de temperatura e penalidade sensatos para stacks estilo Qwen e Gemma; consulte Parâmetros de inferência agêntica para Qwen e Gemma.

Desempenho de LLM no Ollama - reclassificação de baratas

TL;DR

Aqui está a tabela comparativa atualizada do desempenho de LLMs na RTX 4080 16GB com Ollama 0.17.7, (09-03-2026) adicionando 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 totalmente na VRAM são dramaticamente mais rápidos. O GPT-OSS 20B atinge 139,93 tokens/seg, enquanto o GPT-OSS 120B com pesado offloading para CPU rasteja a 12,64 tokens/seg — uma diferença de velocidade de 11x.

Configuração do Hardware de Teste

O benchmark foi realizado no seguinte sistema:

  • GPU: NVIDIA RTX 4080 com 16GB de VRAM
  • CPU: Intel Core i7-14700 (8 núcleos P + 12 núcleos E)
  • RAM: 64GB DDR5-6000

Isto representa uma configuração comum de consumidor de alta gama para inferência local de LLMs. Os 16GB de VRAM são a restrição crítica — determinam quais modelos rodam totalmente na GPU versus requerem offloading para CPU.

Compreender como o Ollama usa os núcleos da CPU Intel torna-se importante quando os modelos excedem a capacidade da VRAM, já que o desempenho da CPU impacta diretamente a velocidade de inferência das camadas offloadadas.

Propósito 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 excele em qualidade de linguagem, enquanto o Qwen3 14B oferece seguimento de instruções superior para meus casos de uso específicos.

Este benchmark responde à questão prática: Quão rápido cada modelo pode gerar texto e qual é a penalidade de velocidade por exceder os limites de VRAM?

Os parâmetros de teste foram:

  • Tamanho do contexto: 19.000 tokens. Este é o valor médio nas minhas solicitações Generate.
  • Prompt: “compare o tempo e o clima entre as capitais da 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 versão mais recente no momento do teste. Mais tarde, reexecutou no Ollama v 0.17.7 - para adicionar os modelos Qwen3.5. Para uma referência completa dos comandos do Ollama usados neste benchmark, consulte o Cheat sheet do Ollama.

Para um rápido resumo - instale o Ollama no Linux:

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

Verifique a instalação:

ollama --version

Se você precisar armazenar os modelos em uma unidade diferente devido a restrições de espaço, confira como mover modelos do Ollama para uma unidade diferente.

Modelos Testados

Os seguintes modelos foram benchmarkados, em ordem alfabética:

Modelo Parâmetros Quantização Notas
devstral-small-2:24b 24B Q4_K_M Focado em código
glm-4.7-flash 30B Q4_K_M Modelo de pensamento
gpt-oss:20b 20B Q4_K_M Mais rápido no 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 Maior qualidade, totalmente na GPU
qwen3.5:27b 27B Q4_K_M Excelente qualidade, lento no Ollama
qwen3-vl:30b-a3b 30B Q4_K_M Capacidade de visão
qwen3-coder:30b 30B Q4_K_M Focado 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

Compreendendo o Offloading para 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 massivas de desempenho. Cada geração de token requer transferência de dados entre a memória da CPU e da GPU — um gargalo que se agrava com cada camada offloadada para a CPU.

O padrão é claro pelos nossos resultados:

  • Modelos 100% na GPU: 61-140 tokens/seg
  • Modelos 70-82% na GPU: 19-51 tokens/seg
  • 22% na GPU (majoritariamente CPU): 12,6 tokens/seg

Isto explica por que um modelo de 20B parâmetros pode superar um modelo de 120B por 11x na prática. Se você planeja servir múltiplas solicitações concorrentes, compreender como o Ollama lida com solicitações paralelas torna-se essencial para planejamento de capacidade.

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 de velocidade. Usa apenas 14GB de VRAM, deixando margem 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, consulte Saída Estruturada de LLM 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 enquanto cabe totalmente na VRAM. Uma escolha sólida quando você precisa da qualidade da família Mistral na máxima velocidade.

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 Requerendo Offloading para CPU

qwen3-coder:30b - o mais rápido do conjunto de LLMs de 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 Offloadado

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 na CPU, o Qwen3-VL mantém 50,99 tokens/seg — mais rápido que alguns modelos 100% na GPU. A capacidade de visão 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 acentuada. A 18,51 tokens/seg, parece notavelmente 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 Pensamento 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 (MoE) de 30B-A3B — 30B de parâmetros totais com apenas 3B ativos por token. Como um modelo de “pensamento”, ele gera raciocínio interno antes das respostas. Os 33,86 tokens/seg incluem tanto os tokens de pensamento quanto os de saída. Apesar do offloading para CPU, a arquitetura MoE mantém-o razoavelmente rápido.

qwen3.5:35b - Novo modelo com bom desempenho auto-hospedado

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 em 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 positiva sobre o desempenho deste modelo com o OpenCode. É muito capaz, conhecedor, realmente bom em chamadas de ferramentas, embora seja lento na minha máquina no Ollama. Tentei outras plataformas de auto-hospedagem de LLMs e obtive velocidades muito mais altas. Acho que é hora de deixar o Ollama de lado. Escreverei sobre isso mais tarde.

Recomendações Práticas

Para Chat Interativo

Use modelos que cabem 100% na VRAM:

  1. GPT-OSS 20B — Velocidade máxima (139,93 t/s)
  2. Ministral 3 14B — Boa velocidade com qualidade Mistral (70,13 t/s)
  3. Qwen3 14B — Melhor seguimento de instruções (61,85 t/s)

Para uma melhor experiência de chat, considere Interfaces de Chat de Código Aberto 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, no entanto.

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 preocuparem (consulte 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 rodar LLMs capazes em velocidades impressionantes — se escolher sabiamente. As principais descobertas:

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

  2. GPT-OSS 20B vence em pura velocidade, mas Qwen3 14B oferece o melhor equilíbrio entre velocidade e capacidade para tarefas de seguimento de instruções.

  3. Offloading para CPU funciona mas espere lentidões de 3-10x. Aceitável para processamento em lote, frustrante para chat.

  4. 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 pesquisa alimentada por IA combinando LLMs locais com resultados da web, consulte auto-hospedagem do Perplexica com Ollama.

Para explorar mais benchmarks, compromissos entre VRAM e throughput, e ajuste de desempenho no Ollama e outros runtimes, confira nosso hub de Desempenho de LLMs: Benchmarks, Gargalos & Otimização.

Recursos Internos

Referências Externas

Assinar

Receba novos artigos sobre sistemas, infraestrutura e engenharia de IA.