¿Por qué la memoria HBM ha quedado relegada a las CPUs para servidor?

La memoria HBM es conocida por su uso como memoria VRAM en algunas tarjetas gráficas, pero uno de los puntos en los que empezaremos  a ver es memoria HBM en CPU para servidores. ¿El motivo? El objetivo no es montar la memoria HBM como memoria RAM, sino caché LLC o de último nivel, con tal de acelerar ciertos trabajos.

La memoria HBM que hasta ahora se ha relacionado con las GPUs para el mercado HPC van a empezar a ser adoptadas por las CPUs. ¿Qué aporta y por qué la memoria HBM se utilizará para CPUs y cuáles son los motivos por parte de Intel y AMD para sui implementación?

Un repaso a la memoria HBM

HBM 2

La memoria HBM es un tipo de memoria que se compone por varios chips de memoria apilados, los cuales se comunican con su controlador en vertical utilizando vías a través de silicio. Dicho circuito integrado en tres dimensiones es empaquetado de manera conjunta y vendido como un chip HBM.

De cara a comunicarse con el procesador, el chip HBM no hace uso de una interfaz en serie, sino que se comunica con el sustrato o interposer que hay debajo para transmitir los datos. Esto le permite comunicarse con el procesador haciendo uso de una mayor cantidad de pines y bajar la velocidad de reloj por cada uno de ellos. ¿El resultado? Una memoria RAM que en comparación con otro tipo consume mucho menos a la hora de transmitir los datos.

La memoria HBM no se ha utilizado en el mercado doméstico por qué es cara, su composición de varios chips de memoria la convierten en muy complicada de fabricar de cara a productos a gran escala, pero es ideal para productos a menor escala. Ya sean GPUs para computación de alto rendimiento e incluso CPUs para servidores donde la HBM va a hacer su acto de aparición,

Los canales de memoria son una parte de la clave

Canales HBM

Una de las diferencias de la memoria HBM respecto a otros tipos de memoria es el soporte de hasta 8 canales de memoria, el cual es la configuración que se suele utilizar normalmente en servidores. Así pues los 8 canales de memoria DDR4 se ven reemplazados por los 8 canales de memoria HBM, los cuales tienen un ancho de banda mucho mayor y una latencia menor.

¿Menor latencia? Pues si y todo por el hecho de estar en el mismo sustrato, esto significa que los accesos a memoria durante la ejecución de las instrucciones duran menos tiempo y por tanto hay menos latencia. ¿El handicap? La memoria HBM2 tiene una capacidad de almacenamiento mucho menor y por tanto es necesario añadir una memoria a un nivel más bajo de la jerarquía.

Como tiene menor latencia que la DDR4, es posible colocar a la HBM como memoria para la CPU por encima de la memoria DDR4 en la jerarquía de memoria, y que se vayan volcando los datos desde la DDR4 a la memoria HBM según  se vayan necesitando e incluso utilizar memoria SSD NVMe por debajo con una interfaz PCI Express lo suficientemente rápida. Eso si, con el uso de sistemas de compresión y descompresión de datos a tiempo real desde el SSD a la RAM.

¿Para que necesita una CPU de servidor memoria HBM?

Memoria HBM CPU concepto AMD

La memoria HBM destaca por especialmente por su enorme ancho de banda, el cual parece completamente una exageración para una CPU, pero hay que tener en cuenta que uno de los puntos en los que NVIDIA tiene una gran presencia en el mercado de los servidores es en la inteligencia artificial, gracias al añadido de unidades tensor en sus GPU desde el lanzamiento de Volta, por lo que la gran mayoría de los sistemas que sirve para entrenamiento e inferencia para la inteligencia artificial incluyen dicho tipo de unidades.

¿Cuál es la situación de Intel y AMD? La respuesta es añadir este tipo de unidades en sus servidores, en el caso Intel son las unidades AMX y en AMD por el momento se desconoce que unidad van a implementar. Pero el objetivo de añadir estas unidades es recortar al hardware de NVIDIA de los servidores. A esto hay que tener en cuenta que AMD tiene una división de gráficas que compite contra NVIDIA, pero tampoco podemos olvidar los Intel Xe HPC e Intel Xe HP por parte de Intel.

Las unidades para la IA requieren una gran cantidad de ancho de banda para funciona, en eso coinciden enormemente con las GPUs, de ahí que NVIDIA venda sus GPUs como «AI»PU o viceversa. Al mismo tiempo este es el motivo por el cual se le va a añadir el uso de memoria HBM a las CPUs, con tal de convertirlas en unidades que doblen tanto para la IA como CPUs.

Una evolución que ya ha ocurrido antes

dsp

En los años 90 las unidades DSP se utilizaban para acelerar las incipientes aplicaciones multimedia. ¿Dónde se encuentran ahora mismo estas unidades? Desaparecieron tan pronto como las unidades SIMD se implementaron en las CPU y dejo de ser necesaria la implementación de una unidad DSP para la aceleración de los algoritmos multimedia.

En el caso de la IA el concepto es el mismo, la idea de implementar unidades tensor en las CPUs para servidores lo que busca es poder prescindir de las GPUs para dichas tareas. Por lo que desde el punto de vista comercial para Intel y AMD se puede resumir el mensaje en «No compres una GPU con unidades para la IA cuando puedes hacerlo ya en la CPU».

Las GPUs de NVIDIA deben su potencia para la IA gracias a la enorme cantidad de unidades shader o SM, por ejemplo la GA102 tiene 82 SM en su configuración, lo cual es mucho más que la cantidad de núcleos en una CPU de escritorio. En una CPU para servidor hablamos de decenas de núcleos, por ejemplo los AMD EPYC pueden llegar hasta los 64 núcleos y van a crecer en las próximas generaciones. Con ello podemos entender mucho mejor como va a ser la adopción de la memoria HBM en las CPUs para servidores, en especial de cara a un mercado con aplicaciones cada vez más centradas para la IA.