Los procesadores para la inteligencia artificial han sido la gran novedad en cuanto al hardware y su utilidad está claramente manifiesta en varios campos que ha revolucionado. No obstante no han llegado el zenit de sus posibilidades y el avance puede que pase por integrar los procesadores para la IA junto a memoria DRAM en un mismo chip.
De cara a la IA se utiliza un tipo de procesador que son llamados arrays o matrices sistólicas o también procesadores Tensor. Un tipo de procesador donde sus diferentes ALUs están conectadas en matriz y bombean los datos de una unidad a otra.
Al contrario que otras configuraciones más convencionales donde las ALUs reciben los datos a operar desde un registro en común, en los arrays o matrices sistólicas cada ALU recibe el dato procesado por la anterior a excepción de las unidades de entrada y de salida, las cuales se comunican con una unidad externa en la que almacenan sus resultados.
Por lo que la cantidad de datos que pueden tratar es en sí mismo un importante cuello de botella, el cual se va a solucionar con la unión de memoria DRAM y procesadores dedicados a la inteligencia artificial.
Redes Neurales, IA y ancho de banda
En toda red neural lo que tenemos es siempre una serie de entradas y salidas, entremedio hay una serie de interconexiones y cálculos que se realizan en la parte interna del array sistólico. Debido a que la comunicación es interna solo necesitan memoria externa las entradas y salidas de la red neural. Por ejemplo las TPU de Google hacen uso de arrays sistólicos, o también conocidos como unidades matriciales de 128 x 128 ALUs, lo que supone necesitar una gran cantidad de datos para todos los nodos de entrada y de salida.
Por el momento los procesadores para la inteligencia artificial trabajan con información de muy baja precisión, por ejemplo a la hora de procesar imágenes no las procesan completas sino por sus componentes de color por separado. Esto nos permite utilizar ALUs de 8 bits para ello. Pero a medida que empiece a ser más necesario el manejar volúmenes de datos de mayor precisión harán falta soluciones de mayor ancho de banda en lo que a memoria se refiere.
Hay un poco de procesador para IA en mi DRAM
Una solución de cara a la Inteligencia Artificial es la implementación de las redes neurales junto a la memoria en el mismo chip, es decir, otorgarle memoria embebida a estos. Algo que se puede realizar utilizando tecnología 3DIC y conectando de manera vertical a través de vías de silicio en vertical la memoria con el procesador para la IA.
La idea de las memorias apiladas sobre procesadores es fácil de entender, cuando conectados dos procesadores en horizontal solo podemos utilizar una interfaz en serie. Es decir, podemos conectar M pines entre la RAM y el procesador. Pero si aplicamos el procesador encima y lo conectamos verticalmente podemos crear una interfaz de MxN pines.
Esto es importante porque hemos de tener en cuenta que lo que más consume de una memoria es la transferencia de datos y dicho consumo crece con el voltaje y la velocidad de reloj, por eso preferible aumentar el número de pines para aumentar el ancho de banda en lo máximo posible.
¿Qué ventaja tiene fusionar DRAM y un procesador para la IA?
El hecho de aumentar la cantidad de pines supone aumentar la cantidad de bits que recibe la red neural por ciclo de reloj y permite el uso de redes con mayor cantidad de datos y/o mayor precisión. Además que la cercanía de la memoria con el procesador no solamente reduce la latencia, sino que al tener que recorrer menos distancia para la transmisión de datos se reduce el consumo energético.
Tenemos un ejemplo de este tipo de memoria en la patente reciente de AMD en la que se habla del chiplet ideado para la IA, el cual no es más que una memoria DRAM y una serie de procesadores neurales en un mismo chip. Siendo un ejemplo de este tipo de procesador.
De cara al mercado doméstico es posible que no veamos estos procesadores, especialmente porque van a estar pensados para crujir una gran cantidad de números y hacer predicciones de datos con grandes volúmenes de datos, los cuales el usuario de a pie no suele manejar. Lo que está claro es que la IA se ve limitada por las capacidades actuales de la RAM. Por lo que va a ser necesario unificar memoria y este tipo de procesadores con tal de aumentar sus capacidades.