Inicio Artículos Cómo Arm Cortex-M85 con Helium puede mejorar su Vision AI

Cómo Arm Cortex-M85 con Helium puede mejorar su Vision AI

Eldar Sido, AI Ingeniero Técnico Marketing, Renesas Electronics

Introducción

En el panorama tecnológico actual, la demanda de capacidades sofisticadas de aprendizaje automático AI y procesamiento de señales avanzado en dispositivos integrados limitados ha aumentado considerablemente. Con la oferta actual de microcontroladores (MCU), los desarrolladores de software integrado se enfrentan a muchos desafíos para exprimir más procesamiento por ciclo para alcanzar esas demandas u optar por un procesador de gama alta como los dispositivos Cortex-A. Cualquiera de las opciones tiende a no seguirse después de un análisis de costo-beneficio debido a un aumento en el costo/tiempo de desarrollo del producto. A medida que ha aumentado la demanda de un microcontrolador determinista más potente, un núcleo que pueda manejar esos requisitos y ampliar el abanico de casos de uso a los que pueden apuntar las MCU más allá de los mercados conocidos de la actualidad.

El último y mejor núcleo de microcontrolador que se ha incorporado al mercado es ARM® Cortex®-M85. Este núcleo de uso general de vanguardia está diseñado para satisfacer las demandas de inteligencia artifician AI en sistemas pequeños (TinyML) y el procesamiento de señales avanzado. Cuenta con una arquitectura Armv8.1-M de 32 bits que proporciona una solución de alto rendimiento y eficiencia energética para sistemas integrados. Con la última tecnología Helium de ARM, la extensión de vector de perfil M (MVE), brinda una mejora significativa a las aplicaciones ML/DSP, su unidad de punto flotante (FPU) y el extenso conjunto de instrucciones de procesamiento de señal digital (DSP) permiten que el núcleo CM85 maneje desafíos informáticos complejos que se encuentran en el campo de TinyML.

En este artículo, analizaremos más de cerca las características de la tecnología Helium, sus capacidades y otras características adicionales del núcleo CM85 que lo distinguen de otros MCU actualmente en el mercado. El artículo concluirá presentando demostraciones de inteligencia artificial de visión computacionalmente intensiva que Renesas Electronics, socio líder de ARM en el núcleo Cortex-M85 presento en Embedded World 2023.

¿Qué es Helium-MVE?

La tecnología de Helium MVE es una extensión de microarquitectura para los núcleos CM85 y CM55 en la arquitectura Armv8.1-M. Similar a la tecnología de neón en los dispositivos Cortex-A, el helio es un conjunto de arquitectura de tipo SIMD con la idea de desplazar núcleos DSP separados de nivel inferior a medio y realizar el procesamiento en el chip. En lugar de solo portar neón, helio se desarrolló desde cero para tener en cuenta tamaños de chip más pequeños, es compatible con más tipos de datos y tiene conjuntos de instrucciones que no son compatibles con neón, como ramificaciones de sobrecarga baja y predicación. Helium está diseñado con ocho registros vectoriales mediante la reutilización de registros FPU normales como sus registros vectoriales, cada uno de 128 bits de ancho.

Helium tiene como objetivo mejorar sustancialmente el rendimiento de los kernels AI/ML y DSP comunes al abordar algunos cuellos de botella de rendimiento comunes al agregar una variedad de características que incluyen:

Overlapping pipeline: Helium consta de 8 registros vectoriales, de 128 bits de largo, con cada cuarto llamado «latidos» (ancho de 32 bits). Para permitir una mayor eficiencia de procesamiento, el helio aprovecha el encadenamiento de vectores para ejecutar en paralelo canalizaciones superpuestas de la carga vectorial y el vector MAC, como se muestra en la figura 1. En cada ciclo de reloj, las canalizaciones superpuestas ejecutan MAC en el «latido» previamente cargado mientras cargan el siguiente «latido». «. El Cortex-M85 es una ruta de datos de «doble latido» de 64 bits, capaz de 2 ciclos por cada 128 bits. Este proceso de superposición se conoce como ejecución » beatwise».

beatwise

 

Cada “beat” se puede dividir aún más y procesar diferentes tipos de datos de manera eficiente por ciclo de reloj de la siguiente manera:

  • 2x Q31/int32
  • 4x Q15/int16
  • 8x Q7/int8
  • 2x fp32
  • 4x fp16

Tipos de datos: para permitir que un CM85 se utilice en una amplia gama de aplicaciones, admite una amplia gama de tipos de datos vectoriales de la siguiente manera:

  • Vector entero de 8 bits/punto fijo, que se usa mucho en modelos de aprendizaje automático cuantificados y, por lo general, no está disponible en DSP de nivel bajo a medio.
  • Vector entero de 16 bits/coma fija
  • Vector entero de 32 bits/coma fija
  • El vector de punto flotante de precisión media de 16 bits, utilizado en el preprocesamiento de datos en tiempo real, como aplicaciones de detección, permite el mantenimiento de un alto rango dinámico con la mitad de los requisitos de procesamiento. Esto es exclusivo de los núcleos CM con la arquitectura M8.1.
  • Vector de punto flotante de precisión simple de 32 bits

Helium también admite de forma nativa el procesamiento de valores complejos para números enteros y flotantes, lo que permite el procesamiento eficiente de números complejos, comunes en el procesamiento de señales (por ejemplo, FFT).

Optimización mejorada de bucles/predicción de bifurcaciones: como se mencionó anteriormente, Helium agrega una variedad de instrucciones para acelerar los cálculos de DSP, como la extensión de bifurcaciones de baja sobrecarga que acelera los bucles de control al almacenar en caché la primera y la última instrucción y solo ejecutar el bucle del cuerpo en iteraciones posteriores. “Line predication” es otra extensión útil que admite ejecuciones condicionales y maneja casos extremos, como que la cantidad de lineas vectoriales no es divisible por 4, esas instrucciones brindan una mejora de rendimiento similar a la de un DSP con soporte de bucle de sobrecarga cero [1][3][ 6].

Instrucciones de acceso a la memoria mejoradas: conjuntos de instrucciones agregados, como intercalado y desintercalado, instrucciones de carga y almacenamiento con avances 2,4 que brindan mejoras en el procesamiento de imágenes/DSP para manejar diferentes formatos de datos, como datos de imagen (p. ej., RGB) o datos de audio. Otro conjunto de instrucciones es el modo de direccionamiento de dispersión/recopilación para la generación de direcciones de bits inversos y la emulación del direccionamiento circular que se encuentra en los DSP y es común para aplicaciones de procesamiento de señales como FFT. CM85 también incluye memoria estrechamente acoplada (TCM) para una respuesta ultrarrápida en tiempo real y un bus AXI para aplicaciones de mayor ancho de banda de memoria con cachés para optimizar el rendimiento en aplicaciones más lentas y no deterministas [1][3][4][5] .

Cortex-M85

Aparte de las increíbles características gracias a Helium MVE, como el núcleo Cortex-M de gama más alta, el CM85 eclipsa a todos los demás núcleos con una gran cantidad de características, como se ilustra en la tabla 1.

Cortex-M7 Cortex-M55 Cortex-M85
Architecture Arm v7-M Arm v8.1-M Arm v8.1-M
Security PACBTI
Unprivileged Debug

Extension

Unprivileged Debug

Extension

Stack limit checking Stack limit checking
TrustZone TrustZone
MPU (PMSAv7) MPU (PMSAv8) MPU (PMSAv8)
Pipeline 6-stage superscalar and branch prediction 4-stage (for main integer pipeline) 7-stage scalar pipeline and 9-10 stage vector and floating-point pipeline
Helium (MVE) Not supported Supported Supported
FPU fp32, fp64

FPv5

fp16, fp32, fp64

FPv5

fp16, fp32, fp64

FPv5

MACs per cycle 1 32bx32b 8 8bx8b

4 16bx16b

2 32bx32b

8 8bx8b

4 16bx16b

2 32bx32b

CoreMarks/MHz 5.29 4.4 6.28
DMIPS/MHz 2.31/3.23/6.78 1.69/2.16/5.32 3.13/4.52/8.76

Tabla 1: Comparación entre CM7 vs CM55 vs CM85

El núcleo Cortex-M85 también incluye una nueva y mejorada gama de funciones de seguridad en comparación con otros núcleos Cortex-M, como la autenticación de puntero y la identificación de destino de rama (PABTI), mejoras en la seguridad Arm® TrustZone®, eXecute Never privilegiado (PXN) en MPU y las extensiones de depuración sin privilegios (DUE) facilitan el uso de la certificación  PSA certified level 2, lo que lo hace ideal para aplicaciones donde la seguridad es una preocupación, como en sistemas de control industrial y dispositivos médicos.

Puntos de referencia

Dadas todas las características que se han inlcuido en el CM85, la evidencia empírica, como los puntos de referencia estándar de la industria o los puntos de referencia en una variedad de kernels, pueden consolidar su posición como el núcleo MCU de mayor rendimiento. Por ejemplo, a partir de los valores de CoreMarks y DMIP de la tabla 1, se logra una mejora escalar gracias a las características de las nuevas microarquitecturas, que incluyen un sistema de memoria mejorado, una predicción de bifurcación mejorada y un problema dual optimizado.

Con la integración de la tecnología Helium, como se muestra en la figura 2, el núcleo CM85 es capaz de superar al núcleo CM7 en rendimiento de IA/ML en 4 veces y al CM55 en un 20 % debido a las microarquitecturas adicionales.

aumento del rendimiento cm85

Figura 2: Aumento del rendimiento de CM85 frente a CM7 y CM55 [Fuente: Arm]

De hecho, Helium proporciona un impulso significativo sobre los dispositivos que no son Helium, a nivel granular, MVE puede mejorar aún más el rendimiento de los kernels de ML individuales en comparación con los dispositivos que no son de MVE, como se muestra en la figura 3a, el resultado de procesar una capa completamente conectada da como resultado un importante levantamiento debido al helio MVE. En cuanto al rendimiento de DSP de dispositivos MVE frente a dispositivos que no son MVE en núcleos estándar, como la transformada rápida de Fourier y la respuesta de impulso finito, la figura 3b muestra un aumento del 57 % y el 64 %, respectivamente.

renfimiento de referencia

Figura 3: Rendimiento de referencia para dispositivos MVE frente a dispositivos que no son compatibles con MVE. (a) CMSIS-NN con compilador ARM AC6.15 rendimiento de resultado promedio en una capa completamente conectada (b) CMSIS-FFT&FIR con compilador ARM AC6.16 (rendimiento normalizado) [Fuente de datos: ARM]

Finalmente, con la adición de cientos de nuevos conjuntos de instrucciones en el CM85, incluidos aquellos que mejoran las capacidades de procesamiento de imágenes de los núcleos, la figura 4 muestra un aumento de casi 4 veces sobre el núcleo CM7 para el dispositivo con reconocimiento de helio CM85 en la biblioteca ARM 2D.

rendimiento de referencia arm

Figura 4. Rendimiento de referencia para la biblioteca ARM 2D para visualización integrada profunda que muestra que CM85 tiene mejoras 4x sobre el núcleo CM7. [fuente: BRAZO]

Demostraciones AI en Embedded World 2023

Con la tremenda mejora que logra el núcleo Cortex-M85 sobre los otros núcleos Cortex-M, Renesas electronics, el socio líder de Arm en el núcleo CM85, presento dos casos de uso de IA de visión en colaboración con socios que pueden apuntar a una variedad de verticales.

Una demostración de detección de personas con PlumerAI, que detecta y rastrea a las personas en el marco de la cámara bajo diferentes condiciones ambientales y de iluminación. La inferencia ha mostrado una mejora significativa con respecto a otros núcleos Cortex-M que abre la puerta a casos de uso aún más avanzados que debían realizarse en los núcleos Cortex-A, como el seguimiento de personas.

Otras demostraciones presentadas muestran otros casos de uso que no se podrían lograr con los MCU actuales disponibles en el mercado, ¡así que visite nuestro stand en el mundo integrado!

Conclusión

En resumen, CM85 con Helium puede contribuir a una mejora significativa en el rendimiento de las cargas de trabajo de AI/ML y DSP al mejorar la predicción de bifurcaciones, mejorar los accesos a la memoria, el paralelismo, la adición de nuevas instrucciones DSP, la compatibilidad con nuevos tipos de datos y la compatibilidad nativa con complejos cálculo. El núcleo CM85 también es una potencia en rendimiento escalar y eclipsa al resto de los núcleos Cortex-M, lo que lo convierte en la opción ideal para tareas de procesamiento más complejas.

Como tal, Renesas Electronics se complace en mostrar las demostraciones de IA de visión intensiva en cómputo en el mundo integrado 2023 y da la bienvenida a cualquiera que visite nuestro stand para una demostración y un debate fructífero.