ProcesadoresTutoriales

NPU vs CPU vs GPU: ¿qué unidades rinden mejor en inteligencia artificial?

Este artículo se sumerge en el mundo de los procesadores, concretamente para comparar la NPU vs CPU vs GPU, tanto con las similitudes, las diferencias, las ventajas y desventajas de cada una a la hora de acelerar cargas de inteligencia artificial, y su integración en los nuevos sistemas heterogéneos.

¿Qué es una CPU y como se comporta con cargas de IA?

Procesador o CPU

La CPU (Central Processing Unit) es el cerebro de cualquier sistema informático. Es responsable de ejecutar las instrucciones de los programas, que son operaciones básicas como la aritmética, la lógica, el control de E/S, y la carga y almacenamiento de datos. Están diseñadas para enfrentarse a cargas de trabajo genéricas, ofreciendo las mejores prestaciones en el software habitual, que puede ser muy variado, desde un cliente de correo electrónico, hasta un reproductor multimedia, pasando por un navegador web, procesador de textos, etc.

Las cargas de trabajo de la Inteligencia Artificial (IA) presentan desafíos únicos para la CPU. Estas cargas de trabajo suelen requerir una gran cantidad de operaciones matemáticas de precisión simple y un gran ancho de banda de memoria, algo para lo que la CPU no está optimizada, aunque esto no quiere decir que no pueda procesarlas, solo que no lo hará con tanta eficiencia. Esto se debe a que los algoritmos de IA, como los de aprendizaje profundo, suelen implicar la manipulación de grandes volúmenes de datos y la realización de cálculos matemáticos complejos.

Las CPUs modernas están diseñadas para manejar estas demandas a través de varias técnicas. En primer lugar, muchas CPUs ahora incluyen unidades de punto flotante que pueden realizar operaciones matemáticas de precisión simple de manera eficiente. Además, las CPUs también pueden tener múltiples núcleos, lo que permite que varias operaciones se realicen en paralelo. Sin embargo, para conseguir mejores resultados, los nuevos SoCs están implementando ya una NPU dedicada, como AMD Ryzen AI o el Apple Neural Engine, etc.

Ten en cuenta que las unidades de ejecución de una CPU para uso genérico están optimizadas para manejar operaciones INT y FP de 64-bit por lo general, además, con algunas extensiones, pueden gestionar también operaciones de longitudes más elevadas, como las vectoriales, tipo SIMD con 128-bit, 256-bit, 512-bit, etc. En cambio, las cargas de IA suelen depender más de datos tipo FP32 (Punto Flotante de 32 bits), FP16 (Punto Flotante de 16 bits), INT8 (Entero de 8 bits) e INT16 (Entero de 16 bits).

En segundo lugar, las CPUs modernas también cuentan con una jerarquía de memoria para proporcionar a la CPU un acceso rápido a los datos. Esto incluye cachés de varios niveles que almacenan temporalmente los datos utilizados recientemente, así como un controlador de memoria integrado que permite a la CPU comunicarse directamente con la memoria principal. Pero los anchos de bus estrechos de estas unidades no es lo mejor para la IA. De hecho, para alto rendimiento se suele usar mejor HBM en vez de DRAM convencional, o VRAM con anchos mayores como en las GPUs que analizaré en el siguiente apartado.

Sin embargo, a pesar de estas optimizaciones, las CPUs de uso general pueden no ser siempre la opción más eficiente para las cargas de trabajo de IA. Esto se debe a que las CPUs están diseñadas para ser versátiles y capaces de manejar una amplia gama de tareas, mientras que las cargas de trabajo de IA suelen ser altamente paralelizables y pueden beneficiarse de hardware más especializado. Como los DSA (Domain Specific Accelerators), como puede ser la NPU que veremos después…

También debes leer nuestra guía con los mejores procesadores del mercado

¿Qué es una GPU y como se comporta con cargas de IA?

La GPU (Graphics Processing Unit) es una unidad de procesamiento especializado que se utiliza para acelerar y mejorar la eficiencia de las operaciones de cálculo en aplicaciones como la renderización de gráficos. No obstante, como sabrás, también pueden ser usadas de forma genérica como una GPGPU, o también para IA con bastantes buenos resultados.

Las cargas de trabajo de IA suelen requerir una gran cantidad de operaciones matemáticas de precisión simple y un gran ancho de banda de memoria usando VRAM tipo GDDR o HBM. Las GPUs son especialmente adecuadas para estas tareas debido a su arquitectura paralela masiva, ya que precisamente son bastante buenas para este tipo de casos. A diferencia de las CPUs, que tienen un número limitado de núcleos de alto rendimiento, las GPUs tienen cientos o incluso miles de núcleos más pequeños diseñados para manejar múltiples tareas simultáneamente.

Además, las GPUs modernas también cuentan con unidades especialmente dedicadas a acelerar estas tareas, como es el caso de los Tensor Cores. Unas unidades tensoriales encargadas de la IA en el mundo de los videojuegos y más allá de eso. Por si no lo sabes, un Tensor Core o Unidad Tensorial es un tipo de procesador especializado que se encuentra en ciertas familias de productos de NVIDIA, entre otros. Está diseñado para realizar operaciones y procesar datos agrupados en tensores, lo que ayuda a acelerar la carga de trabajo en operaciones con matrices de gran tamaño. Estos datos se utilizan principalmente en los campos de la inteligencia artificial o redes neuronales.

Sin embargo, a pesar de estas ventajas, las GPUs no son una solución universal para todas las cargas de trabajo de IA. Aunque son muy eficientes para tareas que pueden ser paralelizadas, no son tan eficientes para tareas secuenciales o que requieren una gran cantidad de operaciones de E/S. Además, las GPUs también pueden ser más costosas y consumir más energía. ¿Entonces?

También te interesará leer nuestra guía con las mejores tarjetas gráficas del mercado

¿Qué es una NPU y como se comporta con cargas de IA?

VPU

Una NPU (Neural Processing Unit) es otro tipo de procesador diseñado específicamente para la aceleración de algoritmos de Inteligencia Artificial (IA). Las NPUs están optimizadas para ejecutar cargas de trabajo de IA de manera eficiente, lo que las hace ideales para aplicaciones que requieren procesamiento intensivo de datos, como el reconocimiento de voz, la visión por computadora y el procesamiento del lenguaje natural. Y lo hacen de forma más ágil y eficiente a nivel energético que cualquier CPU o GPU.

Las NPUs están diseñadas para manejar operaciones matemáticas de precisión baja pero frecuentes, que son comunes en los algoritmos de IA. Estas operaciones a menudo implican la multiplicación y suma de grandes matrices de números, que son la base de las redes neuronales. Por eso las unidades de ejecución de una NPU se han optimizado para este tipo de operaciones y tipos de datos de precisión simple.

Cuando una NPU ejecuta una carga de trabajo de IA, primero carga los datos en su memoria interna. Luego, realiza una serie de operaciones matemáticas en estos datos, utilizando sus unidades de cálculo especializadas. Pero una característica clave de las NPUs es su capacidad para realizar cálculos en paralelo. Esto significa que pueden procesar múltiples elementos de datos simultáneamente, lo que las hace extremadamente rápidas, además tienen otras características importantes como la compresión de datos y la cuantización, que reducen la cantidad de memoria y ancho de banda necesarios. Y, a todo ello hay que agregar que se pueden implementar en sistemas heterogéneos para que actúen como un DSA y reduzcan la saturación de otras unidades como la CPU y GPU.

¡Comenta! Estaré encantado de dar respuestas…

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 [email protected]
Botón volver arriba