llama.cpp vs. vLLM vs. Exllama
llama.cpp ist die portable Engine für den persönlichen Gebrauch (GGUF, CPU, Mac, GPUs aller Marken) und bildet auch die Grundlage von Ollama und LM Studio. vLLM ist dafür ausgelegt, mit kontinuierlichem Batching viele Nutzer gleichzeitig auf GPUs zu bedienen; Red Hat misst auf einer A100 bis zu 793 Tokens/s gegenüber 41 bei Ollama. ExLlamaV2 ist archiviert: Die Entwicklung wird in ExLlamaV3 fortgesetzt.
Hinter Ollama, LM Studio oder Jan steckt eine Inferenz-Engine, und diese bestimmt die akzeptierten Formate, die nutzbare Hardware und das Verhalten unter Last. Dieser Leitfaden vergleicht llama.cpp, vLLM, ExLlama und SGLang anhand von Kriterien, die sich in ihren Repositories überprüfen lassen, korrigiert verbreitete Irrtümer und gibt eine Regel für die Auswahl. Er veröffentlicht keine eigenen Durchsatzmessungen: Aufgeführt werden ausschließlich Messungen Dritter mit Quellenangabe.
#Inferenz-Engines: Was sie wirklich unterscheidet
Eine Inferenz-Engine wandelt Eingabetokens in Ausgabetokens um. Die Anwendungen, die Sie installieren (Ollama, LM Studio, Jan), enthalten eine solche Engine; Produktionsserver (vLLM, SGLang) sind selbst eine. Drei Unterschiede wirken sich auf Ihre Nutzung aus: die unterstützten Modellformate, die nutzbare Hardware und die Art, wie mehrere Anfragen gleichzeitig verarbeitet werden.
| Engine | Lizenz | Angekündigte Formate und Hardware | Typische Nutzung |
|---|---|---|---|
| llama.cpp | MIT | GGUF; CPU, Apple Silicon, NVIDIA (CUDA), AMD (HIP), Vulkan, SYCL und andere | Persönlicher Rechner, Laptop, kleiner Server |
| vLLM | Apache 2.0 | Hugging-Face-Modelle; FP8, INT4, GPTQ, AWQ, GGUF (experimentell); GPUs von NVIDIA, AMD und Intel sowie x86-/ARM-CPUs | Viele Nutzer bedienen, Produktivbetrieb |
| SGLang | Apache 2.0 | Hugging Face-Modelle; FP4, FP8, INT4, AWQ, GPTQ | Server mit hohem Durchsatz, gemeinsam genutzte Präfixe |
| ExLlamaV3 | MIT | EXL3; NVIDIA-GPUs für den Consumer-Markt | Latenz auf der eigenen GPU, mit TabbyAPI |
| MLX LM | MIT | Nur Apple Silicon | Mac: Generierung und Fine-Tuning |
#Das Modellformat bestimmt, welche Inferenz-Engine verwendet werden kann
Ihr privates, kostenloses ChatGPT auf Ihrem Rechner in einer Stunde – mit LM Studio, Ollama, Open WebUI und Ihren Dokumenten, ganz ohne Cloud.
- Lebenslanger Online-Zugang
- PDF + Dateien
- Erstattung binnen 30 Tagen
Bevor Sie Geschwindigkeiten vergleichen, prüfen Sie, in welchem Format das gewünschte Modell veröffentlicht ist. Eine GGUF-Datei lässt sich in llama.cpp und damit auch in Ollama, LM Studio und Jan laden. Modellgewichte von Hugging Face in FP16, FP8 oder mit AWQ oder GPTQ quantisiert lassen sich in vLLM oder SGLang laden. Ein für MLX konvertiertes Modell lässt sich auf dem Mac mit MLX LM laden, ein EXL3-Modell mit ExLlamaV3. Ein Wechsel der Inferenz-Engine bedeutet oft, das Modell in einem anderen Format erneut herunterzuladen.
| Format | Naheliegende Inferenz-Engine | Andere mögliche Inferenz-Engine |
|---|---|---|
| GGUF | llama.cpp (und damit Ollama, LM Studio, Jan) | vLLM im experimentellen Modus |
| Modellgewichte von Hugging Face (FP16, FP8) | vLLM, SGLang | MLX LM nach der Konvertierung, auf dem Mac |
| AWQ, GPTQ | vLLM, SGLang | Je nach Inferenz-Engine; zu prüfen |
| EXL3 | ExLlamaV3 | Keine |
| MLX | MLX LM | LM Studio und Jan, die MLX ankündigen |
#llama.cpp: der portable Standard
llama.cpp ist eine C/C++-Implementierung ohne Abhängigkeiten, deren erklärtes Ziel es ist, Inferenz mit minimalem Konfigurationsaufwand auf einem breiten Spektrum an Hardware zu ermöglichen. Apple Silicon wird dabei vorrangig berücksichtigt (NEON, Accelerate, Metal), x86-CPUs werden mit AVX, AVX2, AVX512 und AMX unterstützt, ebenso NVIDIA-GPUs (CUDA), AMD-GPUs (HIP) sowie Vulkan und SYCL. llama.cpp bietet Quantisierungen von 1,5 bis 8 Bit und hybride Inferenz auf CPU und GPU, mit der sich ein Modell ausführen lässt, dessen Speicherbedarf den verfügbaren VRAM übersteigt.
Ein verbreiteter Irrtum muss korrigiert werden: llama.cpp ist nicht auf eine Anfrage gleichzeitig beschränkt. Sein Server bietet laut Beschreibung parallele Generierung für mehrere Nutzer und kontinuierliches Batching, das standardmäßig aktiviert ist; die Anzahl der Slots wird über den Parameter --parallel festgelegt. Damit eignet er sich durchaus für ein kleines Team; mit den Funktionen von vLLM für den Produktionsbetrieb in großem Maßstab will er jedoch nicht gleichziehen.
- Stärken
- Portabilität (Mac, Linux, Windows, Android), weit verbreitete GGUF-Formate, hybrider CPU- und GPU-Modus, geringe Abhängigkeit.
- Grenzen
- Keine Funktionen für verteilte Bereitstellung, die mit denen von vLLM vergleichbar wären; Kenntnisse der Einstellungen (Kontext, Slots, Schichten auf der GPU) erforderlich.
- Ökosystem
- Grundlage von Ollama und LM Studio, auch von Jan genannt.
Zum Kompilieren mit CUDA, Metal oder Vulkan lesen Sie die Kompilierungsanleitungen; der vollständige Leitfaden zu llama.cpp erläutert die Nutzung im Detail.
#vLLM: der Server für viele Benutzer
vLLM ist eine Bibliothek für Inferenz und die Bereitstellung von Modellen als Dienst, die am Sky Computing Lab der University of California in Berkeley entstand. Sie basiert auf PagedAttention, das den Speicher für die Schlüssel und Werte des Attention-Mechanismus seitenweise verwaltet, und auf kontinuierlichem Batching, ergänzt durch stückweises Prefill und Prefix-Caching. Sie gibt Unterstützung für die Formate FP8, INT4, GPTQ, AWQ und GGUF, eine OpenAI-kompatible API sowie für GPUs von NVIDIA, AMD und Intel und CPUs der Architekturen x86, ARM und PowerPC an.
Zwei verbreitete Irrtümer sind zu korrigieren. Erstens ist vLLM nicht mehr auf NVIDIA beschränkt und unterstützt inzwischen auch CPUs: Sein Repository nennt die Unterstützung verschiedener GPUs und CPUs. Zweitens unterstützt vLLM inzwischen auch GGUF: Die Dokumentation beschreibt diese Unterstützung als sehr experimentell und wenig optimiert; sie ist vor allem zur Verringerung des Speicherbedarfs nutzbar. Für den täglichen Einsatz von GGUF bleibt llama.cpp der übliche Weg.
- Stärken
- Durchsatz unter Last, seitenweise Verwaltung des Cache-Speichers, OpenAI-kompatible API, Parallelisierung (Tensor, Pipeline, Experten), zahlreiche Formate.
- Grenzen
- Aufwendiger zu installieren und zu konfigurieren als llama.cpp; für GPU-Server konzipiert; GGUF gehört nicht zu seinen Stärken.
- Ökosystem
- Die Standardwahl, wenn mehrere Personen oder Anwendungen gleichzeitig dasselbe Modell abfragen.
Der Leitfaden zu vLLM erklärt, was die Inferenz-Engine ist; der Leitfaden zu ihrem Einsatz in der Produktion beschreibt die Einstellungen und die Überwachung im Detail.
#ExLlama: V2 archiviert, V3 im Entwicklungsstadium
Im Repository von ExLlamaV2 steht ein Hinweis, dass das Projekt vorerst archiviert ist und die Entwicklung in ExLlamaV3 fortgesetzt wird. Viele Vergleiche, darunter die frühere Version dieser Seite, stellen V2 weiterhin als die fortschrittlichste Option dar. Das Repository von ExLlamaV3 kündigt das Quantisierungsformat EXL3, tensor- und expertenparallele Inferenz, CPU-Offloading für Expertenmodelle, kontinuierliches Batching, spekulatives Decoding und eine OpenAI-kompatible API über TabbyAPI, den empfohlenen Server, an.
ExLlamaV3 richtet sich an Consumer-GPUs, nicht an Produktionsserver oder Macs. Wenn Sie eine NVIDIA-Grafikkarte besitzen und den besten Kompromiss zwischen Qualität und Größe suchen, ist die EXL3-Quantisierung einen Versuch wert; prüfen Sie zuerst, ob Ihr Modell in der Architekturliste des Repositorys aufgeführt ist.
#SGLang, MLX LM und die anderen
- SGLang
- Serving-Framework, das als auf geringe Latenz und hohen Durchsatz ausgelegt beschrieben wird, von einer einzelnen GPU bis hin zu großen Clustern. Es wirbt mit RadixAttention für das Präfix-Caching, kontinuierlichem Batching, PagedAttention und spekulativem Decoding. Auf Servern konkurriert es mit vLLM; der eigens dafür vorgesehene Leitfaden erläutert es im Detail.
- MLX LM
- Python-Paket zur Textgenerierung und zum Fine-Tuning von Modellen auf Apple Silicon mit MLX. Es funktioniert nur auf dem Mac. Der Leitfaden MLX vs. llama.cpp vergleicht die beiden auf dem Mac.
- TensorRT-LLM
- Engine von NVIDIA, auf NVIDIA-Karten sehr leistungsfähig, aber aufwendiger einzurichten; nur für eine Flotte von NVIDIA-GPUs im Produktionsbetrieb in Betracht ziehen.
#Was die veröffentlichten Messungen zeigen
Die Durchsatzraten hängen von der Hardware, dem Modell, der Quantisierung, der Länge der Anfragen und der Version der Engine ab und verändern sich jeden Monat. Dieser Leitfaden enthält daher keine eigenen Messungen und empfiehlt Ihnen, Tabellen mit Tokens pro Sekunde ohne dokumentiertes Messverfahren skeptisch zu betrachten. Ein Drittanbieter hat jedoch ein vollständiges Messverfahren veröffentlicht: Red Hat im August 2025.
| Element | Von Red Hat veröffentlichter Wert |
|---|---|
| Hardware | Eine NVIDIA A100-PCIE-40GB-Karte |
| Modell | Llama 3.1 8B Instruct (FP16 bei Ollama) |
| Versionen | vLLM 0.9.1; Ollama 0.9.2 |
| Testwerkzeug | GuideLLM 0.2.1, 1 bis 256 Benutzer gleichzeitig |
| Maximaler Durchsatz | 793 Tokens/s für vLLM gegenüber 41 für Ollama |
| P99-Latenz im Hochlastfall | 80 ms für vLLM gegenüber 673 ms für Ollama |
Mit Vorbehalt zu lesen: Der Artikel ist den Produkten von Red Hat AI zugeordnet und stammt somit von einem kommerziellen Anbieter in diesem Bereich; die Tests betreffen Ollama und nicht direkt llama.cpp und wurden mit Standardeinstellungen durchgeführt; seitdem sind mehrere Versionen erschienen. Die belastbare Aussage ist qualitativer Natur: Bei vielen gleichzeitigen Anfragen übertrifft eine Serving-Engine mit aggressivem Batching eine Anwendung, die für einen einzelnen Nutzer konzipiert ist. Bei alleiniger Nutzung ist der Durchsatzunterschied nicht der Faktor, der Sie ausbremst.
#Speicher: Was jede Engine reserviert
Der Speicherbedarf eines Modells setzt sich aus den Gewichten, dem Kontext-Cache (KV) und einer Reserve zusammen. Die Größe der Gewichte lässt sich berechnen: Ein Modell mit 8 Milliarden Parametern benötigt etwa 16 GB in FP16 (8 Milliarden mal 2 Byte) und etwa 5 GB in Q4 – ein Richtwert dieser Website. Der Kontext-Cache wächst mit der Gesprächslänge und der Anzahl gleichzeitiger Anfragen.
| Engine | Dokumentiertes Verhalten | Praktische Konsequenz |
|---|---|---|
| llama.cpp | Benutzerdefinierter Kontext; parallele Slots mit einem gemeinsamen Cache | Sie legen die Kontextgröße und die Anzahl der Slots fest |
| vLLM | Reserviert vorab einen Teil des GPU-Speichers für den Cache, standardmäßig 92 % | Auf einer Karte mit 24 GB werden etwa 22 GB bereits standardmäßig reserviert |
| ExLlamaV3 | Cache-Quantisierung von 2 bis 8 Bit | Der Cache kann komprimiert werden, um in die VRAM zu passen |
Merken Sie sich: vLLM reserviert den Speicher von Anfang an. Das macht es für den Inferenzbetrieb effizient, aber wenig geeignet für eine Grafikkarte, die auch von anderen Anwendungen genutzt wird. Reduzieren Sie den Parameter gpu_memory_utilization, wenn die Karte auch anderen Zwecken dient.
#Welche Inferenz-Engine für welchen Einsatz
| Ihre Situation | Empfohlene Inferenz-Engine | Grund |
|---|---|---|
| Persönlicher Gebrauch auf Mac, PC oder Laptop | llama.cpp über Ollama oder LM Studio | Portabel und einfach |
| Mac mit Apple Silicon, hoher Durchsatz gewünscht | MLX LM oder llama.cpp | MLX ist für Apple Silicon konzipiert; mit Ihren Modellen vergleichen |
| Ein Team oder eine Anwendung fragt das Modell ab | vLLM oder SGLang | Kontinuierliches Batching, Cache-Seiten |
| Eine NVIDIA-Grafikkarte für den Verbrauchermarkt, maximale Qualität | ExLlamaV3 mit TabbyAPI | Quantisierung EXL3 |
| Gemischte Hardware, CPU, AMD, Intel | llama.cpp | Breite Hardwareunterstützung |
| Modell ausschließlich im GGUF-Format | llama.cpp | vLLM unterstützt dies nur experimentell |
Die Engines können nebeneinander betrieben werden: Ollama für den alltäglichen Chat, vLLM bei Bedarf zum Verarbeiten eines Stapels von Extraktionsaufgaben. Es gibt keinen Grund, nur eine zu behalten, wenn sich die Einsatzbereiche unterscheiden. Planen Sie lediglich genügend Festplattenspeicher für dasselbe Modell in zwei Formaten ein, etwa eine GGUF-Datei für den Chat und Hugging-Face-Gewichte für den Server.
vLLM oder llama.cpp: Was sollte man wählen?+
Verwendet Ollama llama.cpp?+
Kann vLLM Modelle im GGUF-Format ausführen?+
Wird ExLlamaV2 weiterhin gepflegt?+
Welches Inferenz-Backend ist am schnellsten?+
Ist eine NVIDIA-GPU für vLLM erforderlich?+
- Ollama gegenüber llama.cpp
- vLLM: Der vollständige Leitfaden
- SGLang als lokaler LLM-Server
- MLX vs. llama.cpp auf dem Mac
- llama.cpp: der umfassende Leitfaden
- Ollama, LM Studio, Jan oder GPT4All
- Quelle: Repository von llama.cpp
- Quelle: vLLM-Repository
- Quelle: Repository von ExLlamaV2
- Quelle: Red Hat, Ollama gegen vLLM
Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.