Avançado 11 minBackends

llama.cpp vs vLLM vs Exllama

Resposta direta

O llama.cpp é o motor portátil para uso pessoal (GGUF, CPU, Mac, GPUs de todas as marcas) e também o motor do Ollama e do LM Studio. O vLLM foi feito para atender muitos usuários ao mesmo tempo em GPU, com batching contínuo; a Red Hat mede até 793 tokens/s, contra 41 para o Ollama em uma A100. O ExLlamaV2 está arquivado: seu desenvolvimento continua no ExLlamaV3.

Por trás do Ollama, do LM Studio ou do Jan há um motor de inferência, e esse motor determina os formatos aceitos, o hardware que pode ser usado e o comportamento sob carga. Este guia compara llama.cpp, vLLM, ExLlama e SGLang com base em critérios verificáveis em seus repositórios, corrige ideias equivocadas e apresenta uma regra de escolha. Ele não publica nenhuma taxa de processamento medida pela própria equipe: só inclui medições de terceiros, com as respectivas fontes identificadas.

Por Mohamed Meguedmi·Atualização 2026-09-29·Testado no Windows, macOS e Linux

#Um motor de inferência: o que realmente difere entre eles

Um motor de inferência transforma tokens de entrada em tokens de saída. Os aplicativos que você instala (Ollama, LM Studio, Jan) incorporam um; os servidores de produção (vLLM, SGLang) são motores de inferência. Três diferenças afetam seu uso: os formatos de modelos aceitos, o hardware que pode ser utilizado e a forma de gerenciar várias requisições ao mesmo tempo.

Os motores em uma tabela (repositórios oficiais, setembro de 2026)
MotorLicençaFormatos e hardware anunciadosUso típico
llama.cppMITGGUF; CPU, Apple Silicon, NVIDIA (CUDA), AMD (HIP), Vulkan, SYCL e outrosComputador pessoal, notebook, servidor leve
vLLMApache 2.0Modelos Hugging Face; FP8, INT4, GPTQ, AWQ, GGUF (experimental); GPU NVIDIA, AMD, Intel e CPU x86/ARMAtender muitos usuários, produção
SGLangApache 2.0Modelos Hugging Face; FP4, FP8, INT4, AWQ, GPTQServidor de alta vazão, prefixos compartilhados
ExLlamaV3MITEXL3; GPUs NVIDIA para o consumidor finalLatência na GPU pessoal, com TabbyAPI
MLX LMMITApenas Apple SiliconMac: geração e fine-tuning
i
Ollama e LM Studio não são motores concorrentes desses
O repositório do Ollama lista o llama.cpp em « Supported backends », e a página inicial do LM Studio indica um motor baseado em MLX e llama.cpp. Comparar « Ollama vs llama.cpp » equivale a comparar uma aplicação com seu motor: o guia dedicado Ollama contra llama.cpp trata desse caso.

#O formato do modelo determina qual mecanismo pode ser usado

O kit IA Local

Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias

Antes de comparar velocidades, verifique o formato em que o modelo que você deseja está publicado. Um arquivo GGUF é carregado no llama.cpp e, portanto, no Ollama, no LM Studio e no Jan. Pesos do Hugging Face em FP16, FP8 ou quantizados em AWQ ou GPTQ são carregados no vLLM ou no SGLang. Um modelo convertido para MLX é carregado com MLX LM no Mac, e um modelo EXL3, com ExLlamaV3. Mudar de motor geralmente significa baixar novamente o modelo em outro formato.

Formato e motor compatível
FormatoMotor mais indicadoOutro motor possível
GGUFllama.cpp (e portanto Ollama, LM Studio, Jan)vLLM, em modo experimental
Pesos do Hugging Face (FP16, FP8)vLLM, SGLangMLX LM após conversão, no Mac
AWQ, GPTQvLLM, SGLangDepende do motor; verificar
EXL3ExLlamaV3Nenhum
MLXMLX LMLM Studio e Jan, que anunciam MLX

#llama.cpp: o padrão portátil

O llama.cpp é uma implementação em C/C++ sem dependências, cujo objetivo declarado é a inferência com o mínimo de configuração em uma ampla variedade de hardware. O Apple Silicon recebe prioridade (NEON, Accelerate, Metal), as CPUs x86 são compatíveis com AVX, AVX2, AVX512 e AMX, e há suporte a GPUs NVIDIA (CUDA), AMD (HIP), Vulkan e SYCL. Ele oferece quantizações de 1,5 a 8 bits e inferência híbrida entre CPU e GPU, o que permite executar um modelo maior do que a VRAM disponível.

Ideia errada a corrigir: o llama.cpp não se limita a uma requisição de cada vez. Seu servidor anuncia geração paralela multiusuário e batching contínuo, ativado por padrão, com slots configurados pelo parâmetro --parallel. Ele atende, portanto, adequadamente uma pequena equipe; o que ele não busca igualar são as funcionalidades de produção em grande escala do vLLM.

Pontos fortes
Portabilidade (Mac, Linux, Windows, Android), formatos GGUF amplamente disponíveis, execução híbrida em CPU e GPU, poucas dependências.
Limites
Sem recursos de implantação distribuída comparáveis aos do vLLM; é preciso conhecer as configurações (contexto, slots, camadas na GPU).
Ecossistema
Base de apoio do Ollama e do LM Studio, também citada pelo Jan.

Para compilação com CUDA, Metal ou Vulkan, consulte os guias de compilação; o guia completo sobre llama.cpp detalha o uso.

#vLLM: o servidor para muitos usuários

vLLM é uma biblioteca de inferência e disponibilização de modelos criada no Sky Computing Lab da Universidade da Califórnia em Berkeley. Ela se baseia no PagedAttention, que gerencia por páginas a memória das chaves e dos valores da atenção, e no batching contínuo, complementados pelo pré-preenchimento em blocos e pelo cache de prefixos. Ela anuncia suporte aos formatos FP8, INT4, GPTQ, AWQ e GGUF, uma API compatível com a API da OpenAI e suporte a GPUs NVIDIA, AMD e Intel, além de CPUs x86, ARM e PowerPC.

Duas ideias equivocadas a corrigir. Primeiro, o vLLM não é mais exclusivo da NVIDIA e também tem suporte a CPUs: seu repositório indica suporte a várias GPUs e CPUs. Segundo, ele já oferece suporte a GGUF: sua documentação descreve esse suporte como muito experimental e pouco otimizado, utilizável principalmente para reduzir o uso de memória. Para o uso diário de GGUF, o llama.cpp continua sendo o caminho habitual.

Pontos fortes
Taxa de processamento sob carga, memória do cache gerenciada por páginas, API compatível com OpenAI, paralelismo (de tensores, de pipeline e de especialistas), diversos formatos.
Limites
Mais trabalhoso de instalar e configurar do que o llama.cpp; pensado para servidores com GPU; GGUF não é seu ponto forte.
Ecossistema
Escolha padrão quando várias pessoas ou aplicações consultam o mesmo modelo ao mesmo tempo.

O guia sobre o vLLM explica o que é o motor; o guia sobre sua implantação em produção detalha as configurações e o monitoramento.

#ExLlama: V2 arquivada, V3 em desenvolvimento

O repositório de ExLlamaV2 possui uma nota indicando que o projeto está arquivado por enquanto e que o desenvolvimento continua em ExLlamaV3. Muitos comparativos, incluindo a versão antiga desta página, ainda apresentam a V2 como a opção mais avançada. O repositório de ExLlamaV3 anuncia o formato de quantização EXL3, inferência paralela por tensores e por especialistas, offload para a CPU em modelos com especialistas, batching contínuo, decodificação especulativa e uma API compatível com OpenAI via TabbyAPI, seu servidor recomendado.

ExLlamaV3 é voltado para GPUs de consumo, não para servidores de produção nem Macs. Se você tem uma placa NVIDIA e quer o melhor equilíbrio entre qualidade e tamanho, vale a pena testar a quantização EXL3; verifique primeiro se o seu modelo consta na lista de arquiteturas do repositório.

#SGLang, MLX LM e os outros

SGLang
Framework para servir modelos, descrito como voltado para baixa latência e alto throughput, desde uma GPU até grandes clusters. Anuncia RadixAttention para o cache de prefixos, batching contínuo, PagedAttention e decodificação especulativa. Concorre com o vLLM em servidores; o guia dedicado o apresenta em detalhes.
MLX LM
Pacote Python para gerar texto e fazer ajuste fino de modelos no Apple Silicon com MLX. Não funciona fora do Mac. O guia MLX versus llama.cpp compara os dois no Mac.
TensorRT-LLM
Motor da NVIDIA, com alto desempenho em suas placas, mas com mais exigências de configuração; considerar apenas para um conjunto de placas NVIDIA em produção.

#O que dizem as medições publicadas

As taxas de geração dependem do hardware, do modelo, da quantização, do comprimento das requisições e da versão do motor, e evoluem todos os meses. Este guia, portanto, não apresenta nenhuma medição própria e recomenda que você desconfie de tabelas de tokens por segundo sem protocolo. Uma fonte de terceiros, no entanto, publica um protocolo completo: Red Hat, em agosto de 2025.

Medição da Red Hat: vLLM versus Ollama em uma A100 (agosto de 2025)
ElementoValor divulgado por Red Hat
HardwareUma placa NVIDIA A100-PCIE-40GB
ModeloLlama 3.1 8B Instruct (FP16 no Ollama)
VersõesvLLM 0.9.1 ; Ollama 0.9.2
Ferramenta de testeGuideLLM 0.2.1, de 1 a 256 usuários simultâneos
Taxa de processamento máxima793 tokens/s com vLLM contra 41 para Ollama
Latência P99 no pico80 ms para vLLM contra 673 ms para Ollama

Ler com ressalvas: o artigo está ligado aos produtos Red Hat AI e, portanto, vem de uma empresa do setor; os testes são feitos com Ollama, não diretamente com llama.cpp, e usam configurações padrão; eles foram realizados há várias versões. A conclusão sólida é qualitativa: com muitas solicitações simultâneas, um mecanismo de serviço com batching agressivo supera uma aplicação projetada para um único usuário. Para uso individual, a diferença na taxa de processamento não é o que prejudica você.

!
Sem tabela de tokens por segundo nesta página
A versão anterior deste guia apresentava taxas de geração e tempos até a primeira resposta para três motores. Esses dados não estavam vinculados a nenhuma fonte e foram removidos. Para comparar na sua máquina, faça suas próprias medições com seu modelo e suas requisições.

#Memória: o que cada motor reserva

A memória de um modelo é composta pelos pesos, pelo cache de contexto (KV) e por uma margem. É possível calcular o tamanho dos pesos: um modelo com 8 bilhões de parâmetros ocupa cerca de 16 GB em FP16 (8 bilhões vezes 2 bytes) e cerca de 5 GB em Q4, valor de referência do site. O cache de contexto aumenta com o comprimento da conversa e o número de requisições simultâneas.

Como cada motor trata a memória do contexto
MotorComportamento documentadoConsequência prática
llama.cppContexto definido pelo usuário; slots paralelos com cache unificadoVocê define o tamanho do contexto e o número de slots
vLLMAloca previamente uma parte da memória GPU para o cache, 92% por padrãoEm uma placa de 24 GB, cerca de 22 GB são reservados de forma imediata
ExLlamaV3Quantização de cache de 2 a 8 bitsO cache pode ser comprimido para caber na VRAM

Ponto principal: o vLLM reserva a memória desde o início, o que o torna eficiente para atender a requisições, mas pouco adequado para uma placa compartilhada com outros aplicativos. Reduza o valor do parâmetro gpu_memory_utilization se a placa também for usada para outras tarefas.

#Qual motor para qual uso

Decisão por situação
Sua situaçãoMotor recomendadoMotivo
Uso pessoal em Mac, PC ou notebookllama.cpp, via Ollama ou LM StudioPortátil e simples
Mac Apple Silicon, busca por maior taxa de processamentoMLX LM ou llama.cppMLX foi projetado para Apple Silicon; comparar usando seus modelos
Uma equipe ou uma aplicação consulta o modelovLLM ou SGLangBatching contínuo, páginas de cache
Uma placa NVIDIA de consumo, qualidade máximaExLlamaV3 com TabbyAPIQuantização EXL3
Hardware misto, CPU, AMD, Intelllama.cppAmplo suporte a hardware
Modelo apenas em GGUFllama.cppO vLLM só oferece suporte a isso de forma experimental.

Os motores podem coexistir: Ollama para o chat diário, vLLM iniciado sob demanda para processar um lote de extrações. Não há razão para manter apenas um se os usos forem diferentes. Apenas reserve espaço em disco para o mesmo modelo armazenado em dois formatos, por exemplo, um arquivo GGUF para o chat e pesos Hugging Face para o servidor.

Perguntas frequentes sobre os motores de inferência
vLLM ou llama.cpp: qual escolher?+
llama.cpp para uso pessoal ou em hardware variado, incluindo CPU e Mac. vLLM para atender vários usuários em GPU, graças ao batching contínuo e à gestão paginada da memória. Se você está sozinho diante da sua máquina, llama.cpp, via Ollama ou LM Studio, quase sempre é suficiente.
O Ollama utiliza o llama.cpp?+
O repositório do Ollama lista llama.cpp na seção “Supported backends”. O Ollama acrescenta a essa base o gerenciamento de modelos, uma API e uma aplicação. Comparar Ollama e llama.cpp é, portanto, comparar uma aplicação e seu motor, com configurações padrão, formatos e funções diferentes; para mais detalhes, consulte o guia dedicado a essa comparação.
O vLLM consegue rodar arquivos GGUF?+
Sim, mas a documentação do vLLM descreve esse suporte como muito experimental e pouco otimizado, útil principalmente para reduzir o consumo de memória. Esse suporte agora é oferecido por um plugin separado. Para vLLM, prefira pesos do Hugging Face em FP16, FP8 ou com quantização AWQ ou GPTQ e reserve o GGUF para llama.cpp.
O ExLlamaV2 ainda é mantido?+
Não: seu repositório indica que está arquivado no momento e que o desenvolvimento continua no ExLlamaV3. O ExLlamaV3 oferece o formato EXL3 e um servidor recomendado, o TabbyAPI. Se você estava começando por um tutorial sobre ExLlamaV2 e o formato EXL2, procure o equivalente para a V3 antes de começar.
Qual motor é o mais rápido?+
Isso depende do hardware, do modelo e do número de usuários simultâneos. Com muitas requisições simultâneas, a Red Hat mede uma vantagem clara do vLLM sobre o Ollama. Para uma única requisição por vez, as diferenças são menores e dependem do hardware. Meça com seu próprio modelo antes de decidir.
É necessário um GPU NVIDIA para vLLM?+
Não. O repositório do vLLM anuncia suporte a GPUs NVIDIA, AMD e Intel, bem como a CPUs x86, ARM e PowerPC, com extensões para outros aceleradores. A cobertura das funcionalidades varia conforme o hardware: consulte a documentação de instalação da sua plataforma antes de se comprometer.
Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.