El problema fundamental que LPDDR5X-PIM busca resolver es la brecha de rendimiento entre la capacidad de cómputo de las CPUs y GPUs modernas y el ancho de banda limitado de la memoria externa, conocido como el 'memory wall'. A medida que las cargas de trabajo intensivas en datos, como el Machine Learning, se vuelven omnipresentes, la transferencia constante de datos entre la DRAM y las unidades de procesamiento se convierte en un cuello de botella crítico. La integración de unidades de procesamiento directamente dentro de los chips de memoria, como propone Samsung, permite explotar el ancho de banda interno mucho mayor de la DRAM y reducir drásticamente la latencia de acceso a datos.
Esta aproximación no es nueva; el concepto de 'Processing-in-Memory' (PIM) o 'Near-Memory Computing' ha sido objeto de investigación durante décadas, remontándose a propuestas como los procesadores de datos en memoria de los años 90. Sin embargo, la madurez de la tecnología de fabricación de DRAM y la creciente demanda de eficiencia energética y rendimiento en cargas de trabajo de IA han impulsado un renovado interés y la viabilidad de implementaciones comerciales como LPDDR5X-PIM. El desafío clave reside en cómo integrar estas capacidades de cómputo sin romper los paradigmas de hardware y software existentes, que asumen una clara separación entre memoria y procesamiento.
Arquitectura del Sistema
La arquitectura de LPDDR5X-PIM se basa en un chip LPDDR5X-9600 estándar de 16 bancos, donde cada banco incorpora un bloque PIM. Estos bloques PIM acceden directamente a su banco DRAM adjunto, eludiendo el bus externo del chip y aprovechando un ancho de banda interno agregado de 614 GB/s, significativamente superior a los 76.8 GB/s de los accesos DRAM convencionales. Cada bloque PIM contiene un árbol de unidades Multiply-Accumulate (MAC), registros de propósito general (register files) y lógica de control. Un registro de instrucciones de 1024 bits almacena hasta 64 instrucciones de 16 bits, mientras que un registro de fuente de 4 kbit se utiliza para vectores de activación. Los pesos del modelo se cargan directamente desde el bloque DRAM adjunto, y los factores de escala se gestionan mediante un registro de escala de 2 kbit. El array MAC soporta formatos de baja precisión como INT8 y FP8, logrando 2.4 TOPS por chip en INT8.
La innovación clave de Samsung es la exposición de estas capacidades de cómputo a través del protocolo LPDDR5X estándar. Esto se logra reservando direcciones de fila especiales que actúan como direcciones MMIO. La activación de estas filas especiales conmuta el chip entre modos 'single-bank' (normal) y 'multi-bank' (PIM). En modo 'PIM Registers Activated', los comandos de lectura y escritura acceden a los registros PIM en lugar del contenido DRAM. Esto permite a un host cargar pesos del modelo en DRAM, luego cambiar a modo multi-bank para escribir valores de activación, factores de escala e instrucciones en los registros PIM. Las operaciones PIM se ejecutan de forma SIMD, donde la operación, el factor de escala y un operando fuente son idénticos en todos los bancos. Para mitigar la reordenación de accesos por parte del controlador de memoria, se introduce un 'Address Align Mode' (AAM) que permite a cada instrucción inferir su índice de registro fuente a partir de la dirección de columna. Una vez completado el cómputo, los resultados se escriben de nuevo en los bancos DRAM y el chip vuelve al modo single-bank para accesos normales.
Flujo de Cómputo PIM en LPDDR5X-PIM
- 1 Host: Cargar Pesos Software carga pesos del modelo en DRAM en modo single-bank normal.
- 2 Host: Cambiar a Multi-Bank Software activa fila especial para cambiar el chip a modo multi-bank.
- 3 Host: Entrar PIM Registers Activated Software activa otra fila especial para acceder a registros PIM.
- 4 Host: Configurar PIM Software escribe activaciones, factores de escala e instrucciones en registro...
- 5 PIM: Ejecutar Cómputo Comandos de lectura inician cómputos MAC en los bloques PIM, acumulando resul...
- 6 PIM: Escribir Resultados Comandos de escritura instruyen a los bloques PIM a guardar VRF en DRAM.
- 7 Host: Salir PIM Registers Activated Software desactiva fila especial para salir del modo de registros PIM.
- 8 Host: Volver a Single-Bank Software desactiva fila especial para volver a modo single-bank y leer result...
| Capa | Tecnología | Justificación |
|---|---|---|
| storage | LPDDR5X-PIM | Proporciona almacenamiento de datos y capacidades de cómputo integradas (MAC units) directamente en los bancos de memoria DRAM. vs HBM (High Bandwidth Memory), GDDR6X, DDR5 16 bancos, 614 GB/s de ancho de banda interno, 2.4 TOPS (INT8) por chip. |
| compute | MAC units (dentro de LPDDR5X-PIM) | Realiza operaciones Multiply-Accumulate de baja precisión (INT8, FP8) para cargas de trabajo de ML, aprovechando el ancho de banda interno de la DRAM. vs CPU general-purpose cores, GPU streaming multiprocessors, NPU (Neural Processing Units) Cuatro INT8/FP8 MACs por data clock, ocho por ciclo (sin contar DDR). |
| networking | LPDDR5X Protocol | Interfaz de comunicación estándar entre el host (CPU/controlador de memoria) y el chip DRAM, reutilizada para controlar las funciones PIM mediante direcciones de fila especiales. vs Extensión del protocolo DRAM con comandos de cómputo dedicados, Interfaz propietaria para PIM |
Trade-offs
Ganancias
- ▲▲ Ancho de banda de cómputo a memoria
- ▲ Latencia de acceso a datos para cómputo
- ▲ Eficiencia energética (al reducir movimiento de datos)
Costes
- ▲ Complejidad del software y sistema operativo
- ▲ Coherencia de caché y ejecución especulativa
- ▲ Flexibilidad de uso de memoria (regiones PIM dedicadas)
- ▲▲ Rendimiento de CPU/GPU en regiones PIM (sin caché/Ooo)
Fundamentos Teóricos
El concepto de procesamiento en memoria tiene profundas raíces académicas, con propuestas que datan de los años 70 y 80. Uno de los trabajos seminales que articuló la visión de integrar cómputo y memoria fue el artículo de D. A. Patterson, G. Gibson y R. H. Katz, "A Case for Redundant Arrays of Inexpensive Disks (RAID)" (1988), que, aunque centrado en almacenamiento, sentó las bases para pensar en cómo los sistemas pueden superar los cuellos de botella de E/S mediante la distribución y el procesamiento más cercano a los datos. Más directamente relevante es el trabajo de Peter Kogge en los años 90, quien exploró arquitecturas de 'Processing-in-Memory' (PIM) para superar el 'memory wall'.
El desafío de la coherencia de caché y la ejecución especulativa que PIM introduce se relaciona con principios fundamentales de la arquitectura de computadoras. La necesidad de marcar regiones de memoria como 'uncacheable' y deshabilitar la ejecución fuera de orden para accesos PIM choca directamente con las optimizaciones de rendimiento que han impulsado el diseño de CPUs modernas durante décadas, como las descritas en trabajos sobre microarquitecturas superscalares y ejecución especulativa (ej., "The Alpha 21264 Microprocessor" de Keller et al., 1999). La propuesta de Samsung de usar filas especiales como MMIO para controlar el PIM es una adaptación del patrón de 'Memory-Mapped I/O', un concepto clásico en la interacción entre CPU y periféricos.