Simple Science

Ciencia de vanguardia explicada de forma sencilla

# Informática# Arquitectura de hardware

Optimizando el consumo de energía en dispositivos TinyML

Nuevos métodos mejoran la eficiencia energética de las CNN en microcontroladores STM32.

― 7 minilectura


Eficiencia Energética enEficiencia Energética enTinyMLmicrocontroladores.de energía para CNNs basadas enNuevas estrategias reducen el consumo
Tabla de contenidos

En los últimos años, la inteligencia artificial se ha vuelto más común en los dispositivos del día a día. Muchos gadgets, como sensores y electrodomésticos inteligentes, utilizan aprendizaje automático, un tipo de IA que les ayuda a tomar decisiones basadas en datos. Esta tendencia ha impulsado el desarrollo de sistemas pequeños y eficientes, conocidos como TinyML, que pueden realizar tareas de aprendizaje automático. Este artículo se centra en un tipo específico de procesador pequeño llamado microcontroladores STM32, que se utilizan a menudo en estos dispositivos.

El Crecimiento del Aprendizaje Automático en el Edge

Las aplicaciones de aprendizaje automático se están usando cada vez más directamente en los dispositivos, en lugar de depender de servidores remotos para manejar el procesamiento. Esto se conoce como Edge AI. Con Edge AI, se ejecutan modelos complejos en dispositivos que a menudo tienen recursos limitados, como microcontroladores pequeños. Esto permite una toma de decisiones más rápida y reduce la necesidad de una conexión constante a internet.

TinyML es un componente importante de esta tendencia, permitiendo un aprendizaje automático eficiente en dispositivos muy pequeños. Esto es especialmente relevante ya que más dispositivos son alimentados por baterías y necesitan conservar energía mientras siguen ofreciendo funciones inteligentes.

Desafíos en la Implementación de CNNs en MCUs

Implementar redes neuronales convolucionales (CNNs) en microcontroladores como STM32 presenta dos desafíos principales. Primero, estos dispositivos suelen tener memoria limitada, lo que dificulta almacenar y ejecutar modelos complejos. A medida que las CNNs se vuelven más profundas y complejas para mejorar la precisión, requieren más recursos.

Segundo, muchos de estos microcontroladores se utilizan en dispositivos a batería, donde la eficiencia energética es crucial. Ejecutar modelos que consumen mucha energía puede agotar rápidamente las baterías, lo cual es un gran problema para dispositivos que deben durar.

Soluciones Actuales y Sus Limitaciones

Existen varios marcos para ayudar a ejecutar modelos de CNN pequeños en microcontroladores. Estas soluciones se centran en optimizar la estructura de los modelos para hacerlos más pequeños y eficientes. Ejemplos de estas técnicas son reducir la precisión de los cálculos, disminuir los pesos del modelo y elegir la mejor arquitectura para el rendimiento. Sin embargo, la mayoría de estas soluciones se centran principalmente en los modelos en sí y no tienen en cuenta la optimización del tiempo de ejecución del sistema en general, que también es importante.

Escalado Dinámico de Voltaje y Frecuencia (DVFs)

Una forma efectiva de controlar el consumo de energía es a través del escalado dinámico de voltaje y frecuencia (DVFS). DVFS permite que los microcontroladores ajusten su frecuencia de operación y voltaje según las necesidades de procesamiento en un momento dado. Esto ayuda a equilibrar el rendimiento y el uso de energía de manera efectiva. Sin embargo, implementar DVFS puede ser complicado debido a posibles retrasos al cambiar las frecuencias y al aumento del consumo de energía durante esas transiciones.

Metodología Propuesta para la Optimización Energética

Este artículo presenta un enfoque claro para optimizar el consumo de energía de la inferencia de CNN, específicamente para microcontroladores de bajo rendimiento. El método propuesto se centra en tres pasos principales:

  1. Desacoplar el Acceso a la Memoria de la Ejecución del CPU: El primer paso implica reestructurar el código para separar cómo se accede a la memoria de cómo el CPU procesa la información. Al organizar el código de esta manera, se puede controlar de forma más efectiva cuándo se accede a la memoria y cuándo ocurre el procesamiento. Esta separación permite aplicar diferentes frecuencias operativas, reduciendo los retrasos al cambiar.

  2. Co-explorar DAE y Esquemas de Clocking: El siguiente paso analiza cómo la separación del acceso a la memoria y la configuración del reloj interactúan. Al observar el rendimiento y el consumo de energía a un nivel detallado, se pueden identificar configuraciones óptimas que funcionan mejor juntas. Esto implica probar varias configuraciones para medir cómo se puede equilibrar la energía y el rendimiento.

  3. Optimizar para la Calidad del Servicio (Qos): En el paso final, la meta es encontrar las mejores frecuencias para cada capa en la CNN para minimizar el uso de energía mientras se asegura que se cumplan ciertas restricciones de tiempo. Esto garantiza que el modelo funcione de manera eficiente en condiciones predefinidas.

La Importancia de Desacoplar el Acceso a la Memoria

Al separar el acceso a la memoria del procesamiento, permitimos un mejor control sobre cómo se programan y ejecutan las tareas. Este método conduce a la creación de dos tipos de segmentos de código: los que dependen de la memoria y los que dependen del cómputo. Los segmentos dependientes de la memoria se ocupan principalmente de recuperar datos, mientras que los segmentos dependientes del cómputo se enfocan en procesar esos datos una vez que se han recuperado.

Equilibrar estos segmentos es crucial para lograr eficiencia. Por ejemplo, ciertas partes de la red neuronal pueden requerir cálculos intensivos, mientras que otras pueden necesitar simplemente datos. Al afinar cómo se ejecutan estos segmentos, se puede mejorar significativamente la eficiencia energética.

Resultados y Evaluación del Rendimiento

Para validar el enfoque propuesto, se llevaron a cabo experimentos usando tres modelos de CNN bien conocidos. Las pruebas se realizaron en una placa representativa de microcontrolador STM32. Las observaciones mostraron un ahorro de energía significativo en comparación con métodos existentes, alcanzando hasta un 25.2% menos de consumo de energía.

Esto se logra equilibrando la frecuencia operativa de cada capa según sus requisitos específicos. A medida que ciertas capas requieren más procesamiento, se puede aumentar la frecuencia, mientras que las capas que demandan menos pueden operar a frecuencias más bajas, ahorrando energía.

Análisis del Escalado de Frecuencia

Durante las pruebas, se encontró que la frecuencia operativa podía variar considerablemente dependiendo del tipo de capa que se procesa. Las convoluciones puntuales a menudo se ejecutaban a una frecuencia más alta debido a sus mayores demandas computacionales. En contraste, las convoluciones de profundidad, que son menos intensivas, podían funcionar bien a frecuencias más bajas sin perder un rendimiento significativo.

Esta flexibilidad permitió una amplia gama de oportunidades de ahorro de energía dentro de la ejecución del modelo. Ajustar la frecuencia según el tipo de capa y sus necesidades de procesamiento permitió la optimización sin comprometer la integridad de la CNN.

Conclusión

Este método propuesto para optimizar la inferencia de CNN en microcontroladores STM32 destaca el potencial de un ahorro de energía significativo al desacoplar el acceso a la memoria y usar escalado dinámico de voltaje y frecuencia. A medida que la demanda de dispositivos inteligentes sigue creciendo, emplear estas técnicas puede asegurar que funcionen de manera eficiente sin sacrificar rendimiento.

Al centrarse tanto en las capacidades del microcontrolador como en la estructura de las CNN, investigadores y desarrolladores pueden crear soluciones que harían que las aplicaciones de tinyML sean más viables y prácticas para el uso diario.

A medida que este campo evoluciona, los esfuerzos continuos para optimizar el procesamiento y minimizar el consumo de energía serán cruciales para el futuro de la tecnología inteligente en nuestras vidas. La integración de metodologías efectivas como la descrita aquí demuestra un camino prometedor hacia adelante en la búsqueda de aplicaciones de aprendizaje automático eficientes en dispositivos pequeños.

Fuente original

Título: Decoupled Access-Execute enabled DVFS for tinyML deployments on STM32 microcontrollers

Resumen: Over the last years the rapid growth Machine Learning (ML) inference applications deployed on the Edge is rapidly increasing. Recent Internet of Things (IoT) devices and microcontrollers (MCUs), become more and more mainstream in everyday activities. In this work we focus on the family of STM32 MCUs. We propose a novel methodology for CNN deployment on the STM32 family, focusing on power optimization through effective clocking exploration and configuration and decoupled access-execute convolution kernel execution. Our approach is enhanced with optimization of the power consumption through Dynamic Voltage and Frequency Scaling (DVFS) under various latency constraints, composing an NP-complete optimization problem. We compare our approach against the state-of-the-art TinyEngine inference engine, as well as TinyEngine coupled with power-saving modes of the STM32 MCUs, indicating that we can achieve up to 25.2% less energy consumption for varying QoS levels.

Autores: Elisavet Lydia Alvanaki, Manolis Katsaragakis, Dimosthenis Masouros, Sotirios Xydis, Dimitrios Soudris

Última actualización: 2024-07-04 00:00:00

Idioma: English

Fuente URL: https://arxiv.org/abs/2407.03711

Fuente PDF: https://arxiv.org/pdf/2407.03711

Licencia: https://creativecommons.org/licenses/by/4.0/

Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.

Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.

Más de autores

Artículos similares