Simple Science

Ciência de ponta explicada de forma simples

# Informática# Arquitetura de Hardware

Otimizando o Consumo de Energia em Dispositivos TinyML

Novos métodos melhoram a eficiência energética para CNNs em microcontroladores STM32.

― 7 min ler


Eficiência Energética emEficiência Energética emTinyMLmicrocontroladores.energia para CNNs baseadas emNovas estratégias reduzem o uso de
Índice

Nos últimos anos, a inteligência artificial tem aparecido cada vez mais em dispositivos do dia a dia. Muitos gadgets, como sensores e eletrodomésticos inteligentes, usam aprendizado de máquina, um tipo de IA que ajuda a tomar decisões com base em dados. Essa tendência incentivou o desenvolvimento de sistemas pequenos e eficientes, conhecidos como TinyML, que podem realizar tarefas de aprendizado de máquina. Este artigo se concentra em um tipo específico de processador pequeno chamado microcontroladores STM32, que são frequentemente usados nesses dispositivos.

O Crescimento do Aprendizado de Máquina na Borda

Aplicações de aprendizado de máquina estão sendo cada vez mais usadas diretamente nos dispositivos, em vez de depender de servidores remotos para processamento. Isso é chamado de Edge AI. Com Edge AI, modelos complexos são executados em dispositivos que muitas vezes têm recursos limitados, como microcontroladores pequenos. Isso permite uma tomada de decisão mais rápida e diminui a necessidade de estar sempre conectado à internet.

TinyML é uma parte importante dessa tendência, permitindo um aprendizado de máquina eficiente em dispositivos muito pequenos. Isso é especialmente relevante, já que mais dispositivos são movidos a bateria e precisam economizar energia, mas ainda oferecer funções inteligentes.

Desafios na Implementação de CNNs em MCUs

Implementar redes neurais convolucionais (CNNs) em microcontroladores como os STM32 traz dois desafios principais. Primeiro, esses dispositivos geralmente têm memória limitada, dificultando o armazenamento e a execução de modelos complexos. À medida que as CNNs ficam mais profundas e complexas para melhorar a precisão, elas precisam de mais recursos.

Em segundo lugar, muitos desses microcontroladores são usados em dispositivos movidos a bateria, onde a eficiência energética é crucial. Executar modelos que consomem muita energia pode rapidamente descarregar as baterias, o que é uma grande preocupação para dispositivos que precisam durar.

Soluções Atuais e Suas Limitações

Existem várias ferramentas para ajudar a rodar modelos pequenos de CNN em microcontroladores. Essas soluções se concentram em otimizar a estrutura dos modelos para torná-los menores e mais eficientes. Exemplos dessas técnicas incluem reduzir a precisão dos cálculos, diminuir os pesos do modelo e escolher a melhor arquitetura para o desempenho. No entanto, a maioria dessas soluções foca principalmente nos modelos em si e não considera a otimização do tempo de execução do sistema como um todo, que também é importante.

Escalonamento Dinâmico de Tensão e Frequência (DVFs)

Uma maneira eficaz de controlar o consumo de energia é através do escalonamento dinâmico de tensão e frequência (DVFS). O DVFS permite que microcontroladores ajustem sua frequência de operação e tensão com base nas necessidades de processamento em um dado momento. Isso ajuda a equilibrar desempenho e uso de energia de forma eficaz. No entanto, colocar o DVFS em prática pode ser desafiador devido a possíveis atrasos ao mudar de frequência e ao aumento do consumo de energia durante essas transições.

Metodologia Proposta para Otimização de Energia

Este artigo apresenta uma abordagem clara para otimizar o consumo de energia da inferência de CNNs especificamente para microcontroladores de baixo custo. O método proposto se concentra em três etapas principais:

  1. Desacoplar Acesso à Memória da Execução da CPU: O primeiro passo envolve reestruturar o código para separar como a memória é acessada do processamento que a CPU faz das informações. Organizando o código dessa maneira, é possível controlar melhor quando a memória é acessada e quando o processamento acontece. Essa separação permite aplicar diferentes frequências de operação, reduzindo os atrasos ao trocar.

  2. Co-explorar DAE e Esquemas de Clock: O próximo passo analisa como a separação do acesso à memória e a configuração do clock interagem. Observando o desempenho e o consumo de energia em um nível detalhado, é possível identificar configurações ótimas que funcionam melhor juntas. Isso envolve testar várias configurações para medir como energia e desempenho podem ser equilibrados.

  3. Otimizar para Qualidade de Serviço (Qos): Na etapa final, o objetivo é encontrar as melhores frequências para cada camada na CNN para minimizar o uso de energia enquanto garante que restrições de tempo específicas sejam atendidas. Isso assegura que o modelo funcione de forma eficiente sob condições pré-definidas.

A Importância de Desacoplar o Acesso à Memória

Ao separar o acesso à memória do processamento, permitimos um controle melhor sobre como as tarefas são agendadas e executadas. Esse método leva à criação de dois tipos de segmentos de código: limitados por memória e limitados por computação. Segmentos limitados por memória lidam principalmente com a busca de dados, enquanto os limitados por computação se concentram em processar esses dados depois de serem recuperados.

Equilibrar esses segmentos é crucial para alcançar eficiência. Por exemplo, certas partes da rede neural podem exigir computação intensa, enquanto outras podem simplesmente precisar de dados. Ao ajustar como esses segmentos são executados, a eficiência energética pode ser muito melhorada.

Resultados e Avaliação de Desempenho

Para validar a abordagem proposta, experimentos foram realizados usando três modelos de CNN bem conhecidos. Os testes foram feitos em uma placa representativa de microcontrolador STM32. As observações mostraram economias significativas de energia em comparação com métodos existentes, chegando a até 25,2% menos consumo de energia.

Isso é alcançado balanceando a frequência operacional de cada camada com base em suas necessidades específicas. À medida que certas camadas requerem mais processamento, a frequência pode ser aumentada, enquanto camadas menos exigentes podem operar em frequências mais baixas, economizando energia.

Análise de Escalonamento de Frequência

Durante os testes, foi constatado que a frequência operacional poderia variar bastante dependendo do tipo de camada que estava sendo processada. Convoluções pontuais geralmente rodavam em uma frequência mais alta devido às suas maiores exigências computacionais. Em contraste, convoluções de profundidade, que são menos intensivas, podiam funcionar bem em frequências mais baixas sem perder desempenho significativo.

Essa flexibilidade permitiu uma ampla gama de oportunidades para economia de energia dentro da execução do modelo. Ajustar a frequência com base no tipo de camada e suas necessidades de processamento permitiu otimização sem comprometer a integridade da CNN.

Conclusão

Esse método proposto para otimizar a inferência de CNNs em microcontroladores STM32 destaca o potencial de economias significativas de energia ao desacoplar o acesso à memória e usar escalonamento dinâmico de tensão e frequência. À medida que a demanda por dispositivos inteligentes continua crescendo, empregar essas técnicas pode garantir que eles funcionem de forma eficiente sem sacrificar o desempenho.

Ao focar nas capacidades do microcontrolador e na estrutura das CNNs, pesquisadores e desenvolvedores podem criar soluções que tornem as aplicações tinyML mais viáveis e práticas para o uso cotidiano.

Conforme esse campo evolui, esforços contínuos para otimizar o processamento e minimizar o consumo de energia serão cruciais para o futuro da tecnologia inteligente em nossas vidas. A integração de metodologias eficazes como a que foi descrita aqui demonstra um caminho promissor para frente na busca por aplicações de aprendizado de máquina eficientes em dispositivos pequenos.

Fonte original

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

Resumo: 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 atualização: 2024-07-04 00:00:00

Idioma: English

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

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

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes