El problema fundamental que Nvidia GB10 busca resolver es la provisión de capacidades de computación acelerada de alto rendimiento en un factor de forma integrado, específicamente para el ecosistema CUDA. Esto es crucial en un contexto donde la demanda de inferencia de IA y desarrollo de modelos en el edge o en estaciones de trabajo locales está en aumento, y donde el costo y la complejidad de las GPUs discretas de datacenter pueden ser prohibitivos.

Históricamente, las GPUs integradas (iGPUs) han sido vistas como soluciones de bajo rendimiento, principalmente para gráficos básicos. Sin embargo, con el auge de la computación heterogénea y la necesidad de procesar grandes volúmenes de datos localmente, ha surgido una brecha entre las iGPUs tradicionales y las GPUs discretas de alto rendimiento. GB10, al igual que su competidor Strix Halo, representa un esfuerzo por cerrar esta brecha, llevando una arquitectura de GPU de clase de rendimiento a un chip integrado, con un enfoque particular en las cargas de trabajo de IA y el soporte de un ecosistema de software maduro como CUDA.

Arquitectura del Sistema

La GPU integrada de GB10 se basa en la arquitectura Blackwell de consumo, con 48 Streaming Multiprocessors (SMs) operando hasta 2.55 GHz. El subsistema de memoria presenta una jerarquía de caché de dos niveles: un L1 de baja latencia y alta capacidad, y un L2 de 24 MB que actúa como caché de último nivel y primer punto de acceso para fallos de L1. La L1 es un bloque de memoria privada por SM que se comparte entre la caché L1 y la Shared Memory (scratchpad gestionado por software), con 128 KB por SM. Las escrituras desde los kernels de cómputo utilizan una política write-through a L1, dirigiéndose directamente a L2.

GB10 soporta Shared Virtual Memory (SVM) de grano grueso, permitiendo el mapeo de buffers en el mismo espacio de direcciones virtuales para CPU y GPU, sin requerir una copia completa del buffer subyacente. La memoria del sistema utiliza LPDDR5X, con un ancho de banda teórico de 273 GB/s a través de un bus de 256 bits. La GPU también incorpora una caché de instrucciones L0 de 32 KB por sub-partición de SM y una caché de instrucciones L1 de 128 KB compartida por cuatro particiones. La arquitectura se diferencia de las variantes de datacenter de Blackwell en la capacidad de L1/Shared Memory, el rendimiento FP64 (ratio 1:64 FP64 a FP32) y la ausencia de características de Tensor Core de quinta generación, pero incluye aceleración de raytracing por hardware.

Flujo de Acceso a Memoria en GPU GB10

  1. 1 Kernel Compute Solicitud de datos por un thread group
  2. 2 L1 Cache / Shared Memory Primer intento de acceso. Baja latencia, alta capacidad (128KB por SM).
  3. 3 L2 Cache Para fallos de L1. 24 MB de capacidad, actúa como Last Level Cache.
  4. 4 System Level Cache (SLC) Caché más pequeña, para compartir datos entre motores, no para alimentar GPU.
  5. 5 LPDDR5X System Memory Acceso a memoria principal del sistema.
CapaTecnologíaJustificación
compute Nvidia Blackwell (Consumer Variant) Arquitectura base para la GPU integrada, proporcionando 48 Streaming Multiprocessors y capacidades de computación acelerada. vs AMD RDNA3.5 (Strix Halo), Intel Arc (B580) 48 SMs, hasta 2.55 GHz, 1:64 FP64:FP32 ratio.
storage L1 Cache Caché de primer nivel, compartida con Shared Memory, para baja latencia y alta capacidad de datos locales por SM. vs Múltiples niveles de caché más pequeños (ej. AMD L0 vector cache) 128 KB por SM, 13 ns de latencia.
storage L2 Cache Caché de último nivel para la GPU, filtrando gran parte del tráfico de memoria antes de llegar a la memoria del sistema. vs Cachés de sistema de mayor capacidad (ej. AMD Infinity Cache) 24 MB de capacidad, maneja escrituras a media velocidad (~1 TB/s).
storage LPDDR5X Memoria principal del sistema, utilizada por la iGPU para datos que no caben en caché. vs GDDR6 (para GPUs discretas) 8533 MT/s, bus de 256 bits, 273 GB/s de ancho de banda teórico.
data-processing CUDA Ecosistema de software propietario para programación de GPU, crucial para el enfoque de GB10 en aplicaciones de IA y computación acelerada. vs OpenCL, HIP (AMD)

Trade-offs

Ganancias
  • Rendimiento de cómputo FP32/FP16
  • Latencia y capacidad de L1 Cache
  • Ancho de banda de caché L1/L2
  • Integración de GPU de alto rendimiento en un factor de forma iGPU
  • ▲▲ Soporte del ecosistema CUDA
Costes
  • Ancho de banda de memoria externa (LPDDR5X vs GDDR6)
  • Rendimiento FP64
  • Capacidad de L1/Shared Memory por SM (vs variantes de datacenter)
  • ▲▲ Compatibilidad con software x86-64 (debido a CPU ARM)
  • Costo y disponibilidad en comparación con GPUs discretas

Fundamentos Teóricos

La optimización de la jerarquía de memoria en GB10, con sus múltiples niveles de caché (L0, L1, L2) y la Shared Memory gestionada por software, se alinea con principios fundamentales de la arquitectura de computadoras y sistemas de memoria. Conceptos como la localidad de referencia, tanto temporal como espacial, son cruciales para el rendimiento de los programas, como se describe en trabajos seminales sobre diseño de caché y gestión de memoria. La Shared Memory, en particular, es una implementación práctica del concepto de 'scratchpad memory' o 'software-managed cache', un patrón bien conocido en arquitecturas de procesadores paralelos y DSPs, donde el programador tiene control explícito sobre la colocación de datos para minimizar la latencia de acceso.

El soporte de Shared Virtual Memory (SVM) de grano grueso aborda el problema de la coherencia de caché y la gestión de memoria en sistemas heterogéneos CPU-GPU, un desafío explorado en la investigación de sistemas distribuidos y arquitecturas de memoria compartida. Aunque el SVM de grano grueso de GB10 no permite el acceso simultáneo CPU-GPU, su capacidad para evitar copias explícitas de buffers es un paso hacia la implementación de modelos de memoria unificada más eficientes, un tema de investigación activo en la computación heterogénea que busca simplificar la programación y mejorar el rendimiento al reducir la sobrecarga de transferencia de datos entre dispositivos.