Una forma más sencilla de crear potentes aplicaciones de IA periférica
Diseñar un dispositivo simple basado en sensores para el Internet de las cosas (IoT) no es el reto más difícil que debe enfrentar, pero construir un dispositivo conectado capaz de manejar el aprendizaje automático (ML) en el borde es otra historia. Una familia de procesadores, una placa de desarrollo y el software asociado de NXP Semiconductors están diseñados para superar los desafíos clave en funcionalidad, rendimiento y desarrollo, lo que permite una implementación más rápida de sofisticadas capacidades de inteligencia artificial (IA) en aplicaciones industriales y de IoT.
Los diseñadores ya han comenzado a aprovechar las soluciones de IA periféricas capaces de realizar inferencias de ML en dispositivos de bajo consumo sin depender de los recursos basados en la nube. Funciones como la detección de palabras de activación, el análisis de patrones de datos de sensores y la detección básica de objetos normalmente se pueden controlar mediante procesadores de bajo consumo que ejecutan modelos de ML creados con herramientas y marcos de optimización de modelos. Los problemas surgen cuando se intenta forzar los recursos del procesador para abordar problemas más complejos, especialmente aquellos que requieren una respuesta en tiempo real o casi en tiempo real.
Cómo un procesador multinúcleo puede acelerar significativamente la inferencia de ML
NXP Semiconductors aborda los desafíos de funcionalidad y rendimiento de estos diseños emergentes de IA periférica en tiempo real con su familia de procesadores de aplicaciones i.MX 93 (Figura 1).
Figura 1: Los procesadores de aplicaciones i.MX 93 proporcionan la base para los diseños de IA periférica con su combinación de recursos de procesamiento, sistema de seguridad, memoria y un conjunto completo de relojes, temporizadores, opciones de conectividad e interfaces. (Fuente de la imagen: NXP Semiconductors)
Estos dispositivos integran un amplio conjunto de capacidades, que incluyen multimedia, memoria, interfaces y opciones de conectividad, y cuentan con una atractiva combinación de recursos de procesamiento:
- Hasta dos núcleos de procesador de aplicaciones Arm Cortex-A55 de alto rendimiento para el procesamiento de aplicaciones basado en Linux
- Una plataforma Arm Cortex-M33 de ultrabajo consumo para el procesamiento de control en tiempo real de baja latencia
- Una unidad de procesamiento neuronal (NPU) microNPU Arm Ethos-U65 para una ejecución eficiente de inferencias de ML
- El enclave seguro (ESE) EdgeLock integrado de NXP, que proporciona una raíz de confianza para el arranque seguro y la gestión de claves, funciones criptográficas sobre la marcha y otras capacidades necesarias para proteger las aplicaciones perimetrales.
Con las capacidades de estos procesadores, se pueden dividir grandes aplicaciones de IA periféricas en partes manejables: en lugar de robar ciclos del código de la aplicación que se ejecuta en los núcleos Cortex-A55, la NPU descarga la ejecución de algoritmos de redes neuronales de computación intensiva. Por separado, el Cortex-M33 sigue dedicado a tareas sensibles a la latencia, como la adquisición de datos de sensores o el control de procesos, mientras que el ESE mantiene la seguridad del sistema, el código de software y los datos críticos. Como verá a continuación, la capacidad de la NPU para descargar la inferencia de ML de los núcleos Cortex-A55 es un habilitador clave para las aplicaciones de IA periféricas que requieren una capacidad de respuesta casi en tiempo real.
Cómo una placa de hardware y software aceleran el desarrollo de aplicaciones
Aunque la funcionalidad y el rendimiento del procesador son factores clave, el desarrollo eficaz de aplicaciones de IA periférica depende de la capacidad de ponerse al día rápidamente con las capacidades del procesador y crear rápidamente software eficaz. La combinación de la placa de desarrollo FRDM-IMX93 de NXP (Figura 2) y los recursos de desarrollo de software asociados le proporciona todo lo que necesita para empezar a crear aplicaciones.
Figura 2: La placa de desarrollo FRDM-IMX93 integra un procesador de aplicaciones i.MX 93 y múltiples chips de soporte para proporcionar un sistema completo para el desarrollo. (Fuente de la imagen: NXP Semiconductors)
La placa FRDM-IMX93 está diseñada para simplificar el desarrollo de aplicaciones que utilizan la familia de procesadores i.MX 93. Con un tamaño de solo 105 × 65 milímetros (mm), la placa incluye dos gigabytes (Gbytes) de memoria de acceso aleatorio dinámico (DRAM) de doble velocidad de datos 4X (LPDDR4X) de baja potencia, una tarjeta multimedia integrada de 32 Gbytes 5.1 (eMMC5.1), un circuito integrado de administración de energía (PMIC), un módulo transceptor de radio que proporciona Wi-Fi 6, Bluetooth 5.4 y una red personal inalámbrica 802.15.4, y otros chips de soporte necesarios. Los encabezados, los conectores y la interfaz de depuración de la placa le permiten agregar fácilmente placas de expansión para depurar su sistema.
La placa ofrece varias opciones de configuración, pero está lista para usar en su modo predeterminado. Después de conectar una pantalla y el mouse y proporcionar alimentación a la placa mediante el cable USB incluido, la placa arranca desde la eMMC, que viene pre-flasheada con una imagen de demostración binaria de NXP Linux.
Las aplicaciones prediseñadas aceleran la implementación de la IA perimetral
La verdadera fuerza de la placa de desarrollo FRDM-IMX 93 reside en el software que la acompaña y en las herramientas asociadas. Incluido en la imagen de demostración predeterminada, el paquete de software GoPoint for i.MX Applications Processors de de NXP proporciona un conjunto de aplicaciones de ejemplo a las que se puede acceder a través de la interfaz gráfica de usuario (GUI) GoPoint. Al iniciar una aplicación, GoPoint le guía a través de los pasos de configuración necesarios, como especificar una fuente de video de la cámara.
Quizás igual de interesante para muchos de nosotros, el repositorio de aplicaciones de ejemplo de NXP contiene el código fuente completo de Python para cada aplicación de GoPoint. Además, la documentación de cada aplicación incluye una descripción de la arquitectura de software, los modelos de ML utilizados y la configuración de lanzamiento. Por ejemplo, la documentación de la aplicación de aprendizaje automático de bajo consumo GoPoint i.MX 93 describe el flujo de ejecución entre los núcleos Cortex-A55 y Cortex-M33, mostrando cómo el Cortex-M33 realiza el trabajo pesado de la detección de palabras de activación, hasta que finalmente se activa Linux en el Cortex-A33 para notificar al usuario.
La aplicación del sistema de monitoreo de controladores (DMS) GoPoint de NXP demuestra otro concepto importante: cómo entrelazar la ejecución de múltiples modelos para detectar varios estados diferentes en una aplicación más compleja. Después de invocar esta aplicación, seleccione el origen de la cámara y el procesador de inferencia (procesador de aplicaciones o NPU, por ejemplo) y, a continuación, ejecútelo. A medida que se ejecuta, se muestra el estado actual del sujeto de la cámara (conductor), indicando si el sujeto está distraído, somnoliento, bostezando, fumando o usando un teléfono celular (Figura 3).
Figura 3: Al ejecutarse en un procesador de aplicaciones i.MX 93, una aplicación GoPoint de ejemplo realiza inferencias en varios modelos de ML para detectar diferentes estados de controladores con solo milisegundos de latencia. (Fuente de la imagen: NXP Semiconductors)
Una información convincente en el repositorio de cada aplicación son los datos de rendimiento, que muestran la capacidad de la NPU para habilitar aplicaciones de IA periféricas más efectivas. En la aplicación DMS, por ejemplo, NXP descubrió que la ejecución de la inferencia de detección de humo/llamadas basada en CPU con un subproceso tarda 407,963 milisegundos (ms). La ejecución con dos subprocesos reduce el tiempo de inferencia a 303,159 ms, pero la verdadera recompensa radica en el empleo de la NPU. La inferencia en la NPU reduce el tiempo a solo 23,008 ms.
Conclusión
La capacidad de un procesador de aplicaciones i.MX 93 de bajo consumo para realizar tareas de inferencia sustanciales con una latencia casi en tiempo real abre numerosas posibilidades para las soluciones de IA periféricas en aplicaciones industriales y de IoT. Mediante el uso de una placa de desarrollo y un software asociados, se pueden crear esas aplicaciones de forma rápida y eficaz.
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum

