Near-Memory Compute (NMC), también conocido como Processing-In-Memory (PIM) o In-Memory Computing, es un paradigma arquitectónico que busca mitigar el 'memory wall' o 'data movement bottleneck'. En lugar de transferir grandes volúmenes de datos desde la memoria a la unidad central de procesamiento (CPU) para su cómputo, NMC introduce unidades de procesamiento elementales (PEs) o aceleradores directamente dentro o adyacentes a los chips de memoria. Esto permite que ciertas operaciones se realicen 'in situ', minimizando la latencia y el consumo de energía asociados con el movimiento de datos a través de los buses de memoria, lo cual es especialmente crítico para cargas de trabajo intensivas en datos.
La implementación de NMC se observa en varias iniciativas y productos. Un ejemplo notable es la memoria HBM (High Bandwidth Memory) con lógica integrada, como la HBM-PIM de Samsung, que incorpora unidades de procesamiento ligeras dentro de cada banco de memoria para acelerar operaciones de IA y HPC. Otro ejemplo son los dispositivos de memoria basados en ReRAM (Resistive RAM) que pueden realizar operaciones de multiplicación-acumulación (MAC) directamente dentro de la matriz de memoria, siendo prometedores para redes neuronales y computación analógica. Además, algunas arquitecturas de GPU modernas y FPGAs con interfaces de memoria de alta velocidad también pueden considerarse formas de NMC al acercar el cómputo a la memoria, aunque no siempre integran el procesamiento directamente en el chip DRAM.
Para un Arquitecto de Sistemas, NMC representa una oportunidad estratégica para diseñar sistemas de alto rendimiento y eficiencia energética, especialmente para cargas de trabajo 'data-intensive' como inteligencia artificial (IA), machine learning (ML), bases de datos en memoria y análisis de big data. La decisión de adoptar NMC implica evaluar trade-offs significativos: si bien promete mejoras drásticas en rendimiento y eficiencia para tareas específicas, requiere una reevaluación de los patrones de acceso a datos y la posible reescritura de algoritmos para aprovechar la proximidad del cómputo. La programación y el despliegue pueden ser más complejos, y la disponibilidad de herramientas de desarrollo y ecosistemas maduros aún está en evolución. Sin embargo, ignorar NMC podría significar perder ventajas competitivas en el diseño de arquitecturas futuras que superen las limitaciones de las arquitecturas Von Neumann tradicionales.