NPU es uno de los conceptos más novedosos en el campo de los procesadores, SoC y chips de informática.
Evento de Intel
Sumérgete en la nueva era de las PC con IA. Aprenda a utilizar NPU, optimizadas con el kit de herramientas OpenVINO™, para una inferencia de IA de alto rendimiento.
por Intel OpenVINO DEVCON
- FECHA DE INICIO: 23/05/2024
- HORA DE INICIO: 10:00 A. M. PDT
- DURACIÓN: 60 MINUTOS
Resumen
Sumérgete en la PC con IA de New Era con sus capacidades únicas de aceleración de IA que abarcan CPU, GPU y NPU. Esta sesión proporciona una descripción general completa del aprovechamiento de la NPU para tareas de inferencia de IA y utiliza OpenVINO™ para optimizar la implementación y el despliegue de aplicaciones de IA. Experimente demostraciones en vivo que muestran el rendimiento y la eficiencia energética de las aplicaciones de IA en la PC con IA. Aprenda a utilizar OpenVINO para optimizar el uso del hardware para la inferencia de IA, mejorando la eficiencia y el potencial innovador de sus proyectos de IA.
- Descubra qué es una PC con IA y sus capacidades de aceleración de IA en CPU, GPU y NPU.
- Explore una variedad de casos de uso de IA, incluida la IA convencional y generativa, y vea sus aplicaciones prácticas en AI PC.
- Descubra cómo la Unidad de procesamiento neuronal (NPU) mejora el rendimiento de las aplicaciones de IA y la eficiencia energética, especialmente para tareas tradicionalmente descargadas en aceleradores de IA.
- Aprenda las técnicas para optimizar e implementar aplicaciones de IA en NPU utilizando OpenVINO, garantizando la máxima eficiencia energética y rendimiento.
- Experimente demostraciones en vivo que muestran cómo realizar la transición sin problemas de aplicaciones de IA a la NPU con OpenVINO.
- Descubra cómo los desarrolladores pueden experimentar y aprovechar OpenVINO en PC con IA para mejorar sus proyectos de IA.
Recursos:Jupyter Notebook para segmentación de selfies usando TFLite y OpenVINOJupyter Notebook para estimación de pose humana en vivo con OpenVINOJupyter Notebook para convertir y optimizar YOLOv8 con OpenVINO JupyterNotebook para generación de imágenes con modelo de consistencia latente y OpenVINOJupyter Notebook para crear Chatbot con tecnología LLM usando OpenVINO
¿No está registrado en la nueva era de la PC con IA: Llevando la IA a la NPU para un webcast de inferencia de bajo consumo de energía y rápido y está interesado en registrarse? Haga click abajo:
Fuente: https://onlinexperiences.com/Launch/Event/ShowKey=252902
¿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.
por Breixo Gómez
Qué es una NPU y por qué es cada vez más importante
NPU son las siglas de Neural Processing Unit o 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.
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.
¿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.
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.
¿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.
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
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.
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 o 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.
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.