Optimizing energy consumption of multicore real-time embedded systems using machine learning

Detalhes bibliográficos
Autor(a) principal: Hoffmann, José Luis Conradi
Data de Publicação: 2020
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Institucional da UFSC
Texto Completo: https://repositorio.ufsc.br/handle/123456789/219508
Resumo: Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2020.
id UFSC_4222940d87fbb63256b6fe0a192c2452
oai_identifier_str oai:repositorio.ufsc.br:123456789/219508
network_acronym_str UFSC
network_name_str Repositório Institucional da UFSC
repository_id_str 2373
spelling Optimizing energy consumption of multicore real-time embedded systems using machine learningComputaçãoSistemas embarcados (Computadores)Sistemas de tempo-realAprendizado do computadorDissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2020.Os processadores multicore modernos devem combinar uma grande variedade de recursos arquitetônicos para lidar com as demandas crescentes impostas pelos aplicativos, muitas vezes apresentando núcleos heterogêneos, unidades SIMD e aceleradores específicos do aplicativo, todos interconectados pela tecnologia Network-on-Chip (NoC). Essa extrema variabilidade geralmente requer algum nível de autoadaptação para suprir o desempenho esperado de cenários em tempo real enquanto gerencia o consumo de energia para se ajustar às restrições impostas pelos ambientes embarcados. Desta forma, este trabalho combina um monitoramento não intrusivo cuidadoso e um otimizador de energia não intrusivo apoiado por técnicas de aprendizado de máquina para permitir uma atuação segura, aprendendo as demandas do sistema usando os próprios dados que esses sistemas produzem enquanto operam. O monitoramento proposto abstrai os sensores e atuadores disponíveis em tais plataformas por meio de uma API enxuta e independente de arquitetura. A imple- mentação é focada na não intrusão, com um overhead medido de no máximo 0.0718% e jitter adicionado máximo inferior a 40µs. O design de monitoramento não intrusivo é então usado para explorar o impacto do comportamento arquitetural sobre os aspectos de desempenho em uma plataforma multicore, permitindo que as técnicas de aprendizado de máquina criem consciência das demandas de desempenho atuais e do impacto do regime Dynamic Voltage-Frequency Scaling em tarefas críticas, orientando assim o votação e atuação do otimizador de energia. Além disso, para permitir a adaptação à variabilidade do sistema, o otimizador de energia engloba recursos de Aprendizado Online, implementado por meio de um design de uma Artificial Neural Network. O modelo ANN proposto é apoiado pela seleção de features, resultando nas variáveis mais relevantes para descrever a contenção de recursos compartilhados na arquitetura multicore selecionada. As variáveis são usadas em tempo de execução para produzir um trace de desempenho que engloba informações suficientes para o modelo ANN prever o impacto de uma mudança de frequência no desempenho das tarefas. Uma heurística de migração que abrange um vetor de atividade ponderada é combinada com o modelo ANN para ajustar dinamicamente as frequências e também para acionar migrações de tarefas entre os núcleos, permitindo uma otimização adicional resolvendo contenções de recursos e balanceando a carga entre os núcleos. A solução proposta alcançou economia de energia média de 24,97% quando comparada com a abordagem run-to-halt, e sem comprometer a criticidade de nenhuma tarefa. O overhead incorrido em termos de tempo de execução foi de 0.1791% em média. Cada previsão adiciona 15.3585 µs em média e cada ciclo de retreinamento disparado nos ajustes de frequência nunca foi maior que 100 µs.Abstract: Modern multicore processors must combine a large variety of architectural features to cope with the growing demands imposed by applications, often featuring heterogeneous cores, SIMD units, and application-specific accelerators, all interconnected by Network-on-Chip (NoC) technology. Such extreme variability usually requires some level of self-adaptation to attain the expected performance of real-time scenarios while managing energy consumption to fit with the constraints imposed by Embedded Environments. In this way, this work combines a careful Non-intrusive Monitoring and a Non-Intrusive energy optimizer design supported by Machine Learning techniques to enable safe actuation by learning the system demands using the data such systems produce as they operate. The Monitoring design proposed abstracts the available sensors and actuators in such platforms through a lean, architecture-independent API. The implementation focuses on non-intrusiveness, with a measured overhead of at most 0.0718% and maximum added jitter of less than 40µs. The Non-intrusive Monitoring design is then used to explore the architectural behavior impact over performance aspects in a multicore platform, enabling Machine Learning techniques to build awareness of the current performance demands and the impact of the Dynamic Voltage-Frequency Scaling regimen on critical tasks, thus, guiding the energy optimizer, voting and actuation. To enable adaptation to the system variability, the energy optimizer encompasses Online Learning capabilities, implemented through an Artificial Neural Network design. The proposed ANN model is supported by feature selection, which provides the most relevant variables to describe shared resource contention in the selected multicore architecture. They are used at runtime to produce a performance trace that encompasses sufficient information for the ANN model to predict the impact of a frequency change on the performance of tasks. A migration heuristic encompassing a weighted activity vector is combined with the ANN model to dynamically adjust frequencies and also to trigger task migrations among cores, enabling further optimization by solving resource contentions and balancing the load among cores. The proposed solution achieved energy-savings of 24.97% on average when compared to the run-to-halt approach, and it did it without compromising the criticality of any single task. The overhead incurred in terms of the execution time was 0.1791% on average. Each prediction added 15.3585µs on average, and each retraining cycle triggered at frequency adjustments was never larger than 100µs.Fröhlich, Antonio Augusto MedeirosUniversidade Federal de Santa CatarinaHoffmann, José Luis Conradi2021-01-14T18:11:16Z2021-01-14T18:11:16Z2020info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesis129 p.| il., gráfs.application/pdf370992https://repositorio.ufsc.br/handle/123456789/219508engreponame:Repositório Institucional da UFSCinstname:Universidade Federal de Santa Catarina (UFSC)instacron:UFSCinfo:eu-repo/semantics/openAccess2021-01-14T18:11:16Zoai:repositorio.ufsc.br:123456789/219508Repositório InstitucionalPUBhttp://150.162.242.35/oai/requestopendoar:23732021-01-14T18:11:16Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)false
dc.title.none.fl_str_mv Optimizing energy consumption of multicore real-time embedded systems using machine learning
title Optimizing energy consumption of multicore real-time embedded systems using machine learning
spellingShingle Optimizing energy consumption of multicore real-time embedded systems using machine learning
Hoffmann, José Luis Conradi
Computação
Sistemas embarcados (Computadores)
Sistemas de tempo-real
Aprendizado do computador
title_short Optimizing energy consumption of multicore real-time embedded systems using machine learning
title_full Optimizing energy consumption of multicore real-time embedded systems using machine learning
title_fullStr Optimizing energy consumption of multicore real-time embedded systems using machine learning
title_full_unstemmed Optimizing energy consumption of multicore real-time embedded systems using machine learning
title_sort Optimizing energy consumption of multicore real-time embedded systems using machine learning
author Hoffmann, José Luis Conradi
author_facet Hoffmann, José Luis Conradi
author_role author
dc.contributor.none.fl_str_mv Fröhlich, Antonio Augusto Medeiros
Universidade Federal de Santa Catarina
dc.contributor.author.fl_str_mv Hoffmann, José Luis Conradi
dc.subject.por.fl_str_mv Computação
Sistemas embarcados (Computadores)
Sistemas de tempo-real
Aprendizado do computador
topic Computação
Sistemas embarcados (Computadores)
Sistemas de tempo-real
Aprendizado do computador
description Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2020.
publishDate 2020
dc.date.none.fl_str_mv 2020
2021-01-14T18:11:16Z
2021-01-14T18:11:16Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv 370992
https://repositorio.ufsc.br/handle/123456789/219508
identifier_str_mv 370992
url https://repositorio.ufsc.br/handle/123456789/219508
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 129 p.| il., gráfs.
application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSC
instname:Universidade Federal de Santa Catarina (UFSC)
instacron:UFSC
instname_str Universidade Federal de Santa Catarina (UFSC)
instacron_str UFSC
institution UFSC
reponame_str Repositório Institucional da UFSC
collection Repositório Institucional da UFSC
repository.name.fl_str_mv Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)
repository.mail.fl_str_mv
_version_ 1808652148540440576