Contenido
Capítulo 1

Anatomía de un clúster de GPU

De un streaming multiprocessor a una red de mil GPUs

Antes de poder operar, afinar o proteger un clúster necesitas un modelo mental de lo que tiene dentro. Este capítulo sube por la jerarquía: la GPU y sus SM, la memoria que los alimenta, los enlaces entre GPUs de un servidor y la red entre servidores. Ten una idea en mente todo el tiempo: cada nivel es aproximadamente un orden de magnitud más lento que el de abajo, y casi todas las decisiones de diseño se ubican en esa escalera.

1.1GPU

Una CPU dedica sus transistores a que un hilo vaya rápido: cachés profundas, predicción de saltos, ejecución fuera de orden. Una GPU los dedica a muchos carriles de aritmética. Oculta la latencia de memoria manteniendo miles de hilos en vuelo y cambiando entre ellos sin costo.

Para ML y HPC ese intercambio es ideal. El trabajo es sobre todo álgebra lineal densa: la misma operación sobre arreglos enormes. Una GPU de centro de datos como la H100 combina ~130 streaming multiprocessors con tensor cores y 80 GB de HBM a varios TB/s.

Qué hace rápida a una GPU en la práctica

  • Suficiente trabajo paralelo para llenar todos los SM (ver ocupación).
  • Intensidad aritmética lo bastante alta para estar limitado por cómputo y no por memoria (ver Modelo roofline).
  • Datos que se quedan en el dispositivo. Las transferencias por PCIe son ~50× más lentas que HBM.

En un clúster, la GPU es un nodo de una jerarquía: GPU → NVLink dentro del servidor → InfiniBand y RoCE entre servidores. Casi toda la ingeniería de clústeres consiste en mantener ocupada esa jerarquía.

Checkpoint+50 XP30 XP si necesitas reintentar
¿Cómo oculta principalmente una GPU la latencia de memoria?
¿Aproximadamente cuánto más lento es PCIe Gen5 (~64 GB/s) que la HBM de una H100 (~3,350 GB/s)?

1.2Streaming Multiprocessor (SM)

Un SM es más o menos lo que un "núcleo" es en una CPU, pero diseñado para rendimiento. Cada SM tiene planificadores de warps, un banco de registros grande, memoria compartida / L1 configurable y unidades de ejecución: "CUDA cores" FP32/INT, unidades de funciones especiales y tensor cores.

Un lanzamiento de kernel se divide en thread blocks. Cada bloque cae en un SM y se queda ahí. El SM intercala los warps de todos los bloques residentes en cada ciclo, así que cuando un warp espera a la memoria otro emite instrucciones.

Por qué te importa como operador

  • Número de SM × reloj fija los FLOP/s máximos. Una GPU limitada al 55% del reloj (por temperatura o potencia) entrega ~55% del cómputo. Ver potencia y temperatura.
  • DCGM_FI_PROF_SM_ACTIVE y SM_OCCUPANCY (de DCGM) te dicen si los SM están realmente ocupados. La "GPU utilization" de nvidia-smi solo significa que algún kernel estaba corriendo, no que todos los SM trabajaran.
Checkpoint+50 XP30 XP si necesitas reintentar
nvidia-smi reporta 100% de GPU-Util. ¿Qué garantiza eso realmente?
Una H100 está limitada térmicamente al 55% de su reloj máximo de SM. ¿Aproximadamente qué porcentaje de sus FLOP/s máximos puede entregar?
%

1.3HBM y la jerarquía de memoria

La High Bandwidth Memory apila chips de DRAM junto a la GPU sobre un interposer de silicio. Una H100 SXM tiene 80 GB a ~3.35 TB/s. Debajo están la L2 (decenas de MB), la memoria compartida/L1 de cada SM y los registros, cada uno más pequeño y más rápido.

La capacidad es el primer muro en el entrenamiento de modelos grandes. Adam en precisión mixta necesita ~16 bytes por parámetro (pesos, gradientes, copia maestra FP32 y dos momentos), antes de las activaciones. Un modelo de 7B necesita ~107 GB solo de estado, más de lo que cabe en una GPU. Por eso existen ZeRO/FSDP, el paralelismo tensorial y el checkpointing de activaciones.

El ancho de banda es el segundo muro. Cualquier kernel con baja intensidad aritmética (operaciones elemento a elemento, normalizaciones, matrices pequeñas) está limitado por el ancho de banda de HBM, no por los FLOPs. Ver Modelo roofline.

Prueba la calculadora de abajo: cambia el modelo, la etapa de ZeRO y el paralelismo, y mira la memoria por GPU frente a la línea de 80 GB.

EN VIVO Calculadora de memoria de entrenamiento
pesos 13.4 GBgradientes 13.4 GBoptimizador 5.0 GBactivaciones 36.5 GBframework 3.0 GB
80 GB HBM
Por GPU
71.3 GB
Veredicto
cabe
Paralelismo de datos
dp = 16
Parámetros / GPU
6.70 B

Memoria por GPU para Adam en precisión mixta, longitud de secuencia 4096, flash attention. Las activaciones usan la estimación de Korthikanti et al.

Checkpoint+50 XP30 XP si necesitas reintentar
Adam en precisión mixta necesita ~16 bytes por parámetro. ¿Cuántos GB de estado necesita un modelo de 7 mil millones de parámetros, sin contar activaciones?
GB
Un kernel hace una suma por cada 8 bytes que lee de memoria. ¿Qué limita su velocidad en una H100?

1.4PCIe

PCI Express conecta las GPUs con la CPU del host, las NIC y el almacenamiento. Un enlace Gen5 x16 mueve ~64 GB/s por dirección; Gen4 x16, ~32 GB/s. Es suficiente para cargar datos, pero lento para el tráfico GPU a GPU durante el entrenamiento.

Por qué importa

  • Las GPUs sin NVLink (p. ej. L40S) deben hacer todo el tráfico entre pares por PCIe, a menudo pasando por el root complex de la CPU. El paralelismo tensorial sufre mucho.
  • GPUDirect RDMA permite que una NIC lea y escriba la memoria de la GPU directamente por PCIe, sin pasar por la memoria del host. Los buenos servidores ponen cada GPU con una NIC bajo el mismo switch PCIe. Compruébalo con nvidia-smi topo -m.
  • "Fallen off the bus" (Xid 79) significa literalmente que la GPU desapareció de PCIe.
Checkpoint+50 XP30 XP si necesitas reintentar
`nvidia-smi topo -m` muestra `SYS` entre cada par de GPUs (sin NVLink). ¿Qué paralelismo sufre más?
Xid 79 dice que la GPU "se cayó del bus". ¿De qué bus?

1.6NVSwitch

Sin un switch, NVLink es punto a punto, así que cada GPU solo se conecta con unas pocas vecinas. NVSwitch construye un crossbar sin bloqueo: en un servidor HGX H100, cuatro chips NVSwitch conectan las 8 GPUs todas con todas a pleno ancho de banda NVLink.

Los sistemas más nuevos extienden el dominio NVLink más allá del servidor (p. ej. racks NVL72), de modo que 72 GPUs funcionan como una gran isla de paralelismo tensorial. La regla de NVLink sigue valiendo: cuanto mayor el dominio NVLink, mayores grupos de paralelismo tensorial o de expertos puedes usar sin tocar la red de escalado, más lenta.

nvidia-smi topo -m muestra NV18 (18 enlaces agrupados) entre cada par de GPUs en un sistema con NVSwitch.

Checkpoint+50 XP30 XP si necesitas reintentar
¿Qué agrega NVSwitch sobre NVLink punto a punto?
`nvidia-smi topo -m` muestra `NV18` entre cada par de GPUs. ¿Qué significa 18?

1.7InfiniBand y RoCE

Entre servidores, las GPUs se comunican por una red de escalado (scale-out). Dominan dos familias:

  • InfiniBand (IB): una red RDMA diseñada para esto. NDR funciona a 400 Gb/s por puerto con latencia muy baja y control de flujo sin pérdidas basado en créditos.
  • RoCE v2: RDMA sobre Ethernet convergente. La misma API de verbs sobre Ethernet. Requiere configuración cuidadosa (PFC/ECN) para no perder paquetes, pero es más barata y conocida por los equipos de redes.

Los servidores de entrenamiento modernos conectan una NIC de 400G por GPU (diseño rail-optimized), así que cada GPU obtiene ~50 GB/s de ancho de banda de escalado vía GPUDirect RDMA.

Lista de verificación

  • ibstat debe mostrar cada puerto Active / LinkUp a la velocidad esperada.
  • NCCL registra NET/IB cuando usa RDMA y NET/Socket cuando recurrió a TCP, una clásica ralentización silenciosa de 10× (a menudo por NCCL_IB_DISABLE=1 o una mala configuración de HCA).
  • Si un puerto se cae a mitad de un trabajo, las colectivas se cuelgan hasta que expira el watchdog de NCCL.
Checkpoint+50 XP30 XP si necesitas reintentar
Ves esto en el log de un trabajo multinodo. ¿Qué está pasando?
NCCL INFO NET/Socket : Using [0]eth0:10.0.1.12<0>
NCCL INFO NCCL_IB_DISABLE set by environment to 1.
En un servidor H100 rail-optimized, ¿aproximadamente cuánto ancho de banda de escalado tiene cada GPU?

1.8Topología del clúster

La red de un clúster de GPU suele ser un fat tree. Los switches leaf conectan servidores y los switches spine conectan los leaf. Si la capacidad hacia arriba iguala a la de hacia abajo, la red es sin bloqueo (1:1). Los diseños más baratos sobresuscriben (p. ej. 2:1), lo que está bien para tráfico web y es doloroso para all-reduce, donde todos transmiten a la vez.

Los diseños rail-optimized conectan la NIC i de cada servidor al mismo switch leaf ("rail i"). Así, los algoritmos de anillo y árbol de NCCL mantienen la mayor parte del tráfico en un solo rail, a un salto de distancia.

Reglas prácticas

Checkpoint+50 XP30 XP si necesitas reintentar
¿Por qué la sobresuscripción de red (p. ej. 2:1) perjudica más al entrenamiento que al tráfico web?
Ordena la jerarquía de ancho de banda, de la más rápida a la más lenta:
◆ Misión jefe

Construye el pod

Especifica un pod de GPUs que entrene un modelo de 13B en dos semanas, dentro del presupuesto y la potencia disponible.

🔒 Domina 4 sección(es) más de este capítulo para desbloquearlo.Jugar de todos modos