Los procesadores para la inteligencia artificial son una realidad en todos los campos y sectores del hardware. La enorme cantidad de ventajas que ofrecen resultan en un cambio de paradigma para muchos mercados y por tanto el hardware dedicado a acelerar tanto los algoritmos de entrenamiento como los de inferencia han crecido. ¿Un punto en común? El hardware para inteligencia artificial requiere una gran cantidad de ancho de banda.
Si miramos el hardware diseñado para inteligencia artificial que hay en el mercado lo que más destaca en estos momentos son las tarjetas gráficas de alto rendimiento como las NVIDIA Tesla cuyos modelos actuales utilizan su GPU A100, por parte de AMD tenemos las AMD Instinct con su arquitectura CDNA. A esto tenemos que sumarle la inclusión de las unidades AMX de Intel en su futura CPU Xeon Sapphire Rapids. ¿El punto en común entre todos ellos? Hacen uso de memoria HBM, por tanto estamos ante ante el hecho que la inteligencia artificial al igual el renderizado de gráficos son aplicaciones que requieren un gran ancho de banda.
¿Por qué la inteligencia artificial requiere tanto ancho de banda?
Los algoritmos de inteligencia artificial, al igual que ocurre con otros tipos de algoritmos utilizan una serie de datos de entrada, pero en dichos algoritmos se añaden un nuevo tipo de datos que son los pesos. Para entenderlo hemos de tener en cuenta que todos los procesadores para la IA son sistemas sistólicos con el objetivo de emular el funcionamiento de una neurona biológica.
Las neuronas que existen en el cerebro se componen de dendritas, el soma y el axón. Las primeras se encargan de captar los impulsos nerviosos que emiten otras neuronas. Estos impulsos, se procesan en el soma y se transmiten a través del axón que emite un impulso nervioso hacia las neuronas contiguas. Esto se consigue en un sistema sistólico donde los datos de entrada de la ALU o procesador contiguo, dependiendo de la complejidad, son los datos de salida de la ALU o procesador anterior.
Esto a simple vista nos debería hacer entender que al existir una comunicación interna entre los diferentes elementos de procesamiento entonces la memoria externa necesaria va a ser mucho menor. Pero las matrices necesitan una gran cantidad de datos para empezar a funcionar, ya que los datos que contienen las ALUs o procesadores en los extremos han de provenir de la memoria externa al chip así como almacenar la conclusión obtenida en memoria.
¿Cómo se calcula el ancho de banda para la IA?
Pues la respuesta es depende del caso, ya que por un lado podemos estar ante un algoritmo que tenga mucha recursión interna y apenas accede a la memoria externa. También depende del tipo de red neuronal implementada, pero por lo general el ideal en todo procesador es conseguir que al menos se transmita un byte de ancho de banda por operación que realiza el procesador. Un paradigma que es muy difícil de obtener.
El caso es que existen aplicaciones en las que el ancho de banda es muy pequeño, pero en otras se requiere un ancho de banda cercano al ideal teórico. Recordad que la IA maneja una inmensa cantidad de datos. Lo que lleva a inmensos anchos de banda que no se pueden conseguir con una memoria DDR convencional.
Fuente: HardZone