gemma4.c: Modernes LLM-Inferenz in 700 Zeilen C implementiert
Das Projekt gemma4.c von Reddit-Nutzer Critical_Physics8 (GitHub: ryanssenn) demonstriert, dass vollständige LLM-Inferenz ohne jede externe Bibliothek in einer einzigen, überschaubaren C-Datei realisierbar ist. Das unterstützte Modell ist Googles Gemma 4 E2B, ein aktuelles Open-Weight-Modell. Bewusst wurde auf Universalität verzichtet: Die Implementierung unterstützt ausschließlich dieses eine Modell und ausschließlich CPU-Inferenz – was den Code radikal schlank hält und ihn von einem allgemeinen Framework wie llama.cpp fundamental unterscheidet. Der gesamte Stack – Tokenizer, Transformer-Forward-Pass, Key-Value-Cache, Sampling-Logik und CPU-Kernel – ist in diesen 700 Zeilen enthalten und von main() aus lückenlos nachvollziehbar. Für die Performance-Optimierung setzt der Autor auf quantisierte int8-Gewichte und Aktivierungen sowie hardwarenahe Instruktionssatzerweiterungen: AVX2 für breite Vektoroperationen und AVX-512 VNNI für Integer-Dotprodukte, ergänzt durch OpenMP zur Thread-Parallelisierung. Die erzielte Prefill-Geschwindigkeit von 639 tok/s auf einem Consumer-Prozessor (Ryzen 7 7700, 512-Token-Kontext) übersteigt nach Angaben des Autors die Leistung von llama.cpp auf derselben Hardware – ein bemerkenswerter Befund, der auf den geringeren Framework-Overhead der schlanken Implementierung hindeutet. Das Repository ist explizit als Lern- und Referenzprojekt konzipiert, nicht als produktionsreifer Ersatz für bestehende Inference-Runtimes.
- Unterstützter Kontext beim Prefill-Benchmark: 512 Tokens – bei dieser Sequenzlänge werden 639 tok/s gemessen.
- Die Generierungsgeschwindigkeit (25,9 tok/s) bezieht sich auf den Dekodier-Schritt (autoregressive Generation), nicht den Prefill.
- Das Repo ist bewusst single-model/single-backend gehalten: kein GPU-Support, keine alternativen Modellarchitekturen geplant.
- AVX-512 VNNI (Vector Neural Network Instructions) ermöglicht effiziente int8-Dotprodukte direkt in Hardware – Kernfaktor für den Prefill-Vorsprung.
- Der Autor nennt als primäres Ziel das eigene Verständnis: LLM-Inferenz vom Diagramm zur konkreten Speicher- und Rechenoperation nachvollziehbar machen.
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.
Verwandte Beiträge
gemma4.c: Modernes LLM-Inferenz in 700 Zeilen C implementiert
Das Projekt gemma4.c von Reddit-Nutzer Critical_Physics8 (GitHub: ryanssenn) demonstriert, dass vollständige LLM-Inferenz ohne jede externe Bibliothek in einer einzigen, überschaubaren C-Datei realisierbar ist. Das unterstützte Modell ist Googles Gemma 4 E2B, ein aktuelles Open-Weight-Modell. Bewusst wurde auf Universalität verzichtet: Die Implementierung unterstützt ausschließlich dieses eine Modell und ausschließlich CPU-Inferenz – was den Code radikal schlank hält und ihn von einem allgemeinen Framework wie llama.cpp fundamental unterscheidet. Der gesamte Stack – Tokenizer, Transformer-Forward-Pass, Key-Value-Cache, Sampling-Logik und CPU-Kernel – ist in diesen 700 Zeilen enthalten und von main() aus lückenlos nachvollziehbar. Für die Performance-Optimierung setzt der Autor auf quantisierte int8-Gewichte und Aktivierungen sowie hardwarenahe Instruktionssatzerweiterungen: AVX2 für breite Vektoroperationen und AVX-512 VNNI für Integer-Dotprodukte, ergänzt durch OpenMP zur Thread-Parallelisierung. Die erzielte Prefill-Geschwindigkeit von 639 tok/s auf einem Consumer-Prozessor (Ryzen 7 7700, 512-Token-Kontext) übersteigt nach Angaben des Autors die Leistung von llama.cpp auf derselben Hardware – ein bemerkenswerter Befund, der auf den geringeren Framework-Overhead der schlanken Implementierung hindeutet. Das Repository ist explizit als Lern- und Referenzprojekt konzipiert, nicht als produktionsreifer Ersatz für bestehende Inference-Runtimes.
- Unterstützter Kontext beim Prefill-Benchmark: 512 Tokens – bei dieser Sequenzlänge werden 639 tok/s gemessen.
- Die Generierungsgeschwindigkeit (25,9 tok/s) bezieht sich auf den Dekodier-Schritt (autoregressive Generation), nicht den Prefill.
- Das Repo ist bewusst single-model/single-backend gehalten: kein GPU-Support, keine alternativen Modellarchitekturen geplant.
- AVX-512 VNNI (Vector Neural Network Instructions) ermöglicht effiziente int8-Dotprodukte direkt in Hardware – Kernfaktor für den Prefill-Vorsprung.
- Der Autor nennt als primäres Ziel das eigene Verständnis: LLM-Inferenz vom Diagramm zur konkreten Speicher- und Rechenoperation nachvollziehbar machen.
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.