Uma heurística polinomial para escalonamento de loops em arquiteturas reconfiguráveis de grão grosso

Detalhes bibliográficos
Ano de defesa: 2013
Autor(a) principal: Lopes, Vinícius Duarte
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Viçosa
BR
Metodologias e técnicas da Computação; Sistemas de Computação
Mestrado em Ciência da Computação
UFV
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://locus.ufv.br/handle/123456789/2654
Resumo: Atualmente as arquiteturas reconfiguráveis são atrativas em desempenho e baixo consumo de energia para aplicações com laços de computação intensiva. FPGAs são arquiteturas de grão fino que oferecem possibilidade de aceleração para essas aplicações, porém, o processo de mapeamento geralmente é demorado e complexo. Como alternativa, surgem as arquiteturas reconfiguráveis de grão grosso, que provêem menor flexibilidade que os FPGAs, porém menor complexidade de mapeamento. O objetivo deste trabalho é o mapeamento em tempo de execução do grafo de fluxo de dados, que representa um laço, em uma arquitetura reconfigurável grão grosso. O problema é NP-Completo e as diversas heurísticas encontradas na literatura não são viáveis para uma implementação dinâmica. Nesta dissertação propomos uma nova heurística capaz de realizar o mapeamento em tempo de execução da aplicação. Enquanto soluções anteriores necessitam de segundos para mapear aplicações, resultados experimentais mostraram que a solução proposta requer em média apenas 390 microssegundos para gerar mapeamentos próximos do ótimo na arquitetura utilizada, para 15 benchmarks extraídos de aplicações multimídia. Assim, a solução apresentada pode ser implementada em um ambiente de compilação Just-In-Time, podendo ser utilizada em contextos dinâmicos onde várias aplicações compartilham a arquitetura reconfigurável com possibilidade de mudança na composição dos elementos de processamento ou em cenários com presença de falhas no hardware. Além disso, apresentamos um modelo de implementação da heurística em hardware, com potencial redução do tempo de mapeamento em até 90% em relação à execução em software em um ambiente Just-In-Time.