Tutoriales

¿Qué es una NPU (Neural Processing Unit) y cómo aplica la IA a móviles y ordenadores?

NPU es uno de los conceptos más novedosos en el campo de los procesadores, SoC y chips de informática. Cada vez cobran más relevancia, y se vuelve más probable que nos leas desde un dispositivo que cuente con un módulo de NPU en su interior. Vamos a contarte todo lo que necesitas saber para conocer la importancia de una NPU o Neural Processing Unit en la actualidad y en el futuro.

Revisa también:

Qué es una NPU y por qué es cada vez más importante

NPU son las siglas de Neural Processing Unit Unidad de procesamiento neuronal. Se trata de un tipo de procesador pensado para un uso muy específico: realizar operaciones de redes neuronales, que son básicamente el tipo de Inteligencia Artificial más potente en la actualidad, y que funcionan en base a un concepto similar a las neuronas humanas.

Ejemplo de red neuronal. Fuente: Analytics Vidhya

Las redes neuronales están compuestas por un conjunto de capas sucesivas, en cada una de la cual hay un número de neuronas. La entrada de la red, sea una imagen o un texto, se divide en piezas que se reparten por las neuronas de la primera capa. Cada una de esas piezas tiene un valor concreto, que al multiplicarse con un valor preentrenado llamado peso (weight) provoca que cada neurona se active o no. La salida de cada neurona irá pasando por las siguientes capas, hasta obtener finalmente un resultado.

Esta explicación es liosa y parece «mágica», pero es difícil hacer ver el principio de funcionamiento de las redes neuronales con tan pocas palabras. La cuestión es que todo lo complejo que se base en IA se realiza con una red neuronal. Por poner unos pocos ejemplos:

  • Herramientas como ChatGPT
  • Algoritmos de reconocimiento facial
  • Algoritmos de detección de objetos y todo tipo de usos en visión artificial
  • Traductores modernos
  • Sistemas de recomendación de servicios como Amazon, Netflix, Spotify…
  • Reconocimiento de voz / dictado

Sí, todo eso se consigue con redes neuronales, precisamente porque hay distintas arquitecturas de redes, como las redes convolucionales (CNN), los transformadores (Transformers), etc.

Los grandes avances en el mundo de la IA pasan hoy por las redes neuronales.

¿En qué nos beneficiaría tener una NPU en nuestro ordenador o móvil?

Ya hemos entendido la importancia de las redes neuronales, ahora bien, ¿por qué una NPU puede ser necesaria en nuestro PC o en nuestro móvil? La respuesta puede parecer obvia, pero en realidad no lo es tanto. Debemos entender que en las redes neuronales intervienen básicamente dos procesos de cálculo:

Entrenamiento de una red neuronal

La manera en que una red neuronal aprende es básicamente por repetición. Una vez se diseña la red, se deben calcular los pesos de cada neurona, y para ello se proporciona un conjunto de datos ya etiquetados que se utilizan en el proceso de entrenamiento.

Proceso ultra-simplificado. Nos faltan detalles como que separamos parte del conjunto de datos, para usar como validación y test (porque así generalizamos la solución: cualquier imagen de gatos o perros dará un buen resultado y no solo con aquellos que estén en el conjunto de datos)

Ahora entenderás por qué el principio de funcionamiento de una red neuronal es similar al de un ser humano: si queremos que una red aprenda a distinguir gatos de otros animales, le proporcionaremos miles de fotos de gatos y de otros animales en las que cada una está correctamente identificada. No entraremos más a fondo en cómo se realiza ese proceso de aprendizaje, pero básicamente el resultado es que la red entenderá qué características definen a un gato frente a otros animales.

Bien, ¿cómo sabes tú que un animal concreto es un gato? Pues exactamente por lo mismo, porque has aprendido ciertas características físicas que los distinguen de otros animales. La aplicación de ese principio se lleva a las redes neuronales.

Operación de convolución (Fuente: Towards data science)

¿Y qué pinta una NPU aquí? Pues básicamente, el tipo de operaciones que se realizan aquí implica la resolución de sistemas de ecuaciones y operaciones matriciales que pueden llegar a millones de parámetros. Una NPU dedicada puede estar pensada para hacer este tipo de cálculos. No obstante, si hablamos de la NPU como un complemento de un procesador doméstico (en un móvil o un PC), normalmente no están pensadas para entrenamiento por la ingente cantidad de datos necesaria.

Inferencia de una red neuronal

Si la NPU de un ordenador o un móvil no es necesariamente buena para el proceso de entrenamiento, donde sí brillará es en el proceso de inferencia.

La inferencia consiste básicamente en procesar una entrada en la red neuronal ya entrenada para recibir un dato de salida. Es decir, cuando la red está totalmente preparada y la utilizamos para distintos propósitos. Se trata del proceso en el que nosotros le damos un uso a la red neuronal, por lo tanto será el más usado.

Entrenamiento vs inferencia (fuente: AMD / Xilinx)

Esto es lo que explica por qué una NPU puede ser muy necesaria en un móvil u ordenador personal. Es cierto que el proceso de entrenamiento se realizará en un servidor, ¿pero para qué tener servidores externos encargándose de la inferencia y gastando una ingente cantidad de recursos? Podemos ejecutar ese procesamiento directamente en nuestro dispositivo.

La importancia de la NPU viene dada por tres factores clave:
  • Todos tenemos (y cada vez más) funciones basadas en IA en nuestros ordenadores y móviles. Ya solo el «Face ID» o el reconocimiento de voz son una de ellas.
  • Muchos servicios de IA se basan completamente en la nube, así que su generalización implica una ingente cantidad de recursos tirados en servidores para inferencia.
  • La solución a esto es un hardware específico para acelerar los procesos de inferencia, pero que no haya necesidad de una GPU dedicada potente. ¿Para qué requerir una GPU carísima si podemos integrar un pequeño módulo en una CPU o SoC que se encargue de ello?

Un procesador normal (CPU) es muy bueno en tareas de propósito general, pero en el tipo de operaciones que se realizan en redes neuronales, con millones de parámetros distintos, no lo son. Y las GPU son buenísimas, pero también sirven para muchas más cosas. Una NPU se puede integrar como una pieza de una CPU o SoC y utilizarse para este propósito específico sin suponer un incremento de costes exagerado.

Principales implementaciones de NPU, ¿qué fabricantes se han animado a ello?

Para ilustrarte en esta importancia de las NPU vamos a ver cuáles de los principales fabricantes y diseñadores de chips para smartphone y ordenadores se han animado a incorporar una Neural Processing Unit en sus productos.

Realmente, a estas alturas son todas, así que vamos a ver los principales casos: Apple, Google, Intel y AMD. Nos faltaría hablar de incluso más compañías, tanto grandes (Qualcomm, Samsung…) como pequeñas.

Apple Silicon y su Neural Engine

Patente del Apple Neural Engine: ¡todo tiene que ver con las operaciones matriciales!

El Neural Engine de los SoC de Apple es la implementación de NPU más famosa, puesto que ya existe desde el año 2017, cuando se introdujo en el Apple A11 Bionic, el chip usado en los iPhone 8 / X.

Este fue evolucionando con cada generación de iPhone y iPad, llegando además a los ordenadores Mac cuando en 2020 Apple abandonó Intel y empezó a usar sus propios SoC en ordenadores. Es decir, con el Apple M1 y sus sucesores.

El Apple Neural Engine (ANE) consiste básicamente en unos cuantos núcleos dedicados a operaciones de redes neuronales (convolución, multiplicación de matrices…) tal y como cualquier otra NPU.

Apple A17 PRO

De esta forma, un SoC Apple actual incluye en el mismo chip CPU, GPU, NPU, memoria RAM, seguridad e I/O. Aquí aprovechamos para recordar que algunos chips que denominamos CPU o APU en realidad encajan en la definición de SoC, ya que cualquier procesador actual de PC incluye esos componentes, salvo la RAM y (en general) la NPU.

El Neural Engine se utiliza para tareas como:

  • Face ID y Animoji.
  • Mejoras de la cámara.
  • Realidad aumentada.
  • Reconocimiento de personas, objetos y mascotas en imágenes.
  • Detección de texto en imágenes.
  • Dictado.
  • Básicamente cualquier función basada en IA en un iPhone o Mac.

Los desarrolladores de terceros también cuentan con una API para hacer uso del Neural Engine. Su rendimiento además se ha multiplicado enormemente: el iPhone X podía con 0.6 TFLOPS (billones de operaciones) FP16 con el ANE, ahora un chip M3 puede con 18 TFLOPS y un A17 PRO de iPhone 15 Pro con 35 TFLOPS.

Google Tensor (TPU)

Google es otra de las grandes pioneras en el hardware específico para procesar redes neuronales, y en su caso cuentan con un concepto propio como son las TPU Tensor Processing Unit. Se trata de ASICS (es decir, chips diseñados a medida para este propósito) que desde el año 2015 utilizan en sus centros de datos.

Como te hemos explicado, optamos por llevar el concepto de NPU a núcleos más «pequeños» que son parte de un SoC de un dispositivo doméstico. Por eso, una TPU de un centro de datos no entraría en nuestra definición de NPU.

Componentes de un chip Google Tensor: gran protagonismo de la TPU

No obstante, lo que sí nos interesa son los chips Google Tensor usados en los móviles Pixel 6 en adelante. Esta familia de SoC están altamente destinados a la inteligencia artificial, al incluir su propia TPU (NPU) en el conjunto.

NPU integrada de Intel

Sigamos hablando de chips de móviles y ordenadores, pero dejemos de hablar de Arm por un rato (tanto Apple como Google usan arquitecturas Arm) y pasemos a la arquitectura x86-64 que domina en PC.

Intel y AMD no se han dormido en los laureles como algunos piensan, y ya tienen en su catálogo conceptos de NPU. En el caso del «gigante azul» de los procesadores, ya introducen NPU en ordenadores portátiles de la mano de los procesadores Meteor Lake, es decir, una serie de CPU de 14ª generación con un diseño más complejo y novedoso.

Estas NPU en ordenadores portátiles sirven muy bien para algunas tareas respaldadas por IA como son los algoritmos que cambian el fondo en videoconferencias, que hacen que parezca que nuestros ojos miran al frente, etc.

Microsoft también se está poniendo las pilas para aprovecharlo, y están potenciando todo un conjunto de herramientas para Windows 11 que permitan a los desarrolladores implementar de manera eficiente la IA y que se pueda aprovechar la NPU del ordenador en caso de estar disponible. También con funciones como Copilot.

AMD Ryzen AI

Este movimiento de Intel Meteor Lake (que se lanzan en diciembre de 2023) ya lo realizó AMD meses atrás, con sus procesadores para portátiles Ryzen serie 7040 (Zen 4), que incluyen la llamada Ryzen AI, que es por ello la primera NPU integrada en un procesador x86 y pensada para Windows.

Se trata específicamente del AMD Ryzen 9 7940HS (8 núcleos), Ryzen 7 7840HS (8 núcleos), Ryzen 5 7640HS (6 núcleos), Ryzen 7 7840U (8 núcleos) y Ryzen 5 7640U (6 núcleos). Por ahora AMD solo destaca características como el «encuadre automático», «corrección del contacto visual» y «efectos de fondo avanzados», es decir, las prestaciones de videoconferencia que comentábamos antes. Pero irán mucho más allá.

Ojo porque a AMD y a Intel le acecha Qualcomm con sus procesadores Snapdragon X basados en Arm, muy centrados en las NPU y que podrían comerse el pastel del mercado de portátiles si los gigantes x86 no se esfuerzan lo suficiente.

Tarjetas gráficas frente a NPUs, ¿es un Tensor Core una NPU?

La diferencia entre una NPU y una CPU está bastante clara, porque los procesadores tradicionales son muy buenos para realizar tareas de propósito general bastante potentes de manera secuencial, mientras que donde una GPU brilla es en el procesamiento paralelo y cálculos de punto flotante. Precisamente esos cálculos de punto flotante son lo que hace falta en la inferencia, por lo que tiene sentido que nos preguntemos la diferencia entre GPU vs NPU.

La NPU tiene unos propósitos más restringidos que una GPU, en cuanto al tipo de cálculos que se le dan bien. Una GPU hará de maravilla cualquier operación de coma flotante (para que nos entendamos, con decimales representados en forma binaria), mientras que la NPU está más restringida a las operaciones necesarias en inferencia de redes neuronales. También suelen plantearse como elementos de menor consumo y tamaño.

De hecho, quienes estéis más actualizados en el mundo del hardware os habréis dado cuenta de que los Tensor Cores de NVIDIA parecen algo similar a una NPU. Es una equiparación tan razonable como cuando hablamos de las TPU de Google.

Al fin y al cabo, todo es una cuestión de optimización para ciertas tareas y de tamaño. Una tarjeta gráfica sirve para mucho más que para la inferencia de algoritmos de IA, y mucho hardware de su interior es prescindible para esta tarea. La idea es que cada parte del chip se encargue de lo suyo, y los fabricantes han concluido que integrar una pequeña NPU en un procesador o SoC es beneficioso. Simplemente el caso de los SoC Apple debería dejarlo claro.

Te recomendamos la lectura de las mejores tarjetas gráficas del mercado.

Con esto finaliza nuestro repaso al concepto de NPU Neural Processing Unit. Ha sido un artículo más largo de lo habitual, pero es lo que se merece un asunto que es muy relevante en la actualidad y lo será mucho más en el futuro. Mantente atento a la web porque seguro que en próximos meses seguiremos hablando de ello 😉

Recent Posts

  • Reviews

MSI MPG Z890 Carbon WIFI Review en Español (Análisis completo)

MSI MPG Z890 Carbon WIFI es una de las placas que año tras año solemos…

29 mins atrás
  • Procesadores

Zen 4: AMD desactiva la función “loop buffer” de los procesadores Ryzen 7000 y EPYC

AMD parece haber desactivado una función que se había incluido con los procesadores Zen 4…

59 mins atrás
  • Tarjetas gráficas

Intel Arc B580 y B570 : un lanzamiento con grandes sorpresas y esperanzas

Intel está de estreno, con el lanzamiento de sus nuevas tarjetas gráficas dedicadas para competir…

3 horas atrás