GPU o CPU para IA: ¿cuál es la diferencia?
Comparación profunda entre unidades centrales (CPU) y unidades gráficas (GPU) para tareas de aprendizaje automático. Explicación de la diferencia fundamental entre latencia (Latency-oriented) y ancho de banda (Throughput-oriented), ancho de banda de memoria (DDR5 vs HBM3e) y benchmarking en CLI.
1. Visión general del concepto y problema sistémico
Para entender por qué los aceleradores gráficos se han convertido en la principal moneda de infraestructura del siglo XXI, es necesario observar la diferencia fundamental en las filosofías de diseño de los chips de silicio:
- CPU (Unidad Central de Procesamiento) — optimizada para minimizar la latencia (Latency-Oriented): Es un pequeño grupo de 8–32 núcleos universales extremadamente potentes con grandes cachés L1/L2/L3 y complejos bloques de predicción de saltos (Branch Predictor). La CPU está diseñada para ejecutar rápidamente una única hebra secuencial de instrucciones complejas del sistema operativo.
- GPU (Unidad de Procesamiento Gráfico) — optimizada para maximizar el ancho de banda (Throughput-Oriented): Es un arreglo de 5,000–18,000 núcleos de cálculo paralelos simples (ALU), agrupados en multiprocesadores de flujo (SM). No desperdician transistores en la predicción de saltos, sino que utilizan la paradigma SIMT (Single Instruction, Multiple Threads): la misma operación matemática (por ejemplo, multiplicación de vectores) se aplica simultáneamente a miles de flujos de datos.
Modelo mental: CPU es un mensajero rápido en un auto deportivo que entrega un paquete urgente de inmediato. GPU es un gigantesco tren de carga que transporta 10,000 toneladas de grava en un solo viaje.
┌─────────────────────────────────────────────────────────────┐
│ COMPARACIÓN DE ARQUITECTURAS │
├─────────────────────────────────────────────────────────────┤
│ 1. CPU: Pocos núcleos rápidos + Gigante L3 Cache │
│ [ NÚCLEO 1 ] [ NÚCLEO 2 ] [ NÚCLEO 3 ] [ NÚCLEO 4 ] │
│ └───────────────── L3 CACHE (64MB) ─────────────────┘ │
│ Ancho de banda de memoria: DDR5 (60 - 90 GB/s) │
├─────────────────────────────────────────────────────────────┤
│ 2. GPU: Miles de núcleos simples + Ancho de banda de memoria │
│ [SM][SM][SM][SM][SM][SM][SM][SM][SM][SM][SM][SM] ... │
│ (hasta 18,000 núcleos CUDA + Tensor Cores) │
│ Ancho de banda de memoria: GDDR6X / HBM3e (1,000 - 3,350 GB/s) │
└─────────────────────────────────────────────────────────────┘
2. Taxonomía arquitectónica y modelo mental
Puede medir la velocidad de multiplicación de matrices en CPU frente a GPU utilizando una simple prueba de una línea en Python:
# Prueba de velocidad de multiplicación de matrices 8192x8192 en dispositivos disponibles
python3 -c "
import torch, time
n = 8192
# 1. Prueba en CPU
a_cpu, b_cpu = torch.randn(n, n), torch.randn(n, n)
t0 = time.time()
torch.mm(a_cpu, b_cpu)
print(f'Tiempo CPU: {time.time() - t0:.3f} s')
# 2. Prueba en GPU (si hay CUDA o Apple MPS)
device = 'cuda' if torch.cuda.is_available() else ('mps' if torch.backends.mps.is_available() else None)
if device:
a_gpu, b_gpu = a_cpu.to(device), b_cpu.to(device)
torch.mm(a_gpu, b_gpu) # calentamiento
t0 = time.time()
torch.mm(a_gpu, b_gpu)
if device == 'cuda': torch.cuda.synchronize()
print(f'Tiempo GPU ({device}): {time.time() - t0:.4f} s')
"
En un sistema moderno, la GPU completa el cálculo en 0.015 segundos, mientras que una CPU insignia de 16 núcleos tarda más de 0.8–1.2 segundos en la misma operación (¡una diferencia de 50–80 veces!).
3. Por qué la inferencia LLM es limitada por la memoria (Memory-Bound)
Durante la fase de generación de texto, el modelo opera bajo la regla de que para emitir un token, es necesario leer de la memoria todos los pesos del modelo una vez:
- Si el modelo Llama 3.1 8B en formato de 4 bits ocupa 5 GB:
- En un sistema con bus DDR5 (velocidad de lectura 60 GB/s):
Límite teórico de velocidad: $\frac{60 \text{ GB/s}}{5 \text{ GB}} \approx 12 \text{ tokens/seg}$. - En la tarjeta gráfica RTX 4090 (velocidad de memoria 1,000 GB/s):
Límite teórico de velocidad: $\frac{1000 \text{ GB/s}}{5 \text{ GB}} \approx 200 \text{ tokens/seg}$.
- En un sistema con bus DDR5 (velocidad de lectura 60 GB/s):
Es por eso que la tarjeta gráfica supera al procesador en IA generativa no tanto por la frecuencia o los núcleos, sino por la colosal velocidad de transferencia de datos entre el chip de memoria y los bloques de cálculo.
4. Escenarios prácticos de ingeniería en producción
- Para orquestación de agentes, análisis de código, enrutamiento de solicitudes HTTP e interacción con bases de datos, la CPU sigue siendo el absoluto maestro insustituible del sistema.
- Para cálculo de matrices de pesos de redes neuronales, vectorización de embeddings y generación de medios, el acelerador gráfico (GPU) con alto ancho de banda de memoria (VRAM) es el estándar indiscutible.
FAQ: GPU o CPU para IA: ¿cuál es la diferencia?
Términos relacionados
Memoria de Video (VRAM) para IA
La memoria de video (Video RAM) de la GPU se utiliza para cargar los pesos de la red neuronal y la ventana de contexto. Es el principal cuello de botella de hardware: si el modelo no cabe en la VRAM, no se ejecutará o funcionará decenas de veces más lento en una CPU convencional.
Apple Silicon para IA (Serie M y Memoria Unificada)
La arquitectura de los procesadores Apple (M1/M2/M3/M4) con Memoria Unificada (Unified Memory Architecture). Permite que toda la memoria RAM (hasta 128-192 GB) sea accesible para el chip gráfico como VRAM, posibilitando la ejecución de enormes redes neuronales sin tarjetas gráficas de servidor.
Unidad de Procesamiento Neural (NPU)
Un microchip especializado (Neural Processing Unit) diseñado exclusivamente para ejecutar redes neuronales artificiales con un consumo energético mínimo. Se encarga de desenfoques de fondo en videollamadas, mejora de fotografías y sugerencias locales de IA sin agotar la batería.
vLLM (Motor de Inferencia de Alto Rendimiento)
Servidor de inferencia y servicio LLM de código abierto líder que ha revolucionado el rendimiento gracias al algoritmo de virtualización de memoria PagedAttention y el batching continuo.