Google ha presentado la plataforma abierta Coral NPU (Unidad de Procesamiento Neural), que ofrece un acelerador de hardware abierto para modelos de aprendizaje automático y herramientas de software para su uso con motores de IA estándar. Coral se puede utilizar como base para crear sistemas energéticamente eficientes en un solo chip (SoC), adecuados para aplicaciones de Internet de las Cosas, computación en el borde y placas de recolección de información de sensores, así como en dispositivos portátiles de consumo con un consumo de energía extremadamente bajo, como auriculares, gafas de realidad aumentada y relojes inteligentes. Los desarrollos del proyecto se distribuyen bajo la licencia Apache 2.0.
Coral NPU está diseñado para ejecutar aplicaciones de IA en dispositivos portátiles de forma continua con un consumo de energía mínimo. La implementación básica de Coral NPU proporciona un rendimiento de 512 mil millones de operaciones por segundo (GOPS) consumiendo solo unos pocos milivatios de energía. El NPU está diseñado para permitir la modificación flexible de la arquitectura según las necesidades de los fabricantes de SoC. El primer fabricante en comenzar la producción de chips basados en Coral NPU será Synaptics, que ha anunciado una serie de procesadores para dispositivos IoT, Astra SL2610, que incluye un subsistema Torq NPU, implementado sobre la arquitectura Coral NPU.
Entre las aplicaciones estándar de Coral NPU se menciona el uso de IA para el procesamiento de imágenes y sonido, interacción con el usuario y análisis de contexto. Por ejemplo, en los dispositivos se pueden ejecutar grandes modelos de lenguaje y aplicaciones de reconocimiento de rostros y objetos, búsqueda visual, reconocimiento de voz, traducción en vivo, transcripción de voz, detección de palabras clave en el habla, control por gestos y comandos de voz, así como la identificación de la actividad del usuario (caminar, correr, dormir) y del tipo de entorno (en casa, al aire libre).
El NPU utiliza una arquitectura de conjunto de instrucciones RISC-V de 32 bits RV32IMF_Zve32x, un bus AXI4, una canalización de procesamiento de instrucciones de cuatro etapas con despacho ordenado, finalización de ejecución desordenada, y despacho escalar de cuatro hilos y vectorial de dos hilos. El procesador soporta operaciones SIMD para el procesamiento simultáneo de vectores de 128 bits y está equipado con 8 KB de memoria ITCM para instrucciones y 32 KB de memoria DTCM para datos.

El NPU incluye tres componentes de procesador que trabajan juntos:
- Un núcleo para cálculos escalares: un frontend ligero programado en C, RISC-V, que gestiona los flujos de datos hacia los núcleos principales y utiliza un modelo de 'ejecución hasta completar' para garantizar la funcionalidad de las CPU tradicionales y un consumo energético extremadamente bajo.
- Un coprocesador SIMD vectorial que soporta las extensiones vectoriales del conjunto de instrucciones RISC-V (RVV v1.0) y permite ejecutar simultáneamente múltiples operaciones sobre grandes volúmenes de datos.
- Un coprocesador de matrices que realiza de manera eficiente operaciones de multiplicación y suma combinadas (MAC) y está diseñado para acelerar operaciones básicas de redes neuronales.

Para los desarrolladores de aplicaciones, se ha preparado un conjunto de compiladores para modelos de AI (IREE y TFLM), un compilador para programas en C y un simulador. Se soporta la compilación de modelos utilizados en aplicaciones de AI basadas en los frameworks TensorFlow, JAX y PyTorch. El modelo se compila en una representación intermedia universal que luego se transforma en un conjunto de instrucciones RISC-V de bajo nivel soportado en Coral NPU mediante LLVM.

Fuente: opennet.ru
