Compilar llama.cpp con CUDA: guía de compilación paso a pas
Ollama y LM Studio encapsulan llama.cpp, pero a menudo llevan 1 o 2 versiones de retraso, con opciones conservadoras. Compilar llama.cpp por tu cuenta permite ganar entre un 20 y un 40 % de velocidad en una RTX reciente y acceder a las funciones que acaban de salir. Esta guía cubre Windows, Linux y la compilación con CUDA.
#¿Por qué compilar por tu cuenta?
- Características en versión preliminar
- Nuevas cuantizaciones (IQ4_NL, Q2_K_S), nuevos modelos (Mamba, DeepSeek), flags experimentales.
- Rendimiento óptimo
- Compilación optimizada para tu CPU específica (AVX-512, AMX) y tu generación CUDA (sm_89 para RTX 40, sm_90 para RTX 50).
- Herramientas de bajo nivel
- llama-bench para medir el rendimiento, llama-cli para usar en scripts, llama-server para un endpoint básico (sin interfaz de usuario ni dependencias).
#Prerrequisitos
- CUDA Toolkit 12.x
- Descargable en developer.nvidia.com. No confundir con los drivers — el Toolkit incluye nvcc, el compilador.
- CMake 3.21+
- apt install cmake en Linux, mediante chocolatey en Windows.
- Compilador C++
- gcc 11+ en Linux, MSVC 2022 Build Tools en Windows.
- Git
- Para clonar y actualizar.
#1. Clonar el repositorio
#2. Compilación con CUDA
La compilación tarda entre 3 y 10 minutos según tu CPU. Los binarios quedan en build/bin/ (Linux) o build/bin/Release/ (Windows).
Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
#3. Probar
#4. Flags de optimización
- -ngl N
- Número de capas cargadas en GPU. Pon 99 (o más) para cargar todo si la VRAM lo permite.
- -fa
- Flash Attention. +20-30 % de velocidad y menor consumo de VRAM para el contexto. Actívalo siempre si tu GPU es Ampere+ (RTX 30xx y posteriores).
- -c N
- Longitud del contexto. No configures un valor mayor de lo necesario: la caché KV consume VRAM.
- -b N / -ub N
- Tamaño de lote y micro-lote. 512/512 por defecto. 1024/512 para acelerar el procesamiento del prompt.
- --no-mmap
- Desactiva mmap. Probar si la carga inicial es lenta en algunos SSD.
#5. Mantenerse actualizado
llama.cpp publica varios commits diarios. Un git pull semanal es un buen ritmo. En caso de regresión, utiliza git checkout con una etiqueta específica (por ejemplo: b4400).
#Solución de problemas
- nvcc not found
- CUDA Toolkit no está en el PATH. En Linux: export PATH=/usr/local/cuda/bin:$PATH.
- Desajuste de versión CUDA
- Controladores NVIDIA más antiguos que el Toolkit. Actualiza los controladores (cada Toolkit requiere una versión igual o superior a la exigida).
- Error de enlace con cuBLAS
- LD_LIBRARY_PATH incorrecto. Añade /usr/local/cuda/lib64.
- La compilación falla con MSVC
- Abre un 'x64 Native Tools Command Prompt for VS 2022', no PowerShell. De lo contrario, algunas herramientas de cmake no encuentran cl.exe.
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.