Key Takeaways
- Multi-GPU: divide un modelo grande en 2+ GPUs. Ejemplo: modelo 70B repartido equitativamente en 2× RTX 4090 = 48 GB de VRAM total.
- Penalización de velocidad: ~5-10% más lento que una sola GPU (overhead de comunicación entre GPUs).
- Ideal para: modelos 70B, servicios de alta concurrencia (50+ usuarios simultáneos).
- Automático: las herramientas modernas (vLLM, Ollama, llama.cpp) detectan múltiples GPUs automáticamente.
- Desde abril de 2026, esto es estándar para despliegues en producción.
¿Cómo funciona el Layer Splitting y el Paralelismo Tensorial?
Un modelo Transformer de 70B tiene 80 capas. Con el layer splitting, Ollama podría colocar:
- GPU 1: Capas 1–40
- GPU 2: Capas 41–80
Cuando se genera un token, fluye por la GPU 1, luego la GPU 2, y vuelve para el siguiente token. El overhead de comunicación es mínimo.
•💡: Consejo Pro: las capas son ligeras — lo que importa es la velocidad de comunicación entre GPUs. Las capas 1–40 en GPU1 y las capas 41–80 en GPU2 implican una transferencia de GPU por token. Por eso NVLink es importante.
Configuración Multi-GPU con vLLM
vLLM soporta el paralelismo tensorial de serie con un solo comando. Usa el flag `--tensor-parallel-size` para especificar el número de GPUs:
# Run 70B model across 2 GPUs
vllm serve meta-llama/Llama-3.1-70B \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.95 \
--port 8000
# API is now at http://localhost:8000/v1
# Same API, automatic multi-GPU handling•⚠️: Advertencia: ambas GPUs deben tener la misma VRAM. Si combinas RTX 4090 (24 GB) + RTX 4080 (16 GB), vLLM quedará limitado a 16 GB por GPU. Usa GPUs del mismo modelo para un rendimiento óptimo.
Configuración Multi-GPU con Ollama
Ollama detecta automáticamente múltiples GPUs y las divide de forma automática:
1. Ejecuta Ollama de forma normal: `ollama serve`
2. Ollama detecta 2+ GPUs y divide los modelos automáticamente
3. No se necesita configuración — simplemente funciona.
Verifica con `nvidia-smi` o `rocm-smi` que ambas GPUs estén cargando.
•🛠️: Buenas prácticas: verifica que el setup multi-GPU funciona ejecutando `nvidia-smi` y comprobando el uso de memoria de ambas GPUs. Si solo una GPU está cargada, es posible que Ollama no haya detectado la segunda GPU. Comprueba las versiones del driver y actualiza si es necesario.
Rendimiento con 2 GPUs
| Setup | Modelo | Velocidad | Coste |
|---|---|---|---|
| 1× RTX 4090 (24GB) | 7B | 150 tok/sec | $1,800 |
| 1× RTX 4090 (24GB) | 70B | No cabe | $1,800 |
| 2× RTX 4090 (48GB) | 70B Q4 | 100 tok/sec | $3,600 |
| 2× RTX 4090 (48GB) | 70B Q5 | 90 tok/sec | $3,600 |
| 1× RTX 5090 (32GB) | 70B Q4 | 40–50 tok/sec | $2,000 |
| 2× RTX 5090 (64GB) | 70B Q8 | 120 tok/sec | $4,000 |
| 2× RTX 5090 (64GB) | 405B Q4 | 25–35 tok/sec | $4,000 |
| RTX 6000 Ada + RTX 4090 | 70B FP16 | 110 tok/sec | $6,800 |
•📌: Punto clave: dos RTX 4090 ofrecen ~100 tok/sec en modelos 70B — aproximadamente el 90% de la velocidad de una sola GPU, con un overhead de comunicación del 5–10%. La RTX 5090 (32 GB GDDR7, lanzada en enero de 2026) cambió la ecuación: una sola 5090 ejecuta 70B Q4 sin división a 40–50 tok/sec. Las 5090 duales (64 GB combinados) son el primer setup de consumo capaz de manejar modelos 405B Q4.
¿Cuándo usar Multi-GPU?
Multi-GPU es rentable cuando necesitas modelos de 70B o más, o servicios de alta concurrencia. Usa múltiples GPUs cuando:
- Necesitas ejecutar modelos de 70B o más.
- Sirves a 50+ usuarios concurrentes (procesamiento por lotes).
- Quieres ejecutar varios modelos 13B simultáneamente.
- Gestionas servicios de producción (no experimentación).
•💡: Consejo Pro: para experimentar con modelos 70B, prueba primero el CPU offloading con una sola GPU (8–10 tok/sec en RTX 4090). Una vez confirmada la demanda en producción, invierte en una segunda RTX 4090 para el setup multi-GPU (100 tok/sec).
Errores comunes con Multi-GPU
- Esperar una aceleración 2× con 2 GPUs. Obtienes ~90% de la velocidad de una sola GPU (5-10% de overhead por comunicación entre GPUs).
- Asumir que las GPUs deben ser idénticas. Puedes combinar RTX 4090 + RTX 4080, pero vLLM quedará limitado por la GPU más lenta.
- No usar NVLink para la comunicación. Sin NVLink, la comunicación multi-GPU es más lenta. NVLink es poco común en GPUs de consumo.
- Ignorar el ancho de banda PCIe. La comunicación entre GPUs pasa por PCIe, que limita el ancho de banda (~16 GB/sec en PCIe 4.0).
- Comprar una segunda GPU antes de probar las opciones de una sola GPU. Antes de invertir $1,800 o más en una segunda RTX 4090, prueba: (1) cuantización Q4 en lugar de Q5/Q8 (reduce la VRAM a la mitad), (2) CPU offloading con Ollama (8–10 tok/sec para 70B en una sola 4090), (3) RTX 5090 32 GB en tarjeta única (ejecuta 70B Q4 sin división por $2,000). Multi-GPU debe ser la última optimización, no la primera.
•⚠️: Advertencia: usar GPUs del mismo modelo es esencial para un rendimiento consistente. Las GPUs no coincidentes (p. ej., 4090 + 4080) crean cuellos de botella donde la tarjeta más lenta dicta la velocidad del sistema. En producción, empareja siempre GPUs idénticas.
Preguntas frecuentes
•💬: ¿Sabías que? El ancho de banda de NVLink (900 GB/sec) frente al de PCIe (64 GB/sec) es el factor oculto en el rendimiento multi-GPU. Las GPUs profesionales A100/H100 con NVLink pueden lograr un escalado casi lineal (p. ej., 2× de aceleración con 2 GPUs). Las tarjetas RTX de consumo están limitadas a PCIe, lo que provoca un overhead del 5–10%.
¿Cuándo debería usar múltiples GPUs para LLMs locales?
Usa múltiples GPUs cuando una sola GPU no tiene suficiente VRAM para tu modelo objetivo. Dos RTX 4090 (48 GB combinados) ejecutan modelos 70B en cuantización Q5 a ~100 tokens/sec. Una sola GPU con offloading solo alcanza 8–10 tokens/sec para el mismo modelo. Multi-GPU es rentable para modelos de 70B o más cuando ya tienes o puedes adquirir una segunda GPU.
¿Cómo funciona el paralelismo tensorial de vLLM entre GPUs?
vLLM divide las capas del modelo entre GPUs usando paralelismo tensorial (`--tensor-parallel-size 2`). Cada GPU almacena la mitad de las matrices de pesos del modelo; los cálculos se realizan en paralelo y los resultados se comunican vía NVLink o PCIe. NVLink (NVLink 4.0: 900 GB/sec bidireccional) es significativamente más rápido que PCIe (64 GB/sec) para la comunicación entre GPUs.
¿Hace NVLink una diferencia significativa para la inferencia LLM?
NVLink mejora el rendimiento entre un 10–30% frente a PCIe para modelos grandes que requieren comunicación frecuente entre GPUs. Para modelos 70B divididos entre dos GPUs, NVLink reduce el overhead de comunicación del ~15% al ~3–5%. Las tarjetas RTX de consumo usan PCIe; NVLink está disponible en las GPUs profesionales A100/H100. Para uso doméstico, PCIe es suficiente.
¿Puedo combinar diferentes modelos de GPU (p. ej., RTX 4090 + RTX 4080) para la división de capas?
Técnicamente sí — vLLM y llama.cpp soportan setups con GPUs mixtas. En la práctica, la GPU más lenta limita el rendimiento del par. Un par 4090+4080 rinde más cerca de dos 4080 que de dos 4090. Se recomienda firmemente usar GPUs del mismo modelo en despliegues de producción.
¿Cuántas GPUs necesito para modelos de 70B y 405B?
70B en Q4: cabe en 2× RTX 4090 (35 GB necesarios, 48 GB disponibles). 70B en Q8: necesita 4× RTX 4090 (70 GB necesarios). 405B en Q4: necesita 4× RTX 4090 (200 GB necesarios — ajustado). Para 405B, las GPUs profesionales A100 80GB×4 (320 GB combinados) son la plataforma recomendada.
¿Cuál es la penalización de velocidad del layer splitting frente a una sola GPU?
El layer splitting añade un overhead del 5–10% por la comunicación entre GPUs. Dos RTX 4090 ejecutando un modelo 70B alcanzan ~100 tokens/sec — aproximadamente el 90% de lo que lograría una sola GPU teórica de 48 GB. Esto es mucho mejor que el CPU offloading (8–10 tokens/sec) o intentar ejecutar un modelo 70B imposible en una sola 4090.
¿Puedo ejecutar 70B en una sola RTX 5090 sin multi-GPU?
Sí — la RTX 5090 (32 GB GDDR7, enero de 2026) cabe Llama 3.3 70B en Q4_K_M (~40 GB con caché KV en contexto corto, ajustado a 32 GB con contexto de 4K). Rendimiento: 40–50 tok/sec. Para 70B en contextos más largos (32K+) o cuantización más alta (Q5+), todavía se necesitan GPUs duales. La 5090 eliminó la necesidad de multi-GPU para 70B Q4 en contexto corto.
¿Vale la pena PCIe 5.0 para setups multi-GPU de LLM?
PCIe 5.0 duplica el ancho de banda a ~128 GB/sec frente a los 64 GB/sec de PCIe 4.0. Para la inferencia dual-GPU 70B, esto reduce el overhead de comunicación del ~10% al ~6–7%. La mejora es notable pero no transformadora — NVLink (900 GB/sec) sigue siendo la única forma de lograr un escalado casi lineal. Para builds de consumo, se recomiendan placas base PCIe 5.0 si se compra nuevo, pero actualizar desde PCIe 4.0 solo para multi-GPU no es rentable.
Fuentes
- Documentación de Paralelismo Tensorial vLLM -- Documentación oficial de vLLM sobre servicio distribuido y paralelismo tensorial.
- Soporte Multi-GPU de Ollama -- Documentación de GitHub de Ollama para detección de GPU y layer splitting.
- Tensores Distribuidos de PyTorch -- Documentación del framework principal para operaciones tensoriales distribuidas.