¿Es el procesamiento en memoria (PiM) la próxima gran novedad en la arquitectura de computadoras?

Tal vez. Es una tecnología genial. Pero hay algunos problemas que sugieren que, en el mejor de los casos, será un aumento modesto para la mayoría de las aplicaciones, y tal vez un aumento grande para algunas aplicaciones seleccionadas:

1. Primero, en términos de computación, las implementaciones prácticas de HBM y HMC son en realidad tecnologías 2.5D, no tecnologías 3D. La lógica de cálculo se coloca en el mismo intercalador 2.5D, muy parecido a una PCB en lugar de debajo de la memoria apilada. Esto se debe a que el verdadero apilamiento en 3-D hace que sea difícil extraer calor del dado lógico. Las GPU AMD y Nvidia de última generación adoptan este enfoque.

2. Segundo, la latencia de acceso a DRAM no se reduce significativamente en implementaciones 2.5D, o en 3D para el caso, porque el retraso es principalmente interno a la DRAM y no en la interconexión en sí. El principal beneficio es el ancho de banda, pero el beneficio potencial de las mejoras en el ancho de banda estará limitado por la ley de Amdahl debido a la energía. De hecho, si el sistema 2D está limitado por la energía actual, entonces la mejora del sistema 3D estará limitada únicamente por la mejora en la eficiencia energética obtenida al pasar a 3D, que no es mucho.

3. Los chips actuales ya pueden ser PIM sin tecnología 3D. Puede colocar una red 2D de núcleos con e-DRAM con, digamos, un megabyte de datos por núcleo. El principal beneficio de la integración 3D es que puede acceder a una mayor cantidad de DRAM cercana que antes. Pero muchas aplicaciones tienen buena localidad y no se benefician de esto.

4. La memoria apilada parece muy útil para las redes neuronales de aprendizaje profundo que tienen grandes colecciones de datos de peso.

No clasificaría HBM o HMC como PiM: PiM generalmente significa lógica y memoria en el mismo dado. Supongo que podría ampliar la definición para incluir el apilamiento 3D, pero para mí eso no es muy diferente de un módulo de múltiples chips (MCM, antiguo como colinas), excepto por la conectividad a lo largo del eje z. IBM implementa su caché L3 como una e-DRAM que está más cerca de mi noción de PIM. Pedantic, tal vez.

Solo para agregar a la explicación del profesor Taylor, al menos para HBM y GPU, la motivación clave fue el rendimiento / vatio. Las GPU ejecutan buses anchos a la sincronización DRAM a altas frecuencias, y la potencia quemada allí es una gran fracción del TDP. Presionar más rendimiento significaba más b / n y más potencia debido a relojes más altos o buses más anchos. HBM en el intercalador permitió un bus mucho más ancho desde DRAM con frecuencia más baja, lo que permitió una potencia mucho menor y probablemente también algunos ahorros de energía. La energía ahorrada se puede usar en la GPU para el rendimiento. Sin embargo, es un aumento único en el rendimiento / vatio para las GPU.
Para las CPU, el ancho de banda es menos crítico, aunque si arroja suficientes núcleos / canal, también encontrará cuellos de botella en blanco y negro. Las CPU son más sensibles a la latencia, por lo general, y una implementación de HBM para CPU necesitará enfatizar la latencia sobre b / w. No sé lo suficiente sobre la latencia HBM vs DDR4, así que no sé si necesita un rediseño para las CPU. Si mantiene la latencia constante, aún puede ser una ganancia neta de energía si la densidad llega a un punto que es suficiente para los servidores.
vea los chips calientes AMD ppt de 2015: http://www.hotchips.org/wp-conte

Tener un procesador en la memoria es una idea atractiva, pero se encuentra con algunos problemas prácticos:

  • Los chips de memoria (a diferencia de las CPU) tienen un margen de beneficio muy pequeño. No hay espacio para insertar funcionalidades adicionales a bajo costo, con la esperanza de que las personas lo adopten.
  • Tener un procesador normal y uno más simple en la memoria hace que la programación sea mucho más difícil. Actualmente hay muy pocos modelos de programación que manejen esa heterogeneidad con elegancia.

More Interesting

¿Cuáles son los documentos fundamentales sobre la programación?

¿Cuáles son algunos de los documentos de "lectura obligatoria" en el campo de VLSI y la arquitectura de computadoras?

¿Cuáles son las mayores diferencias entre la programación con fines científicos (por ejemplo, para modelos en física o economía) y la programación para la web?

¿Cuáles son los documentos más influyentes en el mundo de SDN (Software Defined Networking)?

¿Cómo describirías las redes de memoria?

¿Cómo podría un estudiante obtener un trabajo en Google Research o Microsoft Research?

¿Hay algún artículo traducido o escrito escrito por autores japoneses sobre la computadora de quinta generación ICOT encabezada por el gobierno japonés en la década de 1980?

¿Qué podría ser un posible Ph.D. tema de investigación en el campo de la compresión de video?

¿Cuáles son algunos de los problemas de investigación más difíciles en la arquitectura de computadoras ahora?

¿Qué es el Protocolo de separación de localizador / identificador (LISP) en términos simples, con las terminologías en eso?

¿Cuáles son algunas de las lecturas obligatorias (libros, trabajos de investigación, blogs) para sistemas operativos?

¿Qué se necesita para obtener un trabajo académico con tenencia en las 20 mejores universidades de los Estados Unidos? ¿Haber trabajado en la industria cuenta contra un candidato?

¿Cuáles son las oportunidades de investigación para estudiantes universitarios de ciencias de la computación?

¿Qué es exactamente la interacción humano-computadora (HCI)?

¿Cuáles son las diferentes áreas en informática? ¿Cómo debo abordar cada área desde cero de manera secuencial?