AMD ha ganado el contrato para los Superordenadores Frontier y El Capitan para 2021 y 2022 y potencias de 1.5 y 2 ExaFLOPS.

A mi no me sorprende absolutamente para nada, mirad en que año se va a desplegar «El Capitan» verás que la fecha que tienen pensada es el 2022, por lo que por timing no tiene nada que ver con Arcturus sino lo que venga después de este que es lo que AMD llamaba hasta hace unas horas como Mi200.

Y digo hasta hace unas horas por el hecho que el marketing de Nvidia nos ha presentado una nueva arquitectura llamada CDNA que no es más que un rebranding de Arcturus de cara al marketing.

CDNA/Arcturus forma parte de la familia GFX9 pero utilizando el sistema de Cache L2 de RDNA, esto le permite colocar una mayor cantidad de Compute Units pero tiene la particularidad de que no esta pensada para ejecutar gráficos sino para computación de alto rendimiento, esto lo sabemos porque carece del anillo de comandos gráficos y por tanto no renderiza nada de nada.

Pero si no renderiza nada de nada, entonces es un sinsentido que tenga una unidad VCN pensada para la codificación/decodificación de vídeo…

Bueno, no lo es desde que sabemos que AMD tiene una patente llamada “INTEGRATED VIDEO CODEC AND INFERENCE ENGINE» cuya descripción inicial nos habla de una unidade de codificación/decodificación de video que puede doblar como red neural/unidad tensor.

La descripción de la patente dice:

Se describen sistemas, aparatos y métodos para integrar un códec de video con un motor de inferencia. Un sistema está configurado para implementar un motor de inferencia y un códec de video mientras comparte al menos una parte de sus elementos de procesamiento entre el motor de inferencia y el códec de video. Al compartir elementos de procesamiento al combinar el motor de inferencia y el códec de video, se reduce el área de silicio de la combinación. En una realización, la porción de elementos de procesamiento que se comparten incluye un motor de predicción de movimiento / estimación de movimiento / MAC con una pluralidad de unidades de multiplicador-acumulador (MAC), una memoria interna y periféricos. Los periféricos incluyen una interfaz de memoria, un motor de acceso directo a memoria (DMA) y un microprocesador. El sistema está configurado para realizar un cambio de contexto para reprogramar los elementos de procesamiento para cambiar entre los modos de operación. El cambio de contexto puede ocurrir en un límite de trama o en un límite de subtrama.

En lenguaje vulgar esto significa que esa unidad hace el mismo trabajo que los Tensor Cores de Volta, pero la configuración es distinta dado que no se encontrarían en la misma Compute Unit sino que serían un acelerador más. ¿Pero realmente podemos confirmar que CDNA/Arcturus tiene dichas unidades Tensor?

Pues si, y de mano de la propia AMD:

Claro esta que CDNA/Arcturus no es lo que va a ir directamente a lo que son los superordenadores «Frontier» y «El Capitan» ya que eso existe CDNA2… Lo cual significa que AMD ha bifurcado el mapa de ruta de las GPUs, teniendo una arquitectura para HPC y otra para el mercado doméstico.

Bu….bu, bu… AMD copiando a Nvidia

Teniendo en cuenta que Turing no es más que una versión ampliada de Volta pues… ¿Y que va a ser CDNA2? Pues lo que se conocía como Mi200 hasta hace poco y es aqui donde las cosas se ponen interesantes.

AMD va a aprovechar el éxito de los AMD Epyc para expulsar por completo a Nvidia del mercado. ¿Como? Utilizando la interfaz Infinity Fabric para comunicar CPUs y GPUs y dado que la interfaz es propietaria AMD podrá ofrecer soluciones completas de CPU y GPU para ello.

CDNA/Arcturus se comunica con la CPU utilizando los clásicos puertos PCI Express, con CDNA2 esto cambiará y vendrán emparejados con una versión de Epyc que SOLO se comunicará con las GPUs a través del Infinity Fabric, interfaz que solo tiene AMD y a la que Nvidia no tiene acceso.

Es más, CDNA2 como he comentado antes es la arquitectura que van a montar en Frontier y el Capitan.

La palabra clave es Exascale… ¿Os acordáis del concepto del EHP?…

Pues bien, me sorprende que los medios no lo hayan visto pero el X3D es precisamente eso…

Utilizando la clásica interfaz en serie la cantidad de pines disponibles es mucho más baja que utilizando una configuración de intercomunicación vertical. El gran problema que tenemos a la hora de comunicar varios procesadores disitintos en un MCM clásico es la velocidad de comunicación de las partes, esto hace que subdividir una GPU en varios chiplets se convierta en un infierno y necesites una infraestructura con un ancho de banda mucho más grande, lo que te obliga a tirar de TSV con un enorme interposer para la comunicación.

Los 4 chips en la parte central son Ryzen Chiplets y por tanto son CPUs… ¿Pero donde esta la GPU? Pues en la base de cada una de las pilas y es que estamos hablando de una GPU configurada en modo 3DIC donde AMD utiliza un tipo de memoria encima de la GPU. ¿Es algo nuevo? Ya lo hemos comentado en el pasado en este blog y en paper del EHP, AMD hablo de ello utilizando memoria HBM para experimentar sobre GPUs de la familia GCN.

Obviamente el desafio esta en la parte termal y requiere la creación de un nuevo tipo de memoria para el 3DIC y es que la memoria HBM en 3DIC realmente no deja de ser un parche ya que no se pensó para termicamente estar encima de un procesador sino en un formato 2.5DIC o el llamado Interposer Stacking.

La única manera que tenemos de reducir el consumo enegético es aumentar la cantidad de bits que se transfieren por ciclo de reloj y por tanto la cantidad de pines.

Podríamos pasar de los 1024 bits a los 2048 bits pero esto sin cambios significaría que deberíamos colocar el doble de capas y el coste se iría a la estratosfera con ello por el hecho que con cada capa adicional sube el ahogamiento térmico.

Precisamente si no tenemos memoria HBMn con 8 capas es por ello aunque sea técnicamente posible tiene unos costes que lo hacen inviable, pasar de los 1024 bits a los 2048 bits sería contraproducente.

Por lo que AMD necesita un tipo de memoria que permita tener una interfaz más ancha en cada una de las capas, la memoria HBMn esta limitada a unos 128 bits por canal y aunque podemos asignar hasta 2 canales por DRAM el hecho de pasar a los 2048 bits nos forzaría a tener que colocar un minimo de 8 chips de DRAM por pila, por lo que la mejor solución es no aumentar el número de canales sino la cantidad de bits por canal con tal de hacer las cosas mucho más simples y reducir la cantidad de capas. ¿El otro problema? El añadir cada vez más capas aumenta la temperatura y eso no es nada bueno.

Por lo que necesitamos un tipo de memoria que permita tener una interfaz más ancha y al mismo tiempo no requiera una enorme cantidad de pilas que coloque la cantidad de chips buenos en casi nula debido a la problemática de colocar varias capas de memoria. Claro esta que la implementación de una GPU en 3DIC es sumamente caro y poco viable para al mercado doméstico pero no estamos hablando del mercado doméstico.

¿Pero cual es el objetivo de hacer esto? El mayor problema que existe para manejar una alta cantidad de procesamiento es manejar una gran cantidad de datos y el consumo energético que estos suponen. Una operación con un dato cercano al procesador consume menos energía que una operación con un dato más alejado de este y la idea de ir al 3DIC no es otra que el hecho de acercar no solo la transmisión de datos sino de utilizar anchos de banda más altos y es que existe un concepto que es el de los B/F o Bytes por FLOP que es la cantidad de ancho de banda existente por cada FLOP teórico y la particularidad es que ese ratio va disminuyendo por el hecho que mientras que la capacidad de procesamiento va aumentando nos encontramos con que no lo hace el ancho de banda y nos vamos acercando al cero. Es decir, ocurre que se llega al punto en que se tienen procesadores muy rápidos en teoria pero que no reciben los datos suficientes para ello.

La medida del B/F va a depender por tanto donde se encuentren los datos, las caches más cercanas a las unidades de ejecución tienen un B/F mucho más alto que las caches y memorias más alejadas. La idea de ir al 3DIC esta tanto para solventar el problema de los B/F en las operaciones acortando la distancia de las más alejadas como para reducir enormemente el consumo energético de dichas operaciones.

Por otro lado… ¿Os habéis fijado que no hay otra memoria en el EHP/x3D aparte de la 3D DRAM montada en las GPUs? Esto es debido a que esa memoria 3D DRAM no solo es la memoria de cada GPU sino de todo el sistema y esto nos lo confirmo AMD hace unos días:

¿Como lo hacemos para hacer que varios elementos tengan un acceso coherente y común a la misma memoria? Pues utilizando para ello una cache de último nivel que haga de elemento de coherencia entre los diferentes núcleos que es lo que se ha hecho siempre ¿Y donde se encontraría? En el Interposer sobre el que están las CPUs, las GPUs y la memoria.

Dado que AMD con el X3D vende la solucion completa de CPU+GPU+DRAM esto los convierte en proveedores unicos de todo el hardware y expulsa a Nvidia del mercado de los mainframes y datacenters a no ser que les de por utilizar Intel donde…

¡Jen-Hsun, tenemos un problema!

Nvidia va a ser la reina con Ampere durante el 2020, pero el 2021 en adelante se pinta muy negro para ellos, especialmente en el mercado de los servidores x86, lo que les va a forzar a ir a ARM o RISC-V en esclusiva. Pero a corto plazo donde veremos una batalla CDNA/Arcturus contra Ampere podemos decir que Nvidia ya ha ganado dicha partida de antemano y durante este 2020 en el mercado HPC vamos a ver a Nvidia siendo la reina todavía.

Esto es todo, como siempre tenéis el Discord y los comentarios de la misma entrada para comentar el contenido de la misma.