Avancé 11 minBackends

llama.cpp vs vLLM vs Exllama

Réponse directe

llama.cpp est le moteur portable des usages personnels (GGUF, CPU, Mac, GPU de toutes marques) et celui d'Ollama et de LM Studio. vLLM est fait pour servir de nombreux utilisateurs à la fois sur GPU, avec du batching continu ; Red Hat mesure jusqu'à 793 tokens/s contre 41 pour Ollama sur une A100. ExLlamaV2 est archivé : son développement continue dans ExLlamaV3.

Sous Ollama, LM Studio ou Jan se trouve un moteur d'inférence, et ce moteur détermine les formats acceptés, le matériel utilisable et le comportement sous charge. Ce guide compare llama.cpp, vLLM, ExLlama et SGLang sur des critères vérifiables dans leurs dépôts, corrige des idées reçues, et donne une règle de choix. Il ne publie aucun débit maison : seules des mesures de tiers, attribuées, y figurent.

Par Mohamed Meguedmi·Màj 2026-09-29·Testé sur Windows, macOS, Linux

#Un moteur d'inférence : ce qui change vraiment entre eux

Un moteur d'inférence transforme des tokens d'entrée en tokens de sortie. Les applications que l'on installe (Ollama, LM Studio, Jan) en embarquent un ; les serveurs de production (vLLM, SGLang) en sont un. Trois différences se répercutent sur votre usage : les formats de modèles acceptés, le matériel utilisable, et la façon de gérer plusieurs requêtes en même temps.

Les moteurs en un tableau (dépôts officiels, septembre 2026)
MoteurLicenceFormats et matériel annoncésUsage type
llama.cppMITGGUF ; CPU, Apple Silicon, NVIDIA (CUDA), AMD (HIP), Vulkan, SYCL et d'autresPoste personnel, portable, serveur léger
vLLMApache 2.0Modèles Hugging Face ; FP8, INT4, GPTQ, AWQ, GGUF (expérimental) ; GPU NVIDIA, AMD, Intel, et CPU x86/ARMServir beaucoup d'utilisateurs, production
SGLangApache 2.0Modèles Hugging Face ; FP4, FP8, INT4, AWQ, GPTQServeur haut débit, préfixes partagés
ExLlamaV3MITEXL3 ; GPU grand public NVIDIALatence sur GPU perso, avec TabbyAPI
MLX LMMITApple Silicon uniquementMac : génération et fine-tuning
i
Ollama et LM Studio ne sont pas des moteurs concurrents de ceux-ci
Le dépôt d'Ollama liste llama.cpp sous « Supported backends », et la page d'accueil de LM Studio indique un moteur fondé sur MLX et llama.cpp. Comparer « Ollama vs llama.cpp » revient à comparer une application à son moteur : le guide dédié Ollama contre llama.cpp traite ce cas.

#Le format du modèle décide du moteur possible

Le kit IA Locale

Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.

  • Espace en ligne à vie
  • PDF + fichiers
  • Mises à jour à vie

Avant de comparer des vitesses, vérifiez le format sous lequel le modèle que vous voulez est publié. Un fichier GGUF se charge dans llama.cpp et donc dans Ollama, LM Studio et Jan. Des poids Hugging Face en FP16, FP8 ou quantifiés en AWQ ou GPTQ se chargent dans vLLM ou SGLang. Un modèle converti pour MLX se charge avec MLX LM sur Mac, et un modèle EXL3 avec ExLlamaV3. Changer de moteur revient souvent à retélécharger le modèle dans un autre format.

Format et moteur compatible
FormatMoteur naturelAutre moteur possible
GGUFllama.cpp (et donc Ollama, LM Studio, Jan)vLLM, en mode expérimental
Poids Hugging Face (FP16, FP8)vLLM, SGLangMLX LM après conversion, sur Mac
AWQ, GPTQvLLM, SGLangSelon le moteur, à vérifier
EXL3ExLlamaV3Aucun
MLXMLX LMLM Studio et Jan, qui annoncent MLX

#llama.cpp : le standard portable

llama.cpp est une implémentation en C/C++ sans dépendance, dont l'objectif affiché est l'inférence avec un minimum de configuration sur un large éventail de matériel. Apple Silicon y est traité en priorité (NEON, Accelerate, Metal), les CPU x86 sont pris en charge avec AVX, AVX2, AVX512 et AMX, et les GPU NVIDIA (CUDA), AMD (HIP), Vulkan et SYCL sont supportés. Il propose des quantifications de 1,5 à 8 bits et l'inférence hybride CPU et GPU, qui permet d'exécuter un modèle plus grand que la VRAM disponible.

Idée reçue à corriger : llama.cpp ne se limite pas à une requête à la fois. Son serveur annonce la génération parallèle multi-utilisateurs et le batching continu, activé par défaut, avec des emplacements (slots) réglés par le paramètre --parallel. Il sert donc correctement une petite équipe ; ce qu'il ne cherche pas à égaler, ce sont les fonctions de production à grande échelle de vLLM.

Forces
Portabilité (Mac, Linux, Windows, Android), formats GGUF omniprésents, hybride CPU et GPU, faible dépendance.
Limites
Pas de fonctions de déploiement distribué comparables à celles de vLLM ; réglages (contexte, slots, couches sur GPU) à connaître.
Écosystème
Point d'appui d'Ollama et de LM Studio, cité aussi par Jan.

Pour la compilation avec CUDA, Metal ou Vulkan, consultez les guides de compilation ; le guide complet sur llama.cpp détaille l'usage.

#vLLM : le serveur pour beaucoup d'utilisateurs

vLLM est une bibliothèque d'inférence et de service née au Sky Computing Lab de l'université de Californie à Berkeley. Elle repose sur PagedAttention, qui gère la mémoire des clés et valeurs de l'attention par pages, et sur le batching continu, complétés par le préremplissage par morceaux et le cache de préfixes. Elle annonce des formats FP8, INT4, GPTQ, AWQ et GGUF, l'API compatible OpenAI et une prise en charge des GPU NVIDIA, AMD et Intel ainsi que des CPU x86, ARM et PowerPC.

Deux idées reçues à corriger. Premièrement, vLLM n'est plus réservé à NVIDIA ni sans CPU : son dépôt indique la prise en charge de plusieurs GPU et CPU. Deuxièmement, il n'est plus sans GGUF : sa documentation le décrit comme très expérimental et peu optimisé, utilisable surtout pour réduire l'empreinte mémoire. Pour un usage GGUF quotidien, llama.cpp reste la voie normale.

Forces
Débit sous charge, mémoire du cache gérée par pages, API compatible OpenAI, parallélisme (tensor, pipeline, expert), nombreux formats.
Limites
Plus lourd à installer et à régler que llama.cpp ; pensé pour des serveurs GPU ; le GGUF n'est pas son terrain.
Écosystème
Le choix par défaut quand plusieurs personnes ou applications interrogent le même modèle en même temps.

Le guide sur vLLM explique ce qu'est le moteur ; celui sur son déploiement en production détaille les réglages et la supervision.

#ExLlama : V2 archivé, V3 en développement

Le dépôt d'ExLlamaV2 porte une note indiquant que le projet est archivé pour le moment et que le développement continue dans ExLlamaV3. Beaucoup de comparatifs, dont l'ancienne version de cette page, présentent encore V2 comme l'option de pointe. Le dépôt d'ExLlamaV3 annonce le format de quantification EXL3, l'inférence parallèle par tenseurs et par experts, le délestage CPU pour les modèles à experts, le batching continu, le décodage spéculatif, et une API compatible OpenAI via TabbyAPI, son serveur recommandé.

ExLlamaV3 vise les GPU grand public, pas les serveurs de production ni les Mac. Si vous avez une carte NVIDIA et que vous voulez le meilleur compromis entre qualité et taille, la quantification EXL3 mérite un essai ; vérifiez d'abord que votre modèle figure dans la liste d'architectures du dépôt.

#SGLang, MLX LM et les autres

SGLang
Cadre de service décrit comme visant faible latence et fort débit, de un GPU à de grands clusters. Il annonce RadixAttention pour le cache de préfixes, le batching continu, PagedAttention et le décodage spéculatif. Il concurrence vLLM sur les serveurs ; le guide dédié le détaille.
MLX LM
Paquet Python pour générer du texte et affiner des modèles sur Apple Silicon avec MLX. Il ne fonctionne pas hors Mac. Le guide MLX contre llama.cpp compare les deux sur Mac.
TensorRT-LLM
Moteur de NVIDIA, très performant sur ses cartes mais plus contraignant à mettre en place ; à envisager seulement pour une flotte NVIDIA en production.

#Que disent les mesures publiées

Les débits dépendent du matériel, du modèle, de la quantification, de la longueur des requêtes et de la version du moteur, et évoluent chaque mois. Ce guide ne présente donc aucune mesure maison et vous invite à vous méfier des tableaux de tokens par seconde sans protocole. Une source de tiers publie toutefois un protocole complet : Red Hat, en août 2025.

Mesure de Red Hat : vLLM contre Ollama sur une A100 (août 2025)
ÉlémentValeur publiée par Red Hat
MatérielUne carte NVIDIA A100-PCIE-40GB
ModèleLlama 3.1 8B Instruct (FP16 côté Ollama)
VersionsvLLM 0.9.1 ; Ollama 0.9.2
Outil de testGuideLLM 0.2.1, de 1 à 256 utilisateurs simultanés
Débit maximal793 tokens/s pour vLLM contre 41 pour Ollama
Latence P99 au pic80 ms pour vLLM contre 673 ms pour Ollama

À lire avec réserves : l'article est rattaché aux produits Red Hat AI, donc issu d'un acteur commercial du domaine ; les tests portent sur Ollama et non sur llama.cpp directement, avec des réglages par défaut ; ils datent de plusieurs versions. Le message robuste est qualitatif : sous forte concurrence, un moteur de service à batching agressif surpasse une application pensée pour un utilisateur. Pour un usage seul, la différence de débit n'est pas ce qui vous pénalise.

!
Pas de tableau de tokens par seconde sur cette page
L'ancienne version de ce guide donnait des débits et des temps de première réponse pour trois moteurs. Ils n'étaient rattachés à aucune source et ont été retirés. Pour comparer sur votre machine, mesurez vous-même avec votre modèle et vos requêtes.

#Mémoire : ce que chaque moteur réserve

La mémoire d'un modèle se compose des poids, du cache de contexte (KV) et d'une marge. Les poids se calculent : un modèle de 8 milliards de paramètres occupe environ 16 Go en FP16 (8 milliards fois 2 octets) et environ 5 Go en Q4, repère du site. Le cache de contexte croît avec la longueur de conversation et le nombre de requêtes simultanées.

Comment chaque moteur traite la mémoire du contexte
MoteurComportement documentéConséquence pratique
llama.cppContexte réglé par l'utilisateur ; slots parallèles avec cache unifiéVous fixez la taille de contexte et le nombre de slots
vLLMPré-alloue une part de la mémoire GPU au cache, 92 % par défautSur une carte de 24 Go, environ 22 Go sont réservés d'emblée
ExLlamaV3Quantification de cache de 2 à 8 bitsLe cache peut être compressé pour tenir dans la VRAM

Le point à retenir : vLLM réserve la mémoire dès le départ, ce qui le rend efficace pour servir mais peu adapté à une carte partagée avec d'autres applications. Le paramètre gpu_memory_utilization se réduit si la carte sert aussi à autre chose.

#Quel moteur pour quel usage

Décision par situation
Votre situationMoteur conseilléRaison
Usage personnel sur Mac, PC ou portablellama.cpp, via Ollama ou LM StudioPortable et simple
Mac Apple Silicon, recherche de débitMLX LM ou llama.cppMLX est conçu pour Apple Silicon ; comparer sur vos modèles
Une équipe ou une application interroge le modèlevLLM ou SGLangBatching continu, pages de cache
Une carte NVIDIA grand public, qualité maximaleExLlamaV3 avec TabbyAPIQuantification EXL3
Matériel mixte, CPU, AMD, Intelllama.cppLarge couverture matérielle
Modèle uniquement en GGUFllama.cppvLLM ne le gère que de façon expérimentale

Les moteurs peuvent cohabiter : Ollama pour le chat de tous les jours, vLLM lancé à la demande pour traiter un lot d'extractions. Il n'y a pas de raison de n'en garder qu'un si les usages diffèrent. Prévoyez seulement l'espace disque pour un même modèle stocké dans deux formats, par exemple un fichier GGUF pour le chat et des poids Hugging Face pour le serveur.

Questions fréquentes sur les moteurs d'inférence
vLLM ou llama.cpp : lequel choisir ?+
llama.cpp pour un usage personnel ou un matériel varié, y compris CPU et Mac. vLLM pour servir plusieurs utilisateurs sur GPU, grâce au batching continu et à la gestion paginée de la mémoire. Si vous êtes seul devant votre machine, llama.cpp, via Ollama ou LM Studio, suffit presque toujours.
Ollama utilise-t-il llama.cpp ?+
Le dépôt d'Ollama liste llama.cpp sous « Supported backends ». Ollama ajoute par-dessus la gestion des modèles, une API et une application. Comparer Ollama et llama.cpp compare donc une application et son moteur, avec des réglages par défaut, des formats et des fonctions qui diffèrent ; pour le détail, voir le guide dédié à cette comparaison.
vLLM peut-il faire tourner des fichiers GGUF ?+
Oui, mais sa documentation décrit ce support comme très expérimental et peu optimisé, utile surtout pour réduire la mémoire. Il passe désormais par un plugin séparé. Pour vLLM, préférez des poids Hugging Face en FP16, FP8 ou en quantification AWQ ou GPTQ, et gardez le GGUF pour llama.cpp.
ExLlamaV2 est-il encore maintenu ?+
Non : son dépôt affiche qu'il est archivé pour le moment et que le développement continue dans ExLlamaV3. ExLlamaV3 propose le format EXL3 et un serveur recommandé, TabbyAPI. Si vous partiez d'un tutoriel sur ExLlamaV2 et le format EXL2, cherchez l'équivalent V3 avant de commencer.
Quel moteur est le plus rapide ?+
Cela dépend du matériel, du modèle et du nombre d'utilisateurs simultanés. Sous forte concurrence, Red Hat mesure un net avantage à vLLM sur Ollama. Pour une seule requête à la fois, les écarts sont moindres et dépendent du matériel. Mesurez avec votre propre modèle avant de décider.
Faut-il un GPU NVIDIA pour vLLM ?+
Non. Le dépôt de vLLM annonce la prise en charge des GPU NVIDIA, AMD et Intel ainsi que des CPU x86, ARM et PowerPC, avec des extensions pour d'autres accélérateurs. La couverture des fonctions varie selon le matériel : consultez la documentation d'installation de votre plateforme avant de vous engager.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.