Tutorials
Apple-Silicon-VMs: Metal-Kompatibilitaetslayer beschleunigt llama.cpp um bis zu 16-fach
Das Cua-Team um Francesco Bonacci und Johnny Franks hat eine schlanke Kompatibilitaetsschicht fuer macOS-VMs auf Apple Silicon veroeffentlicht, die die LLM-Inferenz mit llama.cpp drastisch beschleunigt. Das Problem: Apple’s Virtualization.framework meldet Gaesten ein konservatives Metal-Faehigkeitsprofil (Apple Family 5, 32 KB Threadgroup-Memory), wodurch llama.cpp langsamere GPU-Kernel waehlt, obwohl die Hardware neuere Pfade unterstuetzt.
Die Loesung ist ein prozessbezogener Metal-Capability-Shim, der ausgewaehlte Faehigkeitsabfragen abfaengt und Apple Family 9 sowie 64 KB Threadgroup-Memory zurueckgibt. Dadurch aktiviert llama.cpp SIMD-Group-Reduction, SIMD-Group-Matrix und bfloat16-Pfade. Auf einer M1 Ultra mit macOS 26.6.1 erreichte TinyLlama 1.1B 11-fach schnellere Prompt-Verarbeitung und 16-fach schnellere Token-Generierung – 98% der Bare-Metal-Leistung. Gemma 4 12B QAT erzielte 7,2-fache bzw. 14,5-fache Beschleunigung mit bis zu 99,6% der Host-Geschwindigkeit. Auch Muse Glimmer 30B in einem 64-GiB-Gast profitierte mit 7,5-facher Prompt- und 8,9-facher Generationsgeschwindigkeit.
Der Shim ist prozessbezogen, aendernd keine Kernel- oder Host-Konfiguration und nutzt ausschliesslich Apples bestehenden paravirtualisierten GPU-Pfad. MLX-LM zeigte keine Verbesserung, da es im Standard-VM bereits schnell laeuft. Das Projekt ist als Forschungs-Release unter freier Lizenz verfuegbar; Quellcode, Build-Skripte und Benchmark-Protokolle liegen bei. Da private Metal-Implementierungsdetails genutzt werden, ist der Ansatz versionsabhaengig und pro macOS-Release neu zu validieren.
Originalquelle: GitHub - trycua/cua