Procesadores para Inteligencia Artificial: Características y Diferencias

La inteligencia artificial ha ido en auge en los últimos años, tanto si hablamos de Machine Learning como de Deep Learning, aprendizaje o inferencia, desde un SoC para móviles hasta un GPU. Sus aplicaciones son amplias y en diferentes mercados. Por eso te vamos a presentar los diferentes tipos de procesadores para inteligencia artificial, sus características y las diferencias entre ellos.

Existen diferentes formas de acelerar los algoritmos de inteligencia artificial, unas más complejas que otras, unas más rápidas, pero menos versátiles, mientras que las segundas están preparadas para diversas utilidades. Los tipos de procesador que te vamos a presentar se usan a diario en diferentes lugares y para distintas aplicaciones.

Cualquier hardware es bueno para la IA

Procesadores para Inteligencia Artificial

Antes de adentrarnos en los diferentes tipos de hardware para IA tenemos que tener en cuenta que básicamente estamos hablando de ejecutar programas, por lo que cualquier tipo de unidad de procesamiento puede ejecutar algoritmos dedicados a la inteligencia artificial, pero del mismo modo que no utilizamos el CPU mover programas gráficos, ni se hace de cara a la inteligencia artificial.

Así que la afirmación de que cualquier hardware se utiliza para la inteligencia artificial se toma con pinzas, obviamente podemos ejecutar los algoritmos en cualquier hardware, pero el nivel de eficiencia es mucho menor cuando hablamos de unidades más generales y que no están especializadas.

En general, son las unidades diseñadas para el cálculo de matrices las que tienen una gran ventaja sobre otro tipo de unidades a la hora de ejecutar algoritmos de inteligencia artificial. Más que nada por qué a nivel matemático dicho cálculo de álgebra lineal se usa de forma continua y constante y repetida y créenos, las CPUs y GPUs no están optimizadas para este tipo de cálculos.

Primer tipo de procesadores para IA: matrices sistólicas

Los arreglos sistólicos son un tipo de unidad de la que ya hablamos en el artículo titulado “ Procesadores dedicados para IA, ¿qué son y cómo funcionan? En esta misma web se encuentra HardZone, por lo que si quieres una versión más detallada de te recomendamos que leas este artículo donde te explicamos con más detalle su funcionamiento.

Los arrays sistólicos se basan en el mismo concepto básico que el resto de procesadores, en este caso se trata de un array de ALUs donde cada uno no envía el resultado a los registros sino a la ALU que tiene al lado, excepto en los extremos que es por donde entran. y salen los datos a procesar.

Esta configuración tiene un enorme poder de cómputo con respecto al área que ocupan y la energía que consumen, sin embargo su simplicidad limita la cantidad de algoritmos de inteligencia artificial que pueden ejecutar, por lo que sus capacidades son limitadas, no en potencia sino en tipo. red neuronal que pueden ejecutar y su complejidad, no el tamaño.

Segundo tipo de procesadores para inteligencia artificial: ASICs

NVIDIA RC-18

El segundo tipo de procesadores de IA especializados es una evolución del primer tipo, ya que con los arreglos sistólicos todas las unidades están interconectadas en una matriz, pero con una diferencia importante.

Cada elemento no es una ALU sino un procesador completo que tiene su propia memoria local y se comunica con el que está al lado. Por lo tanto, en este tipo de unidades se pueden ejecutar algoritmos más complejos para IA, por lo que existe una mayor versatilidad a la hora de programar los algoritmos con herramientas como Tensorflow y Pytorch, pero no cuentan con la excelente relación potencia/área. y el consumo de matrices sistólicas por su mayor complejidad.

¿Su principal ventaja? El hecho de que sus unidades sean más complejas permite ejecutar cualquier tipo de algoritmo, mientras que en el caso de los arrays sistólicos sus capacidades son limitadas en este sentido. Ya que estos están diseñados pensando en la zona y el consumo. En particular, las matrices sistólicas se pueden encontrar dentro de otros tipos de procesadores, mientras que los ASIC especializados son unidades en sí mismos.

Tercer tipo de procesadores para inteligencia artificial: FPGA

arquitectura FPGA

El tercer tipo de procesadores especializados para IA son los FPGA, no solo chips dedicados sino también integrados en SoC o eFPGA. El motivo de ello es que las FPGA por su naturaleza permiten varias entradas y salidas a la vez y la interconexión entre los diferentes elementos que la componen gracias a su capacidad de configuración.

El uso de FPGAs configurados como procesadores para IA no es una rareza, por ejemplo Microsoft no utiliza arrays sistólicos ni ASICs para IA en sus servidores Azure sino FPGAs. ¿Su mayor desventaja? Debido a que los núcleos son configurables, su rendimiento es en términos de área y consumo que las otras dos soluciones.

¿Su mayor ventaja? El hecho de que al ser configurable podemos hacer que una FPGA se comporte como un ASIC o como un array sistólico, de forma que cuando sea necesaria la capacidad de programación de los ASICs, la FPGA o conjunto de FPGAs pueda configurarse como tal, si en cambio es necesaria la potencia de la matriz sistólica, la FPGA se puede configurar como ese tipo de unidad.

Cuarto tipo de procesadores para inteligencia artificial: GPU

Acciones de NVIDIA Mineria

Las tarjetas gráficas también pueden servir para el cálculo de algoritmos para IA y no, no nos referimos a las de NVIDIA y sus Tensor Cores, pero todo cálculo con matrices puede ser vectorizado y por lo tanto transformado en un cálculo de vectores desde el punto de vista matemático para ser ejecutado en las clásicas unidades SIMD en las GPUs. La eficiencia no es tan grande como las otras unidades y su rendimiento en comparación es mucho menor, pero es superior al de una CPU.

Una de las claves del uso de tarjetas gráficas para IA es el soporte de formatos de datos de baja precisión, que no se suelen utilizar para cálculo gráfico, sino en procesadores para inteligencia artificial. Esto significa que estas GPU son compatibles con estos formatos y pueden trabajar con datos con esa precisión.

Para el cálculo de matrices, las GPUs realizan una vectorización de la matriz, ya que no fueron diseñadas para trabajar con matrices, sino con vectores. Este proceso de vectorización es necesario para que la GPU pueda realizar los cálculos, pero son unidades mucho más lentas que los otros tres tipos de unidades de las que hemos hablado anteriormente.