Error «CUDA out of memory» en Ollama: 7 Soluciones que Funcionan (2025)
Tiempo de lectura estimado: 8 minutos
Si estás viendo el temido error CUDA out of memory
cuando intentas ejecutar modelos en Ollama, no estás solo. Es EL problema más común al correr LLMs locales, pero tiene solución. Esta guía te muestra 7 formas probadas de arreglarlo, de la más simple a la más avanzada.
⚡ TL;DR: El error significa que tu GPU no tiene suficiente VRAM para el modelo. Soluciones rápidas: usa modelo más pequeño (solución 1), usa cuantización mayor (solución 2), o activa offloading a RAM (solución 3). Sigue leyendo para detalles y soluciones avanzadas.
📋 Índice de Soluciones
- Usa un modelo más pequeño o cuantizado (5 min, fácil)
- Cambia a cuantización más agresiva (5 min, fácil)
- Activa offloading a RAM (10 min, intermedio)
- Reduce el context length (2 min, fácil)
- Ajusta batch size y concurrent requests (5 min, intermedio)
- Cierra otros procesos que usen GPU (1 min, fácil)
- Considera upgrade de hardware (costoso, largo plazo)
🔍 Por Qué Ocurre Este Error
El error «CUDA out of memory» significa:
Tu GPU no tiene suficiente VRAM (memoria de vídeo) para cargar el modelo LLM que estás intentando ejecutar. Los modelos grandes necesitan mucha VRAM:
Modelo | Tamaño base | VRAM necesaria (sin cuantizar) | VRAM necesaria (Q4) |
---|---|---|---|
Llama 3.1 8B | ~16GB | ~10GB | ~5GB |
Llama 3.1 70B | ~140GB | ~80GB | ~40GB |
Mistral 7B | ~14GB | ~9GB | ~4.5GB |
Qwen 2.5 14B | ~28GB | ~18GB | ~9GB |
Mixtral 8x7B | ~90GB | ~50GB | ~25GB |
Ejemplo típico del error:
Error: CUDA out of memory. Tried to allocate 1024.00 MiB (GPU 0; 11.91 GiB total capacity; 10.89 GiB already allocated)
Esto te dice:
- Tu GPU tiene 11.91 GB VRAM total (ej: RTX 3060 12GB)
- Ya hay 10.89 GB ocupados
- El modelo necesita 1024 MB más y no cabe
1. Usa un Modelo Más Pequeño o Cuantizado
Dificultad: ⭐ Fácil | Tiempo: 5 min | Efectividad: ⭐⭐⭐⭐⭐
La solución más simple: si Llama 70B no cabe, usa Llama 8B.
Modelos recomendados según tu VRAM:
8-12GB VRAM (RTX 3060, 4060, 3080 10GB):
ollama run llama3.1:8b
ollama run mistral:7b
ollama run gemma2:9b
ollama run qwen2.5:7b
16GB VRAM (RTX 4070 Ti SUPER, AMD RX 6800 XT):
ollama run llama3.1:8b
ollama run qwen2.5:14b
ollama run mixtral:8x7b-instruct-v0.1-q4_K_M
ollama run deepseek-coder:6.7b
24GB+ VRAM (RTX 3090, 4090):
ollama run llama3.1:70b-instruct-q4_K_M
ollama run qwen2.5:32b
ollama run deepseek-coder:33b-instruct-q5_K_M
¿Pierdo calidad?
Sí, pero menos de lo que piensas. Llama 3.1 8B es sorprendentemente capaz para la mayoría de tareas. Prueba primero con 8B antes de complicarte.
2. Cambia a Cuantización Más Agresiva
Dificultad: ⭐ Fácil | Tiempo: 5 min | Efectividad: ⭐⭐⭐⭐
La cuantización comprime el modelo sacrificando un poco de precisión. Ollama usa cuantizaciones GGUF:
Cuantización | Tamaño vs original | Calidad | Cuándo usar |
---|---|---|---|
Q8 | ~50% | Casi perfecta | Si tienes VRAM de sobra |
Q6 | ~37% | Excelente | Balance ideal |
Q5 | ~31% | Muy buena | Poco VRAM, buena calidad |
Q4 | ~25% | Buena | Default Ollama, recomendado |
Q3 | ~19% | Aceptable | Solo si no queda otra |
Q2 | ~12% | Mala | No recomendado |
Cómo cambiar de cuantización:
Ollama por defecto usa Q4. Para usar Q5, Q6, etc:
# Llama 70B en Q4 (default, ~40GB VRAM)
ollama run llama3.1:70b
# Llama 70B en Q5 (~50GB VRAM, mejor calidad)
ollama run llama3.1:70b-instruct-q5_K_M
# Llama 70B en Q3 (~30GB VRAM, peor calidad)
ollama run llama3.1:70b-instruct-q3_K_M
Tip: Empieza con Q4. Si tienes VRAM sobrando, sube a Q5/Q6. Si sigue sin caber, baja a Q3.
3. Activa Offloading a RAM (CPU Fallback)
Dificultad: ⭐⭐ Intermedio | Tiempo: 10 min | Efectividad: ⭐⭐⭐
Si el modelo NO cabe completamente en VRAM, Ollama puede cargar parte en RAM del sistema (mucho más lento, pero funciona).
Cómo funciona:
Ollama tiene un parámetro num_gpu
que controla cuántas capas del modelo van a GPU. El resto va a RAM.
Ejemplo: Llama 70B tiene 80 capas. Con 24GB VRAM (RTX 3090):
num_gpu 40
→ 40 capas en GPU (cabe), 40 en RAM (lento)num_gpu 50
→ 50 en GPU, 30 en RAMnum_gpu 0
→ Todo en RAM (muy lento, no necesitas GPU)
Configuración en Ollama:
Opción 1: Via Modelfile personalizado
# Crea un Modelfile
cat > Modelfile <<EOF
FROM llama3.1:70b
PARAMETER num_gpu 40
PARAMETER num_thread 8
EOF
# Crea modelo custom
ollama create llama70b-hybrid -f Modelfile
# Úsalo
ollama run llama70b-hybrid
Opción 2: Variable de entorno (global)
# Linux/Mac
export OLLAMA_NUM_GPU=40
ollama run llama3.1:70b
# Docker
docker run -e OLLAMA_NUM_GPU=40 ...
¿Cuánta RAM necesito?
Regla general: Lo que no cabe en VRAM necesitas en RAM + 10% buffer.
- Llama 70B Q4 = ~40GB total
- Si tienes 24GB VRAM → necesitas ~20GB RAM libre
- Si tienes 16GB VRAM → necesitas ~30GB RAM libre
Advertencia: El offloading a RAM es 10-20x más lento que GPU pura. Úsalo solo si no tienes otra opción.
4. Reduce el Context Length (Longitud del Contexto)
Dificultad: ⭐ Fácil | Tiempo: 2 min | Efectividad: ⭐⭐⭐
El context length es cuántos tokens (palabras) recuerda el modelo. Más contexto = más VRAM.
Defaults típicos:
- Llama 3.1: 128k tokens (mucha VRAM)
- Mistral: 32k tokens
- Gemma: 8k tokens
Cómo reducirlo:
Via Modelfile:
FROM llama3.1:8b
PARAMETER num_ctx 4096 # Reduce de 128k a 4k
Via API:
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1:8b",
"prompt": "Hola",
"options": {
"num_ctx": 4096
}
}'
¿Cuánto context necesito realmente?
- 4k tokens: ~3,000 palabras, suficiente para chat corto
- 8k tokens: ~6,000 palabras, conversaciones largas
- 32k tokens: ~24,000 palabras, análisis de documentos
- 128k tokens: ~96,000 palabras, libros completos (overkill mayoría de casos)
Para chat normal, 4k-8k es más que suficiente.
5. Ajusta Batch Size y Concurrent Requests
Dificultad: ⭐⭐ Intermedio | Tiempo: 5 min | Efectividad: ⭐⭐
Si usas Ollama con múltiples usuarios/requests simultáneos, puedes quedarte sin VRAM por requests concurrentes.
Parámetros a ajustar:
OLLAMA_MAX_LOADED_MODELS: Cuántos modelos diferentes puede tener cargados simultáneamente
# Default: 1 modelo a la vez
export OLLAMA_MAX_LOADED_MODELS=1
# Permite 2 modelos (necesitas 2x VRAM)
export OLLAMA_MAX_LOADED_MODELS=2
OLLAMA_NUM_PARALLEL: Requests paralelos del mismo modelo
# Default: 1 request a la vez
export OLLAMA_NUM_PARALLEL=1
# Permite 4 requests (4x VRAM del contexto)
export OLLAMA_NUM_PARALLEL=4
Batch size: Tokens procesados por batch
FROM llama3.1:8b
PARAMETER num_batch 512 # Default suele ser 512
Reduce num_batch
a 256 o 128 si tienes poco VRAM.
6. Cierra Otros Procesos que Usen GPU
Dificultad: ⭐ Muy fácil | Tiempo: 1 min | Efectividad: ⭐⭐
A veces el problema es que otros procesos están usando tu VRAM.
Verifica qué usa tu GPU:
nvidia-smi
Busca en la tabla «Processes» qué está usando VRAM:
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 12345 C /usr/bin/python3 4096MiB |
| 0 N/A N/A 67890 C ComfyUI 6144MiB |
+-----------------------------------------------------------------------------+
Culpables comunes:
- Navegador con aceleración GPU (Chrome, Firefox)
- Stable Diffusion / ComfyUI / SwarmUI corriendo
- Otro modelo Ollama cargado
- Juegos en background
- Entorno de escritorio con compositing GPU
Solución rápida:
# Matar proceso por PID
sudo kill -9 12345
# Reiniciar Ollama
sudo systemctl restart ollama
# O si usas Docker
docker restart ollama
7. Considera Upgrade de Hardware
Dificultad: 💰💰💰 Costoso | Tiempo: Variable | Efectividad: ⭐⭐⭐⭐⭐
Si regularmente necesitas correr modelos grandes, quizás necesitas más VRAM.
Opciones de upgrade 2025:
GPU | VRAM | Precio aprox | Modelos que soporta |
---|---|---|---|
RTX 3090 | 24GB | 700-900€ (2ª mano) | Hasta 70B Q4 |
RTX 4090 | 24GB | ~1,800€ | Hasta 70B Q5 |
RTX 5090 | 32GB | ~2,500€ | Hasta 70B Q6 o 405B Q2 |
RTX 4070 Ti SUPER | 16GB | ~800€ | Hasta 30B Q4 |
AMD RX 7900 XTX | 24GB | ~900€ | Hasta 70B Q4 (ROCm) |
Alternativa: Multiple GPUs
Ollama soporta múltiples GPUs (modelo split entre ellas):
# 2x RTX 3090 = 48GB VRAM combinada
export CUDA_VISIBLE_DEVICES=0,1
ollama run llama3.1:70b
Pero necesitas motherboard con 2+ slots PCIe y PSU potente.
❓ Preguntas Frecuentes (FAQ)
¿Por qué Ollama usa más VRAM que el tamaño del modelo?
Además del modelo, Ollama carga: (1) KV cache para el contexto (~2-4GB según context length), (2) buffers de procesamiento (~500MB-1GB), (3) overhead del runtime (~500MB). Total suele ser modelo + 30-50% extra.
¿Puedo usar swap de disco si no tengo RAM suficiente?
Técnicamente sí, pero será tan lento que no vale la pena. El swap a disco es 1000x más lento que RAM. Mejor usa modelo más pequeño o Q3/Q2.
¿AMD GPUs tienen el mismo problema?
Sí, pero peor. ROCm (equivalente AMD de CUDA) tiene menos optimización que CUDA. Misma VRAM → AMD necesita ~10-20% más por overhead. Ollama con AMD funciona, pero NVIDIA es más eficiente.
¿Qué es mejor: 1x RTX 4090 (24GB) o 2x RTX 3060 (24GB total)?
1x RTX 4090 sin dudarlo. Las GPUs múltiples necesitan comunicación entre ellas (lento). Una sola GPU con 24GB es mucho más eficiente que dos con 12GB cada una.
¿El error desaparece si reinicio Ollama?
A veces sí. Ollama puede acumular memoria fragmentada. Reiniciar libera todo: systemctl restart ollama
o docker restart ollama
. Si vuelve a pasar, no es el fix.
¿Puedo limitar cuánta VRAM usa Ollama?
No directamente, pero puedes: (1) Usar modelos más pequeños, (2) Reducir num_ctx, (3) Limitar num_gpu. No hay un flag «usa máximo 8GB VRAM».
¿Funciona en Mac con GPU integrada?
Sí, Macs con Apple Silicon (M1/M2/M3) usan memoria unificada (RAM = VRAM). Ollama en Mac usa Metal (no CUDA). Un Mac con 32GB RAM puede correr modelos ~20-25GB sin problemas.
🎯 Resumen: Qué Hacer Primero
Si acabas de encontrar el error, haz esto en orden:
- ✅ Verifica cuánta VRAM tienes:
nvidia-smi
→ mira «Total memory» - ✅ Prueba modelo más pequeño: Si intentabas 70B, prueba 8B primero
- ✅ Usa Q4 cuantización: Default de Ollama, buen balance
- ✅ Reduce context:
num_ctx 4096
en lugar de 128k - ✅ Cierra otros procesos GPU: Chrome, Stable Diffusion, etc.
- ✅ Si sigue fallando: Activa offloading a RAM (necesitas 32GB+ RAM)
- ✅ Último recurso: Usa Q3 o Q2 (peor calidad)
Regla de oro:
Si tienes 12GB VRAM → modelos 7B-13B cómodos
Si tienes 16GB VRAM → modelos 13B-30B cómodos
Si tienes 24GB VRAM → modelos 70B Q4 cómodos
Si tienes 32GB+ VRAM → modelos 70B Q5/Q6 o 405B Q2
📚 Recursos Relacionados
- Monta tu Servidor de IA Casero – Guía completa hardware y configuración
- Instala Docker – Prerequisito para Ollama
- Ollama Modelfile Docs – Documentación oficial parámetros
- Guía n8n v2 – Automatiza Ollama con workflows
¿Te funcionó alguna solución? Déjanos un comentario contando qué te sirvió. Si tienes otra variante del error CUDA, compártela para ayudar a otros.
¡Feliz inferencia local! 🤖