Procesadores

NPU vs CPU: todo lo que debes saber sobre estas dos unidades de procesamiento

La NPU vs CPU es una comparativa interesante, ya que existen algunas diferencias y semejanzas entre estas dos unidades. Deberías conocer a fondo qué son ambas y cómo funcionan, para así comprender un poco mejor los nuevos SoCs que integran ambas unidades de procesamiento para propósito general y aceleración de IA.

La importancia de la computación heterogénea

HSA

En la actualidad existe un abanico de cargas de trabajo muy variadas que un único procesador no puede dominar con eficiencia. Es aquí donde la computación heterogénea entra en juego, como un equipo de especialistas trabajando en conjunto.

Esta estrategia permite que cada procesador se dedique a lo que mejor puede hacer, según sus fortalezas, consiguiendo la mejor fiabilidad y rendimiento. Por ejemplo, una CPU se encarga del control secuencial de los programas genéricos, la GPU se dedica a flujos de datos en paralelo, como los gráficos, y la NPU al procesamiento de cargas de trabajo relacionadas con la IA. Además de estos, puede haber más tipos de unidades, como los DSP, DSA, etc.

No se trata de una sustitución, sino de que todas se complementen y trabajen juntas. Al aprovechar el procesador adecuado para cada tarea, la computación heterogénea maximiza el rendimiento y la eficiencia. Esto se traduce en consumos de energía más bajos y mayor rapidez de ejecución.

Más información aquí

La idea de utilizar procesadores especializados para mejorar el rendimiento informático no es nueva. Durante décadas, los sistemas se han basado en coprocesadores como los aceleradores gráficos o  tarjetas gráficas, tarjetas de sonido (con DSP), etc. Esta tendencia continuó en la década de 2010 con el auge del aprendizaje profundo y las cargas de trabajo de IA.

La búsqueda de un procesamiento de IA más rápido comenzó con intentos tempranos como el chip ETANN, que utilizaba circuitos analógicos para cálculos neuronales. A esto le siguieron diseños completamente digitales como el Ni1000. Curiosamente, incluso en la década de 1990, los investigadores estaban explorando procesadores de señal digital y FPGAs para acelerar las redes neuronales. La necesidad de procesamiento paralelo condujo al desarrollo de sistemas de alto rendimiento diseñados específicamente para simulaciones de redes neuronales. Estos primeros esfuerzos se comenzaron a centrar en la GPU.

La historia no termina ahí. A lo largo de la década de 2000, las CPU también evolucionaron, incorporando instrucciones específicas en la ISA para las tareas de IA, así como unidades de procesamiento vectorial más grandes y soporte para tipos de datos de baja precisión, tanto enteros como de coma flotante, que son los utilizados por estas cargas de IA.

¿Qué es una NPU?

La demanda de potencia de procesamiento en redes neuronales y aprendizaje automático se está disparando, debido al auge de la IA. Si bien las CPU y GPU tradicionales pueden manejar estas tareas, la NPU (Neural Processing Unit) es la candidata para encargarse de acelerar estas tareas, ya que es un procesador diseñado especialmente para ejecutar estas cargas de forma rápida y eficiente.

Para especializarse en cargas de IA, la NPU se caracteriza por:

  • Computación paralela basada en datos: las NPU sobresalen en el procesamiento paralelo, un requisito clave para las cargas de trabajo de redes neuronales.
  • Optimización y enfoque del hardware: Las NPU están construidas con características de hardware especializadas, como sistemas de almacenamiento en caché eficientes, para mejorar aún más el rendimiento. Por ejemplo, podemos encontrar:
    • Memoria SRAM (caché) para almacenar resultados temporales de la red neuronal para reducir los accesos a la memoria principal.
    • Unidades MAC (Multiply-Accumulate Unit) en cientos o miles, que permitirán hacer cálculos de multiplicación y acumulación de forma paralela. Si por ejemplo tenemos 9.000 unidades MACs y cada una realiza dos operaciones, son 18.000, y si funciona a una frecuencia de reloj de 2 Ghz, esto significa que estaríamos hablando de un rendimiento de 36 TOPS.
    • ReLU (Rectified Linear Unit), como unidad cuya función es la activación.
    • SiLU (Sigmoid Linear Unit), que son unidades específicas para mejorar la precisión, y que trabaja estrechamente relacionada con la ReLU.
    • Otras: también puede haber otras unidades, dependiendo de la arquitectura de la NPU. Por ejemplo, Intel incluye un elemento que denomina SHAVE DSP (Streaming High-Performance Audio Vector Engine), que es una arquitectura especializada para audio y vídeo, gracias a unidades vectoriales que mejorar aplicaciones como las de reconocimiento de voz, etc.

TOPS, corresponden a Tera Operations Per Second, es decir, representa la capacidad de una NPU para realizar un trillón (un millón de millones) de operaciones aritméticas básicas (suma, multiplicación) en un segundo. Gracias a esto, se puede comparar y medir el rendimiento de una NPU.

  • Ventaja en los datos de baja precisión: están optimizadas para algoritmos que utilizan datos de baja precisión, como los enteros de ocho bits (INT8), coma flotante de dieciséis bits (FP16), etc.
  • ISA especializada: el set de instrucciones de una NPU tiene algunas elementales para este tipo de cargas, así como tipos de datos de precisión baja. Por ejemplo, operaciones tipo DMA para el acceso (lectura y escritura) a la memoria principal o RAM, o instrucciones de multiplicación para operaciones de convolución, deconvolución, y producto interno.
  • Trabajo paralelo Turboalimentado: pueden manejar múltiples cálculos a la vez, acelerando significativamente el cómputo para redes neuronales.
  • Maestras de las matrices: están optimizadas para operaciones matriciales ultrarrápidas, la base de los cálculos de redes neuronales.
  • Compresión y Pruning: las NPU pueden reducir el tamaño de los modelos de redes neuronales sin comprometer la precisión. Esto se traduce en un mejor uso de la memoria y un procesamiento más rápido durante la inferencia (usar el modelo para predicciones).
  • APIs para IA: vienen con herramientas de software que ayudan a ajustar y desplegar modelos de redes neuronales para un rendimiento óptimo.

ejemplo Intel

Gracias a esto, las NPUs están resultando cruciales para aplicaciones como: dispositivos móviles con apps basadas en IA, como el reconocimiento de voz, efectos de cámara, etc.; así como también para vehículos autónomos, para reconocimiento de imagen y tomar decisiones en tiempo real; sistemas de vigilancia automáticos; reconociimento facial;  ciberseguridad; robótica y automatización; IoT; ocio; y más.

Te recomiendo leer los mejores portátiles con NPU

Otros tipos de aceleradores de IA

Existen varias unidades que pueden ejecutar tareas de IA, como la propia CPU y la GPU como he comentado antes. Pero también se puede hacer desde un DSP (Digital Signal Processor), puesto que estas unidades están optimizadas precisamente para hacer tareas MAC. Otra alternativa es implementar un DSA (Domain Specific Accelerator) en un FPGA, o en un ASIC. Sin embargo, existen unidades específicas como la NPU, muchas de ellas no son más que otros nombres para NPU que le han dado algunos diseñadores, pero se refieren a lo mismo:

  • BPU (Brain Processing Unit): arquitectura de procesador integrado de la compañía Horizon.
  • DPU (Dataflow Processing Unit): no confundir con DPU (Data Processing Unit). En este caso es una arquitectura para IA propuesta por Wave Computing.
  • IPU (Intelligence Processing Unit): inversión de Deep Mind en los productos de procesador de IA de Graphcore.
  • TPU (Tensor Processing Unit): el nombre que le ha dado Google a su NPU.
  • VPU (Visual Proccesing Unit): un chip dedicado para acelerar el procesamiento de imágenes e inteligencia artificial lanzado por Movidius, una compañía adquirida por Intel.

Es decir, estamos hablando de tipos de unidades de procesamiento de aprendizaje profundo o DLP (Deep Learning Processor).

Te puede interesar leer los mejores procesadores del mercado

NPU vs CPU vs GPU

h100

Como es lógico, existen diferencias entre la NPU vs CPU, y también con otras unidades como la GPU. Aquí vamos a ver algunas de las más destacadas:

  • En una CPU, el 70% de los transistores se utilizan para construir la caché y parte de la unidad de control, y no tantos a las unidades de ejecución.
  • En una GPU, la mayoría de transistores se dedica a las numerosas unidades de cómputo, para mejorar el procesamiento paralelo.
  • Mientras en la NPU, se simulan neuronas a nivel de circuito, y la mayoría de sus transistores suele ir destinado a la SRAM y las unidades MAC.
  • El rol de la CPU es el procesamiento genérico, mientras que el rol de la NPU es solo acelerar cargas de IA, y no se dedica a otra cosa.
  • Tanto las NPUs como las GPUs pueden acelerar cargas de IA de forma bastante eficiente y rápida, pero con enfoques distintos. Las primeras están diseñadas específicamente para IA y ML, mientras las segundas son ideales para gráficos.
  • La GPU tiene instrucciones específicas para el procesamiento gráfico, aunque mediante una API como CUDA u OpenCL se pueden programar para propósito general (GPGPU). La CPU también tiene una ISA genérica, pero la NPU tiene un conjunto de instrucciones y datos más reducido y especialmente optimizado para IA y ML.
  • La NPU hace más uso de su caché de gran tamaño, para reducir la latencia en los accesos a la RAM. En cambio, la CPU y GPU dependerán más de la RAM y/o VRAM.

Si tienes alguna duda o información que aportar, no dudes en dejar tus comentarios…

Isaac

Geek de los sistemas electrónicos, especialmente del hardware informático. Con alma de escritor y pasión por compartir todo el conocimiento sobre tecnología.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en info@profesionalreview.com
Botón volver arriba