localaiforum
Anmelden
Guide › Hardware

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
  • -t auf 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