Bodega Inference Engine: Optimierung der LLM-Inferenz für den einheitlichen Speicher von Apple Silicon

Bodega ist eine Inferenz-Engine, die speziell für die Unified-Memory-Architektur von Apple Silicon entwickelt wurde und über 2,5 Jahre mit Optimierungen nahe der Metal-Schicht auf MLX aufgebaut wurde. Sie adressiert die grundlegenden Durchsatzbeschränkungen, mit denen Entwickler konfrontiert sind, wenn sie LLMs auf Mac-Hardware ausführen.
Warum Apple Silicon eine andere Optimierung erfordert
Apple Silicon verwendet Unified Memory, bei dem CPU, GPU und Neural Engine einen gemeinsamen physischen Speicherpool über einen einzigen On-Chip-Bus teilen. Dies unterscheidet sich grundlegend von diskreten GPUs wie denen von NVIDIA, die separate VRAM- und System-RAM-Pools haben, die über PCIe verbunden sind. Die Speicherbandbreite reicht von ~400 GB/s beim M1 Max bis ~800 GB/s beim M3 Ultra (wobei die Cross-Die-Strafe den tatsächlichen Durchsatz auf das 1,6- bis 1,8-fache der Single-Die-Leistung reduziert).
Wichtige architektonische Implikationen:
- Decode ist speicherbandbreitenbeschränkt – jedes Token erfordert das Laden von Modellgewichten vom gemeinsamen Bus
- Prefill ist rechenbeschränkt – dominiert von GPU-TFLOPS für Matrix-Matrix-Multiplikation
- Der Speicherbus wird mit allem geteilt – KV-Cache, Modellgewichte, Betriebssystem und Anwendungen konkurrieren alle um die gleiche 400-800 GB/s Bandbreite
Diese Architektur macht direkte Portierungen der Batch-Implementierungen von vLLM oder llama.cpp auf MLX ineffektiv, da sie für unterschiedliche Speicherarchitekturen entwickelt wurden.
Was Bodega aufbaut
Der Entwickler studierte die Kerninterna von vLLM, einschließlich kontinuierlichem Batching, spekulativem Decoding, gechunktem Prefill und Prefix-Caching, und baute dann jede Komponente für MLX und Apples Unified-Memory-Modell neu auf.
Die zentrale Erkenntnis für kontinuierliches Batching: Das Generieren eines einzelnen Tokens für eine einzelne Sequenz lädt die vollständigen Modellgewichte für eine Matrix-Vektor-Multiplikation, was auf Hardware mit 400+ GB/s Bandbreite verschwenderisch ist. Die Lösung führt mehrere Sequenzen gleichzeitig aus, indem Gewichte × Matrix von Vektoren anstelle von Gewichten × einzelner Vektor verwendet werden.
Das KV-Cache-Management wurde für Unified Memory neu gestaltet, wo das Entfernen von Cache-Blöcken andere Kostenimplikationen hat als bei isolierten VRAM-Systemen.
Praktische Implikationen
Der Entwickler berichtet von Tests auf mehreren Apple-Silicon-Konfigurationen, darunter zwei M3 Ultras (256GB und 512GB), ein M4 Max 128GB und ein M1 Max 64GB. Die identifizierte gemeinsame Obergrenze ist der Single-User-Durchsatz mit einer Anfrage gleichzeitig und einer größtenteils inaktiven GPU.
Das Repository enthält Benchmarks, die mit einem einfachen curl-Skript für das Setup verifiziert werden können.
📖 Read the full source: r/LocalLLaMA
👀 Siehe auch

OKed Plugin: OpenClaw fragt Ihr Telefon vor zerstörerischen Aktionen
Ein neues Plugin namens OKed greift in OpenClaws before_tool_call ein, um destruktive Befehle (E-Mails, Löschungen, Zahlungen) abzufangen und Genehmigungsanfragen auf Ihr Telefon oder Telegram zu senden.
OpenClaw KI-Agent mit 6 Rollen, Gedächtnis und ADHS-gerechtem Design: Tägliche Einsätze im Überblick
Ein Einzelgründer mit ADHS hat einen Open-Source-KI-Agenten mit 6 Rollen (Aktionsplaner, Nachbesprecher, Autor, Recht, Ermittler, CRM) entwickelt, der sich einen Speicher teilt und aus Transkripten automatisch Nachfassaktionen und Entwürfe erstellt.

Claude Desktop + Blender via MCP: Echtzeit-3D-Workflow schließt die Feedback-Schleife
Ein Open-Source-Blender-Add-on führt einen MCP-Server in Blender aus, sodass Claude Desktop Szenen untersuchen, Objekte erstellen, Bilder rendern und Ergebnisse lesen kann – und schließt damit die Feedback-Schleife des Skript-Einfügens.

pxpipe: Token-Nutzung von Claude Code um 60% senken, indem Kontext als Bilder dargestellt wird
pxpipe ist ein lokaler Proxy, der umfangreichen Kontext (System-Prompts, Tool-Dokumentation, Verlauf) in kompakte PNGs rendert, wodurch die eingegebenen Tokens um das ~10-fache und die Kosten bei tokenintensiven Arbeitslasten um ~60% reduziert werden.