Compilare llama.cpp con CUDA: guida alla compilazione passo dopo passo
Ollama e LM Studio incorporano llama.cpp, ma spesso restano indietro di 1 o 2 versioni, con flag conservativi. Compilare llama.cpp da soli significa guadagnare dal 20 al 40% di velocità su una RTX recente e avere accesso alle funzionalità appena uscite. Questa guida copre Windows, Linux e la compilazione con CUDA.
#Perché compilare da soli
- Funzionalità in anteprima
- Nuove quantizzazioni (IQ4_NL, Q2_K_S), nuovi modelli (Mamba, DeepSeek), flag sperimentali.
- Prestazioni ottimali
- Build ottimizzato per la tua CPU specifica (AVX-512, AMX) e la tua generazione CUDA (sm_89 per RTX 40, sm_90 per RTX 50).
- Strumenti di basso livello
- llama-bench per eseguire benchmark, llama-cli per creare script, llama-server per un endpoint essenziale (senza UI né dipendenze).
#Prerequisiti
- CUDA Toolkit 12.x
- Scaricabile su developer.nvidia.com. Non confondere con i driver — il Toolkit include nvcc, il compilatore.
- CMake 3.21+
- apt install cmake su Linux, tramite chocolatey su Windows.
- Compilatore C++
- gcc 11+ su Linux, MSVC 2022 Build Tools su Windows
- Git
- Per clonare e aggiornare.
#1. Clonare il repo
#2. Compilazione con CUDA
La compilazione dura da 3 a 10 minuti a seconda della tua CPU. I binari vengono salvati in build/bin/ (Linux) o in build/bin/Release/ (Windows).
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
#3. Testare
#4. Flag di ottimizzazione
- -ngl N
- Numero di layer caricati sulla GPU. Imposta 99 (o di più) per caricare tutto, se la VRAM lo permette.
- -fa
- Flash Attention. Velocità aumentata del 20-30 %, minore consumo di VRAM per il contesto. Attivala sempre se la tua GPU è Ampere o successiva (RTX 30xx e successive).
- -c N
- Lunghezza del contesto. Non impostare un valore superiore al necessario: la cache KV consuma VRAM.
- -b N / -ub N
- Dimensione del batch e micro-batch. 512/512 di default. 1024/512 per accelerare il processing del prompt.
- --no-mmap
- Disattiva il mmap. Da testare se il caricamento iniziale è lento su alcuni SSD.
#5. Tenersi aggiornati
llama.cpp pubblica diversi commit al giorno. Eseguire git pull una volta alla settimana è un buon ritmo. In caso di regressione, usa git checkout su un tag preciso (es.: b4400).
#Risoluzione dei problemi
- nvcc not found
- Il toolkit CUDA non è presente nel PATH. Su Linux: export PATH=/usr/local/cuda/bin:$PATH.
- Mancata corrispondenza della versione CUDA
- Driver NVIDIA più vecchi del Toolkit. Aggiorna i driver (per ogni Toolkit è richiesta una versione pari o superiore a quella necessaria).
- Errore di collegamento con cuBLAS
- LD_LIBRARY_PATH errato. Aggiungi /usr/local/cuda/lib64.
- Compilazione fallita con MSVC
- Apri un 'x64 Native Tools Command Prompt for VS 2022', non PowerShell. Alcuni strumenti cmake non trovano cl.exe altrimenti.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.