Intel GNA, así es el coprocesador para la inteligencia artificial de las CPUs de Intel

Sí habéis leído las especificaciones completas de algunas de las CPUs de Intel más recientes habréis visto aparecer unas siglas cuanto menos misteriosas: GNA. En realidad se trata de un pequeño procesador o más bien de un coprocesador que se encarga de acelerar ciertos algoritmos de Deep Learning y que, por tanto, están altamente relacionados con la implementación de la inteligencia artificial. Os explicamos en qué consiste este coprocesador y cuál es su funcionalidad.

Los procesadores dedicados a acelerar ciertas tareas cotidianas, que utilizan modelos desarrollados vía inteligencia artificial, han ido apareciendo durante los últimos años en todas las configuraciones y tamaños y no es de extrañar que Intel no haya querido quedarse atrás.

¿Qué es el Intel GNA?

Intel GNA-1

El Intel GNA es el coprocesador que tienen integradas algunas CPUs de Intel y que sirve para acelerar la ejecución de algunos algoritmos de inferencia. Dicho esto,  muchos ya sabréis que por lo tanto estamos ante un procesador del tipo neural, que en este caso fue introducido por primera vez en los Intel Ice Lake, y sus siglas significan Gaussian Neural Accelerator (GNA), y al estar integrado dentro del propio procesador funciona a muy bajo consumo.

Está pensado para utilizarse en tareas como por ejemplo la transcripción de audio a tiempo real o la eliminación de ruido en las fotos, las cuales son típicas de la IA, pero no requieren un acelerador de alta potencia.

Fue mejorado recientemente en Tiger Lake, donde se implementó la versión 2.0 del GNA que está pensada para ser utilizada también para la cancelación del ruido ambiente y la reducción de ruido en las fotografías. Con ello podemos deducir que el GNA está pensado para entornos empresariales colaborativos, especialmente los basados en el teletrabajo en los que la transcripción de texto y que la comunicación se realice sin ruidos de ningún tipo es muy importante.

¿Cómo funciona?

Intel GNA-2

El Intel GNA no es una unidad de ejecución de la CPU por lo que estamos ante un procesador dentro de otro y que sirve para acelerar ciertas tareas para su huésped. Esto significa que ha de ser invocado de manera explícita en el código a través de una API, en este caso de la API dedicada de Intel.

La implementación de un algoritmo o modelo de Deep Learning para que lo ejecute el Intel GNA durante la etapa de inferencia se realiza en tres etapas:

  1. Se empieza entrenando el algoritmo utilizando una red neural en coma flotante con un framework de libre elección.
  2. El modelo resultante del entrenamiento es importado utilizando Intel Deep Learning SDK Deployment Tool que permite importar cualquier modelo generado por los frameworks de Deep Learning más famosos y utilizados.
  3. Se enlaza con el Intel Deep Learning SDK Inference Engine o las librerías nativas GNA, de las cuales existen dos: una para Intel Quark y la otra para Intel Atom y los Intel Core.

Intel GNA-3

De cara a invocar el GNA, la CPU lo que hace es dejar el modelo de inferencia en la memoria, y el GNA es invocado para que adopte dicho algoritmo y lo ejecute en paralelo al trabajo del procesador del que es huésped. Se ha de tener en cuenta además de que se trata de una unidad de baja potencia, por lo que no nos podemos esperar los mismos resultados que utilizando una red neural de alto rendimiento o un FPGA configurado como tal, pero es lo suficientemente buena para tareas sencillas del día a día.

Intel GNA fuera de las CPUs de Intel

Intel GNA-4

Aunque el GNA es en sí mismo un procesador que se encuentra integrado como parte de las CPUs x86, puede ser desplegado fuera de la CPU si se quiere, siendo el caso más famoso el Intel Speech Enabling Dev Kit, el cual es utilizado especialmente para la inferencia de los comandos de voz de cara a las aplicaciones para los dispositivos Amazon Alexa.