llama.cpp: Was ist das und sollten Sie von Ollama wechseln? ?
llama.cpp ist eine in C/C++ geschriebene Inferenz-Engine, die Modelle im GGUF-Format auf CPUs sowie auf GPUs von NVIDIA, AMD und Intel und auf Apple Silicon ausführt; Ollama, LM Studio und KoboldCpp bauen alle darauf auf. Die direkte Nutzung über llama-server macht ein Modell auf derselben Hardware nicht schneller: Sie erhalten dadurch die Kontrolle über Einstellungen, die die darauf aufbauenden Anwendungen sonst für Sie wählen, etwa die GPU/CPU-Aufteilung, die Kontextgröße und die Quantisierung des KV-Caches.
llama.cpp ist der in C und C++ geschriebene Inferenzmotor, der Modelle im GGUF-Format auf CPUs, auf GPUs von NVIDIA, AMD und Intel sowie auf Macs ausführt. Stand 20. September 2026 basieren die meisten Anwendungen für lokale LLMs auf ihm oder auf seiner Bibliothek ggml: Ollama, LM Studio, KoboldCpp, Jan. Die direkte Nutzung führt nicht zu einer schnelleren Modellausführung. Sie gibt Ihnen die Kontrolle über Einstellungen, die sonst von den darüberliegenden Schichten für Sie festgelegt werden.
#llama.cpp kurz gesagt
Das Projekt wurde im März 2023 von Georgi Gerganov mit einem einfachen Ziel gestartet: Metas LLaMA-Modell auf einem MacBook ohne Python und ohne umfangreiche Abhängigkeiten auszuführen. Es wird unter der MIT-Lizenz veröffentlicht. Drei Jahre später unterstützt das Repository, das inzwischen zur Organisation ggml-org gehört, Hunderte von Architekturen. Das im August 2023 vom Projekt definierte Dateiformat GGUF ist zum De-facto-Standard für die Verteilung quantifizierter Modelle geworden.
Zwei technische Entscheidungen erklären diesen Erfolg. Die erste ist die Quantisierung: llama.cpp kann mit auf 2 bis 8 Bit komprimierten Gewichten arbeiten, sodass ein Modell mit 8 Milliarden Parametern in 5 GB statt 16 GB passt. Die zweite ist die Aufteilung zwischen Prozessor und Grafikkarte: Wenn ein Modell nicht vollständig in den VRAM passt, bleibt ein Teil der Schichten im RAM, während der Rest auf die GPU verlagert wird. Das ist langsamer, als das Modell vollständig auf die GPU zu laden, funktioniert aber, und nur wenige Engines bieten diese Möglichkeit.
#Was enthalten ist
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
- llama-cli
- Chat über die Befehlszeile. Nützlich, um ein Modell oder eine Einstellung in wenigen Sekunden zu testen.
- llama-server
- Ein HTTP-Server mit einer OpenAI-kompatiblen API und einer integrierten Weboberfläche auf Port 8080. Das ist die Komponente, die die meisten fortgeschrittenen Nutzer dauerhaft laufen lassen.
- llama-bench
- Das Messwerkzeug. Es gibt die Lesegeschwindigkeit des Prompts und die Generierungsgeschwindigkeit getrennt an. So lassen sich zwei Einstellungen vergleichen, ohne sich etwas vorzumachen.
- llama-quantize
- Konvertiert eine GGUF-Datei mit voller Präzision in eine speichersparendere Quantisierung (Q4_K_M, Q5_K_M, Q8_0).
- llama-server: Schritt für Schritt die lokale OpenAI-API einrichten
- GGUF und safetensors: Die Modelldateiformate verstehen
- Offizielle Dokumentation zum GGUF-Format — Hugging Face
#Was die aufgesetzten Softwareschichten hinzufügen und verbergen
Ollama, LM Studio und KoboldCpp bieten das, was llama.cpp nicht bietet: einen Modellkatalog, Downloads mit einem einzigen Befehl, eine Benutzeroberfläche sowie automatisches Laden und Entladen. Im Gegenzug legen sie Standardwerte fest. Die folgende Tabelle vergleicht keine Leistungswerte, sondern zeigt, wer worüber entscheidet.
| Einstellung | llama.cpp pur | Ollama | LM Studio | KoboldCpp |
|---|---|---|---|---|
| Größe des Kontextes | Option -c, frei | Konservativer Standardwert, über eine Variable oder ein Modelfile änderbar | Schieberegler pro Modell | Startoption |
| Wahl der Quantisierung | Jede GGUF-Datei | Katalog-Tag, Q4 standardmäßig | Zum Download angebotene Liste | Jede GGUF-Datei |
| Auf die GPU ausgelagerte Schichten | Option -ngl, Schicht für Schicht | Automatisch | Schieberegler | Startoption |
| Quantisierung des KV-Caches | Optionen -ctk und -ctv | Globale Umgebungsvariable | Erweiterte Einstellungen | Startoption |
| API | llama-server, kompatibel mit OpenAI | Echte API + OpenAI-Kompatibilität | OpenAI-kompatibler Server | Echte API + OpenAI-Kompatibilität |
| Updates der Engine | Am gleichen Tag bei jedem Commit | Mit Versatz | Mit Versatz | Mit Versatz |
Die letzte Zeile ist wichtiger, als es zunächst scheint. Wenn eine neue Modellarchitektur veröffentlicht wird, wird sie zuerst von llama.cpp unterstützt und erst einige Tage oder Wochen später von den darauf aufbauenden Anwendungen. Wenn Sie ein Modell in der Woche seiner Veröffentlichung testen möchten, ist dies oft der einzige Weg.
#Die vier Einstellungen, die alles verändern
- -ngl (n-gpu-layers)
- Die Anzahl der Modellschichten, die im VRAM abgelegt werden. Der Wert 99 bedeutet „alles, was hineinpasst“. Wenn das Modell mehr Speicher benötigt, als Ihr VRAM bietet, verringern Sie diese Zahl, bis das Laden gelingt: Jede auf der CPU verbleibende Schicht verlangsamt die Generierung, aber ein Modell, das mit 8 Tokens pro Sekunde läuft, ist besser als ein Modell, das nicht startet.
- -c (ctx-size)
- Das zugewiesene Kontextfenster. Der KV-Cache wächst mit ihm: Bei einem Modell mit 8 Milliarden Parametern benötigt der Wechsel von 8.000 auf 32.000 Tokens mehrere GB zusätzlichen VRAM. Weisen Sie nur so viel zu, wie Sie benötigen, statt das vom Modell angegebene Maximum auszuschöpfen.
- -fa (flash-attn)
- Aktiviert Flash Attention, das den Speicherbedarf reduziert und die Verarbeitung langer Prompts beschleunigt. Dies ist auch eine Voraussetzung für die Quantisierung des KV-Caches.
- --n-cpu-moe
- Bei MoE-Modellen werden die Experten einer bestimmten Anzahl von Schichten im RAM gehalten, während der Rest auf der GPU bleibt. Dadurch lässt sich ein MoE-Modell mit 30 oder 120 Milliarden Parametern auf einer Grafikkarte mit 16 GB Speicher mit brauchbarer Geschwindigkeit betreiben.
- Flash Attention: Aktivieren in llama.cpp, Ollama und vLLM
- KV-Cache quantisieren, um VRAM zu sparen
- Ein Modell auf mehrere GPU mit tensor-split verteilen
- Offizielle Dokumentation von llama-server (vollständige Liste der Optionen)
#Was sich geändert hat: --fit stellt -ngl für Sie ein
Lange war das manuelle Einstellen von -ngl der erste Reflex in jedem llama.cpp-Leitfaden: den Wert auf 99 setzen, um alles auf die GPU zu verlagern, und ihn dann durch Ausprobieren wieder senken, falls das Laden scheiterte. Dieser Schritt ist inzwischen nicht mehr zwingend nötig. Das Projekt hat die standardmäßig aktivierte Option --fit hinzugefügt, die nicht ausdrücklich angegebene Parameter (darunter -ngl) automatisch so anpasst, dass das Modell in den verfügbaren Speicher passt. Bei einer kleineren Grafikkarte erspart das den üblichen Wechsel zwischen einem fehlgeschlagenen Start und einem manuell reduzierten -ngl-Wert.
#Welches Backend für Ihre Karte?
llama.cpp wird für ein bestimmtes Rechenbackend kompiliert oder heruntergeladen. Die richtige Wahl hängt ausschließlich von Ihrer Hardware ab. Die Tabelle zeigt die Hardwarefamilien aus unserer Datenbank mit 90 Konfigurationen.
| Ihr Hardware-Setup | Empfohlenes Backend | Hinweis |
|---|---|---|
| NVIDIA GTX 10 bis RTX 50, Desktop- und Laptop-Modelle | CUDA | Der schnellste und am besten getestete Weg. |
| AMD Radeon RX 7000 und RX 9000 | ROCm (HIP) oder Vulkan | ROCm ist schneller, wenn es funktioniert. Vulkan lässt sich problemlos installieren, auch unter Windows. |
| AMD Radeon RX 6000 und ältere Modelle | Vulkan | Je nach Grafikkarte wird ROCm nur teilweise oder gar nicht unterstützt. |
| Apple M1 bis M5 | Metal | Standardmäßig in den macOS-Binaries aktiviert. Der gesamte vereinheitlichte Speicher ist nutzbar. |
| Integrierte GPU von Intel oder AMD, Intel Arc | Vulkan oder SYCL | Tatsächlicher Leistungsgewinn gegenüber dem ausschließlichen CPU-Betrieb bei kleinen Modellen. |
| Keine GPU | CPU (AVX2, AVX-512, NEON) | Funktioniert überall. Wählen Sie Modelle mit höchstens 8 Milliarden Parametern. |
- llama.cpp mit CUDA kompilieren
- llama.cpp mit Metal auf dem Mac kompilieren
- llama.cpp mit Vulkan, das universelle Backend
#Unsere Messungen mit llama.cpp
llama.cpp ist die Referenz-Engine unseres Testaufbaus, gerade weil sie auf allen Plattformen identisch läuft. Hier sind die mit Llama 3.1 8B in Q4 gemessenen Generierungsgeschwindigkeiten: Kontext mit 2.048 Tokens, eine einzige Anfrage, Flash Attention aktiviert.
| Rechner | Speicher | Llama 3.1 8B Q4 |
|---|---|---|
| RTX 5090 | 32 GB | 172 Tok/s |
| RTX 4090 | 24 GB | 128 Tok/s |
| RTX 4070 | 12 GB | 76 tok/s |
| Mac M3 Max | 64 GB vereinheitlichter Speicher | 64 Tok/s |
| RTX 3060 | 12 GB | 44 Tok/s |
| Ryzen 7 7700, CPU allein | System-RAM | 7,8 Tok/s |
Daraus lassen sich zwei Schlüsse ziehen. Erstens beträgt der Leistungsunterschied zwischen einer RTX 3060 und einem Prozessor allein einen Faktor von fünf bis sechs: Selbst eine Einsteiger-Grafikkarte verändert das Nutzungserlebnis. Zweitens wären diese Zahlen in Ollama oder LM Studio auf denselben Rechnern praktisch gleich, da die zugrunde liegende Rechen-Engine dieselbe ist.
#Bei Ollama bleiben oder zu llama.cpp wechseln
| Bleiben Sie bei Ollama oder LM Studio, wenn … | Wechseln Sie zu llama.cpp, wenn… |
|---|---|
| Sie möchten mit einem Modell sprechen, ohne Dokumentation zu lesen. | Ihr Modell passt nicht vollständig in den VRAM, und Sie möchten die Aufteilung zwischen GPU und CPU feinjustieren. |
| Sie wechseln häufig zwischen Modellen und schätzen den integrierten Katalog. | Sie möchten eine Architektur testen, die diese Woche veröffentlicht wurde. |
| Ihre Tools (Open WebUI, Editor-Erweiterungen) erwarten die API von Ollama. | Sie richten einen Server für den langfristigen Betrieb ein und möchten jede Option selbst kontrollieren, vom Kontext bis zum KV-Cache. |
#In zehn Minuten starten
Zum Ausprobieren müssen Sie nichts kompilieren. Für Windows, macOS und Linux werden mit jeder Version vorkompilierte Binärdateien veröffentlicht, und die Paketmanager erledigen den Rest. Der folgende Befehl lädt ein kleines Modell von Hugging Face herunter und öffnet die Weboberfläche unter http://localhost:8080.
Für ein anspruchsvolleres Modell aus dem Katalog laden Sie die GGUF-Datei Ihrer Wahl herunter und geben mit der Option -m den Pfad zu ihr an. Das Kompilieren aus dem Quellcode ist nur dann sinnvoll, wenn Sie ein bestimmtes Backend aktivieren oder die Entwicklung tagesaktuell verfolgen möchten.
#Die häufigsten Ladefehler
Die meisten Probleme mit llama.cpp lassen sich auf drei Ursachen zurückführen: eine Überschreitung der verfügbaren Speicherkapazität, eine mit dem installierten Build inkompatible GGUF-Datei oder eine falsch geschriebene Option. Die in der Kommandozeile angezeigte Fehlermeldung zeigt fast immer, welche der drei Ursachen vorliegt – vorausgesetzt, Sie lesen sie bis zum Ende, statt sie zu schließen und das Programm erneut zu starten.
| Meldung oder Symptom | Wahrscheinliche Ursache | Zum Ausprobieren |
|---|---|---|
| cudaMalloc failed: out of memory | Das Modell mit dem angeforderten Kontext überschreitet die verfügbare VRAM | -c reduzieren, --fit den Wert von -ngl anpassen lassen oder eine weniger speicherintensive Quantisierung wählen |
| unknown model architecture | Die GGUF-Datei verwendet eine neuere Architektur als die installierte Binärdatei | Auf die neueste veröffentlichte Version aktualisieren; neue Architekturen werden zuerst in llama.cpp unterstützt |
| Sehr langsames Generieren trotz neuerer GPU | Nicht alle Schichten wurden auf die GPU übertragen, häufig mangels freien VRAMs | Die Ausgabe beim Laden prüfen (Zeile „offloaded“), andere Anwendungen schließen, die die Grafikkarte belegen |
| error: invalid argument | Eine umbenannte oder falsch geschriebene Option im Befehl | Mit der Ausgabe von llama-server --help vergleichen, die die aktuellen Kurz- und Langformen der Aliase auflistet |
Es lohnt sich, die beim Serverstart angezeigte Ladezeile einmal vollständig zu lesen: Sie nennt die Anzahl der tatsächlich auf die GPU ausgelagerten Schichten, die effektive Kontextgröße und den verwendeten KV-Cache-Typ. Das geht oft schneller, als wahllos Optionen hinzuzufügen, bis es funktioniert. Behalten Sie auch die installierte Version im Blick: llama.cpp veröffentlicht sehr häufig Nightly-Versionen, und ein Fix für Ihre Karte oder Ihr Modell ist manchmal schon erschienen, aber noch nicht in dem Homebrew- oder winget-Paket enthalten, das Sie in der Vorwoche installiert haben.
#FAQ
Ist llama.cpp schneller als Ollama?+
Muss man wissen, wie man kompiliert, um llama.cpp zu verwenden?+
Kann llama.cpp ohne Grafikkarte verwendet werden?+
Welche Unterschiede gibt es zwischen llama.cpp und vLLM?+
Und auf dem Mac: llama.cpp oder MLX?+
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.