La evolución de la computación de alto rendimiento, especialmente en el ámbito de la inteligencia artificial, se enfrenta a limitaciones físicas impuestas por la ley de Moore y la dificultad de escalar diseños monolíticos de silicio. El Nvidia B200 aborda este desafío adoptando una arquitectura multi-die o chiplet, una estrategia que permite ensamblar múltiples dies más pequeños en un solo paquete lógico. Esta aproximación es fundamental cuando las mejoras en los nodos de proceso (como TSMC 4NP) no ofrecen las ganancias generacionales de rendimiento y eficiencia energética que se observaban en el pasado.

La adopción de chiplets no es nueva en la industria (AMD ha sido pionero con sus CPUs Zen y GPUs CDNA), pero su implementación en la línea de GPUs de Nvidia, tradicionalmente monolítica, marca un punto de inflexión. El B200 busca mantener la compatibilidad con el ecosistema CUDA existente, presentando los dos dies como una única GPU a nivel de software. Esto requiere una gestión sofisticada de la coherencia de caché y la comunicación inter-die, un problema clásico en sistemas distribuidos y arquitecturas NUMA, ahora trasladado al interior de un único procesador gráfico. La clave es cómo esta arquitectura gestiona la latencia y el ancho de banda a través de sus componentes para sostener el rendimiento en cargas de trabajo intensivas en datos y cómputo.

Arquitectura del Sistema

El Nvidia B200 se compone de dos dies de tamaño de retícula, cada uno con 80 Streaming Multiprocessors (SMs), de los cuales 74 están habilitados por die, sumando 148 SMs. A nivel de software, estos dos dies se presentan como una única GPU. La jerarquía de caché es familiar, con L1 y Shared Memory (256 KB) por SM, configurable en splits para L1/Shared Memory (216 KB, 112 KB, 16 KB de L1). La latencia de L1 es de ~19.6 ns (39 ciclos).

La caché L2 es particionada y significativamente más grande (126 MB total, frente a 50 MB en H100), con cada partición probablemente asociada a un die. La latencia a la partición L2 local es de ~150 ns, aumentando cuando los accesos cruzan los límites de la partición. El ancho de banda L2 es de 21 TB/s para accesos locales y 16.8 TB/s para accesos inter-partición. La memoria de video (VRAM) utiliza HBM3E, ofreciendo un ancho de banda de 8 TB/s. Para cargas de trabajo de IA, el B200 introduce Tensor Memory (TMEM), un archivo de registro dedicado a los Tensor Cores, organizado como 512 columnas x 128 filas de celdas de 32 bits. TMEM reduce la presión sobre el archivo de registro general y permite una asignación dinámica por wave, mejorando la eficiencia en operaciones de matriz a nivel de workgroup (CTA). Las operaciones atómicas en memoria global muestran una distribución bimodal de latencia (90-100 ns intra-partición, 190-220 ns inter-partición), reflejando la naturaleza multi-die.

CapaTecnologíaJustificación
compute Nvidia B200 GPU Unidad de procesamiento gráfico de propósito general y acelerador de IA, implementando una arquitectura multi-die para escalar el rendimiento. vs Nvidia H100, AMD MI300X 148 Streaming Multiprocessors (SMs) en dos dies, HBM3E VRAM, Tensor Cores de 5ª generación, Tensor Memory (TMEM).
compute CUDA API Interfaz de programación para la GPU, permitiendo a los desarrolladores gestionar la memoria compartida (Shared Memory) y la asignación de caché L1. vs OpenCL, Vulkan
storage HBM3E VRAM Memoria de acceso aleatorio de alta capacidad y ancho de banda para la GPU, crucial para cargas de trabajo intensivas en datos. vs HBM3 8 TB/s de ancho de banda.
storage L2 Cache (partitioned) Caché de segundo nivel particionada, con una parte local a cada die y otra remota, gestionando la latencia y el ancho de banda de acceso a datos. vs L2 unificada 126 MB de capacidad total, latencia bimodal (local vs. cross-partition).
storage Tensor Memory (TMEM) Archivo de registro dedicado para Tensor Cores, optimizado para operaciones de matriz en IA, reduciendo la presión sobre el archivo de registro general. vs Archivos de registro generales más grandes, Acc VGPRs (AMD CDNA) 512 columnas x 128 filas de celdas de 32 bits, asignación dinámica por wave.

Trade-offs

Ganancias
  • Compute Throughput (most vector ops)
  • L1 Cache Bandwidth
  • L2 Cache Capacity
  • VRAM Bandwidth (HBM3E)
  • Reduced pressure on general register file (via TMEM)
Costes
  • FP16 compute throughput (vs. FP32 rate)
  • VRAM Latency (vs. H100/A100/MI300X)
  • Cross-partition L2 latency penalty
  • Complexity of multi-die architecture
__global__ void myKernel(float* input, float* output) {
    extern __shared__ float s_data[];
    int tid = threadIdx.x + blockIdx.x * blockDim.x;
    int local_tid = threadIdx.x;

    // Load data from global memory to shared memory
    s_data[local_tid] = input[tid];
    __syncthreads();

    // Perform computation using shared memory
    output[tid] = s_data[local_tid] * 2.0f;
}
Ejemplo conceptual de cómo un kernel CUDA podría usar Shared Memory para optimizar el acceso a datos dentro de un workgroup, aprovechando la baja latencia de la memoria on-chip.

Fundamentos Teóricos

La transición de diseños monolíticos a arquitecturas multi-die o chiplet en GPUs, como se observa en el Nvidia B200, se alinea con principios fundamentales de la arquitectura de computadoras y sistemas distribuidos. El problema de la escalabilidad del rendimiento y la eficiencia energética en un solo die ha sido un tema recurrente desde los primeros días de la computación paralela. Conceptos como la arquitectura NUMA (Non-Uniform Memory Access), estudiados extensamente en la década de 1980 y 1990 (por ejemplo, por Agarwal et al. en 'An Evaluation of Directory-Based Cache Coherence Schemes' de 1988), son directamente aplicables a la gestión de la coherencia de caché y la latencia de acceso en un sistema multi-die.

La introducción de Tensor Memory (TMEM) y la gestión de la jerarquía de caché para optimizar las operaciones de matriz reflejan la investigación en arquitecturas de memoria específicas para aceleradores. La optimización de la localidad de datos y la reducción de la presión sobre el ancho de banda de la memoria son temas centrales en papers sobre compiladores y arquitecturas para computación de alto rendimiento, como los trabajos de Lamport sobre optimización de bucles y acceso a memoria. La gestión de la latencia en operaciones atómicas a través de múltiples dies también resuena con los desafíos de consistencia y coordinación en sistemas distribuidos, donde algoritmos como Paxos o Raft abordan la coherencia de estado, aunque a una escala mucho mayor y con diferentes restricciones de latencia.