Sígueme
← Volver

Guía Llama.cpp: Capítulo 2 — Configuración GPU: NVIDIA y Vulkan

24 de octubre de 2026
Guía Llama.cpp: Capítulo 2 — Configuración GPU: NVIDIA y Vulkan

La CPU puede ejecutar cualquier modelo, pero la GPU es lo que convierte la inferencia de un ejercicio de paciencia en una experiencia fluida. En este capítulo configuramos los dos backends GPU más usados: CUDA para NVIDIA y Vulkan como opción universal (AMD, Intel, integradas, portabilidad).

1. Cómo funciona la deslocalización de capas

llama.cpp organiza el modelo en capas (layers). El parámetro -ngl N (n-gpu-layers) indica cuántas capas se trasladan a la GPU:

Estrategia práctica: empieza con -ngl 99; si hay errores de memoria, baja progresivamente (40, 24, 16...) hasta estabilizar.

2. NVIDIA con CUDA

2.1 Instalar el CUDA Toolkit

  1. Descarga el CUDA Toolkit (12.x en 2026) desde el portal de NVIDIA.
  2. Durante la instalación, marca al menos el runtime y el compilador nvcc.
  3. Verifica:
nvcc --version
nvidia-smi

nvidia-smi te da la información crítica: VRAM total y memoria en uso, las dos cifras que gobiernan tus decisiones de -ngl y cuantización.

2.2 Compilar con CUDA (Windows)

cmake -B build -DGGML_CUDA=ON -DGGML_NATIVE=ON
cmake --build build --config Release -j

2.3 Compilar con CUDA (Linux)

cmake -B build -DGGML_CUDA=ON -DGGML_NATIVE=ON
cmake --build build --config Release -j$(nproc)

2.4 Variables y opciones útiles de CUDA

2.5 Comprobación

./llama-cli -m models/modelo.gguf -ngl 99 -p "Prueba de GPU"

En los primeros segundos de arranque verás el volcado del backend:

ggml_cuda: found 1 CUDA devices:
  Device 0: NVIDIA GeForce RTX XXXX, compute capability 8.6, VMM: yes

Y durante la carga del modelo, algo como offloaded 32/32 layers to GPU. Si lees esa línea, estás acelerando.

3. Vulkan: la opción universal

Vulkan es la alternativa cuando:

3.1 Requisitos

# Debian/Ubuntu
sudo apt install -y vulkan-tools libvulkan-dev glslang-tools
vulkaninfo --summary   # comprueba que se detecta el dispositivo

3.2 Compilar con Vulkan

cmake -B build -DGGML_VULKAN=ON
cmake --build build --config Release -j

En Windows con Visual Studio, además del compilador, instala el Vulkan SDK (LunarG) para disponer de glslangValidator.

3.3 Vulkan vs CUDA: qué esperar

Aspecto CUDA Vulkan
Rendimiento en RTX Óptimo (100%) ~80-95%
AMD / Intel No disponible Disponible
Portabilidad del binario Limitada a NVIDIA Cualquier GPU con Vulkan
Gestión multi-GPU Implementación NVIDIA Implementación genérica

💡 Regla práctica: si tienes NVIDIA, usa CUDA. Para todo lo demás, Vulkan con fallback automático a CPU.

4. Gestión de VRAM

4.1 Dimensionar la cuantización según tu VRAM

Ecuación mental rápida: VRAM necesaria ≈ tamaño GGUF + KV-cache. La KV-cache depende de ctx, n_batch y del modelo (el número de cabezas y capas).

VRAM GPU Recomendación model-size
4 GB 1B–3B en Q4_K_M
6–8 GB 7B–8B en Q4_K_M
12 GB 8B Q5/Q6, 14B Q4_K_M
16–24 GB 14B–30B en Q4/Q5, con contexto amplio
24+ GB / multi-GPU 70B en Q4 con -ngl 99 (o split de capas)

4.2 Contexto y VRAM

El contexto (-c) consume memoria que también vive en GPU. Subir de 4096 a 16384 puede añadir cientos de MB o varios GB. Si el objetivo es contexto largo sobre una GPU pequeña, considera:

4.3 Monitorizar en caliente

# Windows
nvidia-smi -l 2

# Linux
watch -n 2 nvidia-smi

Si al cargar el modelo la VRAM llega al 100 % pero los tokens/segundo son pésimos, estás usando memoria compartida (swap de GPU). Baja cuantización o -ngl.

5. Multi-GPU

Con varias GPUs, llama.cpp las detecta y reparte capas. Con Vulkan puedes seleccionar dispositivos:

./llama-cli -m models/modelo.gguf -ngl 99 --device GPU-0,GPU-1

Y con CUDA, --split-mode:

6. Checklist final del capítulo

Con la GPU lista, pasamos al corazón del sistema: el servidor de inferencia en el capítulo 3.

Recursos adicionales