Eficiência energética e desempenho para sistemas embarcados e de HPC com CGRAs customizados
Os domínios de sistemas embebidos (SE) e de computação de alto desempenho (HPC) sao tipicamente vistos como distintos. Contudo, alguns dos seus requisitos encontram-se em convergência: um SE moderno executa algoritmos complexos que exigem grande capacidade de computação; a escala continuamente maior de sistemas HPC introduz o requisito de maior eficiência energética. Ambos os domínios são de uma importância crescente: SE tem efeito tangível na experiência humana, em gestão de recursos, e capacidades industriais; sistemas HPC modernos são usados para processar informação em massa, e suportam serviços inovadores tanto para empresas como utilizadores. Os SE têm adoptado arquiteturas heterogéneas, frequentemente baseadas em aceleradores reconfiguráveis tais como FPGAs ou CGRAs (Coarse-Grained Reconfigurable Arrays), de modo a combinar especialização de hardware e adaptabilidade em runtime. Uma tendência semelhante em direcção à heterogeneidade verifica-se em sistemas HPC, que recorrem a GPUs usados como aceleradores. No contexto desta solução, vários desafios surgem relativos a sistemas auto-adaptáveis, e gestão de recursos sensível a consumo energético, espelhando os desafios existentes nos SE heterogéneos baseados em aceleradores reconfiguráveis. Inúmeras aplicações HPC e de SE contém um pequeno número de núcleos computacionais regulares que contabilizam a maior parte do tempo de execução e consumo energético. A adição manual de um acelerador reconfigurável requer tempo e experiência de desenho de hardware significativos. Evitar estas exigências é vital para não comprometer produtividade. Portanto, este projecto foca-se em utilizar apenas informação do binário da aplicação e do seu comportamento em execução. O objectivo é desenvolver métodos eficientes para detectar, em tempo de execução, núcleos de computação exigentes; estes serão então mapeados em aceleradores especializados de maneira automática e transparente. Utilizar CGRAs para este efeito reduz a utilização de recursos e consumo energético. O projecto visa aplicar esta metodologia a SE e a sistemas HPC. As contribuições esperadas incluem melhorias significativas de performance em comparação a execução por software (pelo menos de 3x em média), mantendo aproximadamente o mesmo consumo energético. É esperado ser possível reduzir o consumo em pelo menos 30% através de redução da frequência do relógio do CPU, igualando ao mesmo tempo a performance de um sistema sem aceleração.