Ferramentas e novas arquiteturas para aceleradores reconfiguráveis em plataformas heterogêneas CPU-FPGA com memória compartilhada

Detalhes bibliográficos
Ano de defesa: 2019
Autor(a) principal: Silva, Lucas Bragança
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
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: https://locus.ufv.br//handle/123456789/27632
Resumo: O uso de arquiteturas reconfiguráveis como aceleradores em sistemas heterogêneos de alto desempenho surgiu como uma opção complementar a outras soluções, como por exemplo os processadores gráficos ou GPUs. Arquiteturas reconfiguráveis como FPGAs possuem como principal vantagem o paralelismo intrínseco de sua estrutura, que pode se adaptar à aplicação para alcançar o máximo desempenho com baixo consumo energético. Porém, faltam ferramentas para popularizar o uso dos FPGAs como aceleradores, reduzir o tempo de projeto, sem exigir dos programadores conhecimentos aprofundados no desenvolvimento de hardware. Nesta dissertação são apresentados três trabalhos que permitem a geração automática de código de aceleradores para sistemas heterogêneos com FPGA, além de propor uma nova arquitetura reconfigurável, que permite a execução no modelo MIMT (Multiple Instruction Multiple Threads) com troca de contexto em um ciclo de relógio. O primeiro trabalho apresenta uma ferramenta capaz de gerar automaticamente todo código de um acelerador para auxiliar na exploração de Redes Reguladoras de Genes, esta aborda- gem obteve um ganho de desempenho de duas ordens de grandeza em comparação com processador de uso geral. O segundo trabalho apresenta um arcabouço para facilitar a implantação de aceleradores em FPGA, deixando para o desenvolvedor apenas a implementação da aplicação, sem a necessidade de codificar os mecanismos de controle de comunicação entre o acelerador e a aplicação executada em software. Por fim, no terceiro trabalho é proposta uma nova arquitetura reconfigurável que permite a execução de múltiplas threads, fazendo o uso de paralelismo temporal e espacial para acelerar aplicações descritas na forma de grafos de fluxo de dados.