Avancé 15 minllama.cpp
Compiler llama.cpp avec CUDA
Ollama et LM Studio encapsulent llama.cpp — mais en restent souvent 1 ou 2 versions en retard, avec des flags conservateurs. Compiler llama.cpp soi-même, c'est récupérer 20 à 40 % de vitesse sur un RTX récent et avoir accès aux features qui viennent juste de sortir. Ce guide couvre Windows, Linux et le build CUDA.
#Pourquoi compiler soi-même
- Features en avant-première
- Nouvelles quantizations (IQ4_NL, Q2_K_S), nouveaux modèles (Mamba, DeepSeek), flags expérimentaux.
- Perfs optimales
- Build optimisé pour votre CPU spécifique (AVX-512, AMX) et votre génération CUDA (sm_89 pour RTX 40, sm_90 pour RTX 50).
- Outils bas niveau
- llama-bench pour benchmarker, llama-cli pour scripter, llama-server pour un endpoint nu (sans UI ni dépendances).
i
Qui devrait compiler ?
Si vous êtes dev, curieux de perfs, ou si vous travaillez sur du Mamba/Jamba non pris en charge par Ollama : oui. Sinon, Ollama fait 95 % du boulot sans compilation.
#Prérequis
- CUDA Toolkit 12.x
- Téléchargeable sur developer.nvidia.com. Pas confondre avec les drivers — le Toolkit inclut nvcc, le compilateur.
- CMake 3.21+
- apt install cmake sur Linux, via chocolatey sur Windows.
- Compilateur C++
- gcc 11+ sur Linux, MSVC 2022 Build Tools sur Windows.
- Git
- Pour cloner et mettre à jour.
#1. Cloner le repo
#2. Build avec CUDA
La compilation prend 3 à 10 minutes selon votre CPU. Les binaires atterrissent dans build/bin/ (Linux) ou build/bin/Release/ (Windows).
→
Build optimisé pour votre GPU
Ajoutez -DCMAKE_CUDA_ARCHITECTURES=89 pour cibler uniquement RTX 40 (ou 90 pour RTX 50). Le binaire est plus petit et le build plus rapide.
#3. Tester
#4. Flags d'optimisation
- -ngl N
- Nombre de couches chargées sur GPU. Mettez 99 (ou plus) pour tout mettre si la VRAM suit.
- -fa
- Flash Attention. +20-30 % de vitesse, VRAM contexte réduite. Activez toujours si votre GPU est Ampere+ (RTX 30xx et +).
- -c N
- Context length. Ne mettez pas plus que nécessaire : le KV cache mange la VRAM.
- -b N / -ub N
- Batch size et micro-batch. 512/512 par défaut. 1024/512 pour accélérer le prompt processing.
- --no-mmap
- Désactive le mmap. À tester si le chargement initial est lent sur certains SSD.
#5. Se tenir à jour
llama.cpp sort plusieurs commits par jour. Un git pull hebdomadaire est un bon rythme. En cas de régression, utilisez git checkout sur un tag précis (ex : b4400).
#Dépannage
- nvcc not found
- Le CUDA Toolkit n'est pas dans le PATH. Sur Linux : export PATH=/usr/local/cuda/bin:$PATH.
- Mismatch de version CUDA
- Drivers NVIDIA plus vieux que le Toolkit. Mettez à jour les drivers (version supérieure ou égale requise pour chaque Toolkit).
- Link error avec cuBLAS
- Mauvais LD_LIBRARY_PATH. Ajoutez /usr/local/cuda/lib64.
- Build échoue sur MSVC
- Ouvrez un 'x64 Native Tools Command Prompt for VS 2022', pas PowerShell. Certains outils cmake ne trouvent pas cl.exe sinon.
Ce guide vous a aidé ?
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.