Compiler llama.cpp avec Metal
Sur Mac Apple Silicon, Metal est l'API GPU native — l'équivalent de CUDA pour le monde Apple. Compiler llama.cpp avec Metal donne accès aux dernières optimisations (KV cache quantifié, Flash Attention Metal) qu'Ollama met parfois 3-4 semaines à intégrer. Ce guide est court parce que sur Mac, c'est quasi immédiat.
#Metal : spécifique Apple
Sur macOS, le GPU n'est pas exposé via CUDA ou Vulkan (enfin, Vulkan arrive via MoltenVK mais c'est une couche de traduction). Le chemin direct, c'est Metal. llama.cpp a un backend Metal mature depuis 2023, qui exploite le GPU de la puce M ET la mémoire unifiée.
#Prérequis
- Mac Apple Silicon
- M1, M2, M3, M4. Les Intel ne sont pas concernés par ce guide (Metal ne sert à rien sur Intel pour les LLM).
- macOS 13+
- Sonoma (14) ou Sequoia (15) recommandés pour les optimisations récentes.
- Xcode Command Line Tools
- xcode-select --install. 2 Go environ.
- Homebrew (optionnel)
- Pour installer cmake facilement.
#1. Build
Le build prend 2 à 5 minutes. Les binaires apparaissent dans build/bin/.
#2. Tester
Le flag -ngl 99 demande de charger toutes les couches sur GPU. Sur Mac Apple Silicon, c'est gratuit — il n'y a pas de transfert CPU↔GPU à faire, la RAM est unifiée.
#3. Gérer la mémoire unifiée
macOS applique une limite par défaut sur la mémoire allouable au GPU : environ 67 % de la RAM totale. Pour les modèles qui dépassent :
#4. Flags qui comptent
- -fa
- Flash Attention. Activez toujours. Meilleure perf, moins de mémoire contexte.
- -ngl 99
- Toutes les couches sur GPU. Sur Mac, rien à y perdre.
- -ctk q8_0 -ctv q8_0
- KV cache quantifié en Q8. -50 % de VRAM pour le contexte, impact négligeable sur la qualité.
- -t 4
- Nombre de threads CPU pour le prompt processing. 4 est optimal sur M-series (les P-cores).
#5. Performance par puce (Mistral 7B Q4_K_M)
- M1 / M2 8 Go
- ~20 tok/s. OK pour tester, limite pour un usage quotidien.
- M1 / M2 16 Go
- ~25-30 tok/s. Usage confortable en 7B.
- M1 Pro / M2 Pro
- ~40 tok/s. Sweet spot pour dev portable.
- M3 Max / M4 Max 64 Go
- ~80 tok/s en 7B, ~25 tok/s en 70B. Quasiment une workstation.
- M3 Ultra / M4 Ultra
- ~110 tok/s en 7B. Peut tourner Llama 3.1 70B Q6 confortablement.
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.