Optimizing energy consumption of multicore real-time embedded systems using machine learning
Autor(a) principal: | |
---|---|
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 |