Tutorials

Apple-Silicon-VMs: Metal-Kompatibilitaetslayer beschleunigt llama.cpp um bis zu 16-fach

llama-cpp apple-silicon inference

Das Cua-Team um Francesco Bonacci und Johnny Franks hat eine schlanke Kompatibilitätsschicht für macOS-VMs auf Apple Silicon veröffentlicht, die die LLM-Inferenz mit llama.cpp drastisch beschleunigt. Das Problem: Apple’s Virtualization.framework meldet Gästen ein konservatives Metal-Faehigkeitsprofil (Apple Family 5, 32 KB Threadgroup-Memory), wodurch llama.cpp langsamere GPU-Kernel wählt, obwohl die Hardware neuere Pfade unterstützt.

Die Lösung ist ein prozessbezogener Metal-Capability-Shim, der ausgewählte Faehigkeitsabfragen abfängt 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, ändernd keine Kernel- oder Host-Konfiguration und nutzt ausschließlich Apples bestehenden paravirtualisierten GPU-Pfad. MLX-LM zeigte keine Verbesserung, da es im Standard-VM bereits schnell läuft. Das Projekt ist als Forschungs-Release unter freier Lizenz verfügbar; 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