Zuletzt überprüft: 2026-10-14 — llama.cpp Build b11609.
Alle Flags in diesem Leitfaden gelten für
llama-server und llama-cli ab llama.cpp Build b11609 (14. Oktober 2026). Flag-Namen können zwischen Builds wechseln — führen Sie llama-server --help aus, um zu bestätigen, was Ihre Binärdatei unterstützt.Flash Attention
Aktivieren Sie Flash Attention mit-fa oder --flash-attn on. In den meisten Benchmarks ist dies die nächstbeste Sache zu einer kostenlosen Leistungsverbesserung, die llama.cpp bietet — Sie bekommen schnellere Inferenz bei gleicher oder niedrigerer Speichernutzung, bei vernachlässigbaren Qualitätseinbußen.
- Niedrigere Speichernutzung für den KV-Cache — der größte Gewinn bei langen Kontextlängen.
- Schnellere Inferenz — besonders auf GPU, wo die gekachelte Berechnung gut auf Tensor-Cores abbildet.
- Gleiche Ausgabequalität — Flash Attention ist mathematisch äquivalent zu Standard-Attention, keine Approximation.
mmap vs mlock
llama.cpp lädt Modellgewichte mit einer von 2 Strategien in den Speicher. Der Standard ist--mmap, der die Modelldatei direkt in den virtuellen Adressraum des Prozesses abbildet. Die Alternative ist --mlock, der das gesamte Modell im physischen RAM fixiert.
Wann mmap gewinnt
--mmap ist der Standard, weil es für die meisten interaktiven Anwendungen gut funktioniert. Das OS lädt Modell-Seiten auf Bedarf, daher ist der Start schnell und die Modelldatei zählt nicht doppelt gegen Ihren RAM, bis die Seiten tatsächlich berührt werden. Wenn Sie Modelle testen oder kurze Sitzungen ausführen, ist der Standard in Ordnung.
Wann mlock gewinnt
--mlock verhindert, dass das OS Modell-Seiten auslagert. Das ist wichtig, wenn:
- Sie dasselbe Modell den ganzen Tag ausführen und konsistente Latenz wollen — kein Kaltstart-Penalty durch Page Faults.
- Ihr System unter Speicherdruck von anderen Prozessen steht und Modellgewichte auslagern könnte.
- Sie auf einer Maschine mit langsamem Swap (oder keinem Swap) sind und ein Page Fault die Inferenz für Sekunden blockieren würde.
Thread-Abstimmung
Das-t-Flag setzt die Anzahl der CPU-Threads, die für Inferenz verwendet werden. Der richtige Wert hängt davon ab, wie viel Arbeit die CPU tatsächlich tut.
Auf Apple Silicon ist Thread-Abstimmung weniger wichtig, da GPU und CPU sich Unified Memory teilen und das Metal-Backend die Planung übernimmt. Der Standard funktioniert normalerweise gut.
GPU-Offload-Strategie
Das-ngl-Flag steuert, wie viele Modellschichten Sie auf die GPU auslagern. Mehr Schichten auf der GPU bedeuten schnellere Inferenz, aber jede Schicht verbraucht VRAM.
Partielles Offload
Setzen Sie-ngl auf die Anzahl der Schichten, die in den GPU-Speicher passen. Die restlichen Schichten laufen auf der CPU.
Vollständiges Offload
Setzen Sie-ngl 999, um jede Schicht auszulagern. llama.cpp verwendet 999 als “alle verbleibenden Schichten” — es versucht nicht buchstäblich, 999 Schichten auszulagern.
Speicher-Budgetierung pro Schicht
Jede ausgelagerte Schicht verbraucht VRAM für sowohl Gewichte als auch KV-Cache. Eine grobe Schätzung:
Lassen Sie 1-2 GB VRAM-Spielraum für CUDA-Kontext und Overhead.
Batch-Größen-Abstimmung
Zwei Flags steuern, wie viele Token llama.cpp während der Prefill-Phase auf einmal verarbeitet:Wie sie zusammenspielen
-bsetzt die äußere Grenze. Wenn ein Prompt mehr Token als-bhat, teilt llama.cpp ihn in mehrere Batches auf.-ubsetzt die innere Chunk-Größe. llama.cpp verarbeitet den Batch in Micro-Batches von bis zu-ubToken.-ubmuss kleiner oder gleich-bsein.
Abwägungen
KV-Cache-Präzision
Der KV-Cache speichert Key- und Value-Tensoren für jedes Token in jeder aktiven Sequenz. Standardmäßig verwendet llama.cpp f16 (16-Bit-Gleitkomma) für sowohl Keys als auch Values. Sie können auf quantisierte Präzision wechseln, um die Speichernutzung bei kleinen Qualitätseinbußen zu reduzieren.
Sie können Keys und Values unabhängig setzen. Ein häufiges Muster ist
q8_0 für beide, was den KV-Cache-Fußabdruck mit weniger als 1% Qualitätsunterschied bei den meisten Benchmarks halbiert.
MoE-Optimierung
Mixture-of-Experts-Modelle wie Qwen3.5-35B-A3B oder Mixtral speichern eine große Anzahl von Expert-Subnetzwerken in jeder Schicht, aktivieren aber nur wenige pro Token. Die Expert-Gewichte leben trotzdem im Speicher, auch wenn sie inaktiv sind, was MoE-Modelle unverhältnismäßig groß für ihre aktive Parameteranzahl macht. Auf Multi-GPU-Systemen können Sie Expert-Schichten auf die CPU legen, wenn der GPU-Speicher knapp ist:--n-cpu-moe <num> hält die angegebene Anzahl von Expert-Sub-Schichten auf der CPU, während der Rest des Modells auf der GPU läuft. Dies tauscht eine kleine Latenzerhöhung gegen ein größeres Modell, das in den VRAM passt.
Beispielkonfigurationen
Apple Silicon — optimiert für M-Series Mac
-ngl 999), solange Modell und KV-Cache passen.
llama.cpp läuft gut auf Apple Silicon, aber wenn Sie ausschließlich auf Mac bereitstellen, ist MLX für Apples Metal-Backend optimiert und könnte schnellere Inferenz für dasselbe Modell liefern. Verwenden Sie llama.cpp, wenn Sie plattformübergreifende Portabilität oder einen OpenAI-kompatiblen Server brauchen.
GPU-Offload — NVIDIA oder AMD dedizierte GPU
-ngl, wenn das Modell nicht passt — starten Sie bei der Gesamtschichtanzahl und reduzieren Sie in Schritten von 5, bis es lädt.
Nur CPU — keine GPU verfügbar
Nächste Schritte
llama.cpp Fernzugriff
Legen Sie Ihren llama.cpp-Server für Teammitglieder und Agenten über Tokios frei — ohne Ports zu öffnen.
Spekulative Dekodierung
Decode mit Draft-Modellen, N-Grammen und EAGLE beschleunigen — funktioniert mit llama.cpp-Backends.
Ihr Deployment testen
Latenz und Durchsatz nach der Abstimmung messen, um die Verbesserung zu bestätigen.
KV-Cache und Kontext
Tiefere Erklärung, wie KV-Cache über Modellarchitekturen und Laufzeiten funktioniert.