Ausschließlich auf der CPU
Reine CPU-Inferenz ist machbar, und die Zahlen sind weniger deprimierend, als
die Legende glauben macht — solange Sie verstehen, dass es dasselbe
Bandbreitenspiel wie beim GPU-Decode ist, gespielt mit einem Zehntel der Leitung.
Ein moderner Desktop mit Dual-Channel-DDR5 hat ~80–100 GB/s Speicherbandbreite. Das
ist Ihr gesamtes Budget; nichts an den CPU-Kernen selbst ändert das viel.
Die Formel, durchgerechnet
decode tok/s ≈ effective bandwidth (GB/s) ÷ model size (GB)
Dual-Channel-DDR5-5600 bewegt auf dem Papier ~90 GB/s; nennen Sie es 60–80 GB/s
effektiv, nachdem Kerne und Prefetcher ihren Anteil genommen haben. Ein 8B-Q4-Modell
ist ~5 GB, also:
90 GB/s ÷ 5 GB ≈ 18 tok/s theoretische Decke → 8–14 tok/s in der Praxis.
Das ist kein Bug — es ist dieselbe Arithmetik, die eine große diskrete GPU nutzt,
mit einem Zehntel der Bandbreite.
Was Sie je nach Hardware erwarten können
| Plattform | Bandbreite ca. | 8B-Q4-Decode | Fühlt sich an wie |
|---|---|---|---|
| Laptop, DDR4 Dual-Channel | 40–50 GB/s | 5–8 tok/s | lesbar, langsamer Start |
| Laptop, DDR5 Dual-Channel | 60–80 GB/s | 8–12 tok/s | nutzbarer Chat |
| Desktop, DDR5 Dual-Channel | 80–100 GB/s | 10–16 tok/s | angenehm für ≤8B |
| Threadripper/EPYC, Quad+ Channel | 200–460 GB/s | 30–80 tok/s | wirklich gut |
| Dual-Socket-Server | 400+ GB/s | 60–100 tok/s | fast eine RAM-GPU |
Komfortklassen auf einem Dual-Channel-Desktop:
- Angenehm: 7–8B-Q4-Chat und Code-Hilfe bei 10+ tok/s.
- Nutzbar: 13–14B Q4 bei ~5–8 tok/s. Man wartet, nicht ewig.
- Geduld: 24–32B Q4 bei ~2–4 tok/s. Über-Nacht-Batches, kein Chat.
- Lassen Sie es: 70B Q4 unter 1 tok/s auf Dual-Channel. Nur
Quad-Channel-Workstations, und selbst dann zweimal nachdenken.
Der Notausgang: partielles Offloaden
Ist eine kleine GPU vorhanden, teilt llama.cpp Layer zwischen CPU und GPU auf —
sagen wir 20 von 32 Layern auf einer 8-GB-Karte. Der GPU-lokale Anteil läuft mit
VRAM-Bandbreite, der Rest mit RAM-Bandbreite, also landet die Geschwindigkeit
zwischen den Extremen. Es schlägt beide reinen Modi, wenn die Gewichte nirgends
ganz passen, und es schlägt dem Zuschauen dabei zu, wie ein „voller GPU-Offload“ in
Shared Memory thrasht.
Der Prefill ist der echte Schmerz
Decode bekommt alle Aufmerksamkeit, aber Prefill ist dort, wo die CPU wehtut: Er
ist rechenlimitiert, und eine Desktop-CPU hat einen kleinen Bruchteil der FLOPs
einer GPU. Ein 4.000-Token-Prompt auf einem 8B-Modell kann Dutzende Sekunden
kosten, bevor das erste Token erscheint. RAG-artige Pipelines mit großen injizierten
Kontexten zahlen es bei jeder einzelnen Anfrage. Lindemittel: Prompts kurz halten,
dem Batch-Prefill mehr Threads geben als dem Decode und die Indexierung als
Einmalkosten betrachten (siehe RAG).
Praktische Flags
# Decode-Threads = physische Kerne; Batch-Prefill kann auch logische Kerne nutzen
llama-server -m qwen2.5-7b-instruct-q4_k_m.gguf -c 8192 -t 8 --threads-batch 16
# Multi-Socket-Kiste: Speicher über NUMA-Nodes interleaven
numactl --interleave=all ./llama-server -m model.gguf -t 32
# Welches SIMD hat diese CPU? AVX2 ist der Boden; AVX-512 hilft dem Prefill
lscpu | grep -o 'avx[0-9a-z_]*' | sort -u
-tauf physische Kerne gesetzt schlägt für den Decode üblicherweise
logische/SMT-Zahlen; benchmarken Sie beides auf Ihrer Maschine, der
Überschneidungspunkt ist workload-spezifisch.- AVX2 ist überall die Basis; AVX-512 (Zen 4/5, neuere Xeon) bringt echte
Prefill-Gewinne. llama.cpp erkennt die Unterstützung zur Build-Zeit. - Auf Multi-Socket-Maschinen kann NUMA-Pinning 20%+ wert sein — Speicher auf dem
fernen Socket ist langsamer Speicher. - Laptop-DDR4 trägt grob die Hälfte der Desktop-DDR5-Bandbreite. Gleiche Formel,
schlechtere Konstante: Erwarten Sie 5–8 tok/s, wo der Desktop 12 gibt.
Wann rein CPU wirklich die richtige Antwort ist
- Embeddings und RAG-Indexierung — Durchsatz zählt, Latenz nicht; ein paar
Stunden Chunk-Embedding über Nacht sind gratis. - Winzige Modelle in Skripten — 0,5–3B-Klassifikatoren, Extraktoren und
Reranker antworten selbst auf der CPU in Dutzenden Millisekunden. - Batch-Hintergrundjobs — den Rückstand bei 3 tok/s zusammenfassen, während Sie
schlafen; niemand schaut dem Stream zu. - Probieren vor dem Kauf — validieren Sie, dass eine Modellfamilie die Aufgabe
überhaupt erledigt, bevor Sie einen GPU-Kauf eingehen.
Ist interaktiver Chat das Ziel und irgendeine GPU verfügbar, packen Sie das Model
dorthin. Nutzen Sie Erster Start, um heute in Gang zu kommen,
und Geschwindigkeit, um zu verstehen, was die Zahlen bedeuten, die
Sie sehen.
Verwandt: Erster Start · Geschwindigkeit ·
RAG