Bioeconomia: Diversidade e Riqueza para o Desenvolvimento Sustentável

21 a 25 de outubro de 2019

Trabalho 12717

Instituição Universidade Federal de Viçosa
Nível Graduação
Modalidade Pesquisa
Área de conhecimento Ciências Exatas e Tecnológicas
Área temática Ciências Exatas e da Terra
Setor Instituto de Ciências Exatas e Tecnológicas
Conclusão de bolsa Não
Primeiro autor Maria Dalila Vieira
Orientador JOSE AUGUSTO MIRANDA NACIF
Outros membros Lucas Bragança da Silva, RICARDO DOS SANTOS FERREIRA
Título Elaboração de cojunto de instruções para um CGRA(Coarse-Grained Reconfigurable Architecture)
Resumo Em observação aos últimos dez anos, é perceptível que as melhorias no desempenho da CPU (Central Processing Unit) não suprem a crescente demanda dos sistemas de computação. Por isso, uma grande parte dos sistemas de alto desempenho é geralmente composta de plataformas heterogêneas conectadas a um processador de uso geral. Um exemplo desse tipo de sistema é um acelerador em hardware ligado a uma CPU. No cenário industrial, aceleradores como GPU (Graphic Processing Unit) são mais populares porque oferecem uma interface de programação bem definida e estabelecida. No entanto, há alternativas com eficiências energéticas mais viáveis. Neste projeto, optamos pelos aceleradores baseados em FPGA (Field Programmable Gate Array). Para os quais, além do desempenho energético, em alguns casos também é possível conseguir bons tempos de execução. Em contraponto, a programação para FPGA ainda é feita através de linguagens de descrição de hardware, como Verilog ou VHDL. Além de que, é preciso maior conhecimento dos detalhes de hardware. Dessa forma, nosso objetivo é ocultar esses detalhes do programador, para tornar as FPGAs mais acessíveis. Para isso, propomos uma linguagem de baixo nível para descrever configurações de uma CGRA, que opera como uma camada virtual em um FPGA. Essa camada virtual destina-se a ocultar detalhes de hardware e reduzir o tempo de reconfiguração. Em suma, uma CGRA é uma malha de unidades de processamento, que são como pequenos processadores. E assim como os processadores comuns, elas performam operações descritas em bits. Vários artigos na literatura propõem a implementação de CGRAs em que suas operações de entradas expressas em grafos. Nossa linguagem de baixo nível tem o objetivo de padronizar a descrição do gráfico do fluxo de dados. Por questão de simplicidade, escolhemos um modelo de conjunto de instruções com formatos fixos, e baseado em RISC(Reduced Instruction Set Computer). Para implementar a solução e gerar nossos resultados, foram usados um computador pessoal com processador Intel Core i5-4210U e a plataforma HARP da Intel. Nossos resultados apresentam um conjunto conciso de instruções que descrevem operações em fluxo e um desempenho competitivo. Obtivemos mais de 2,5 GOPS (Giga Operations per Second) para benchmarks com uma dúzia de operações. Em geral, obtivemos resultados satisfatórios, visto que alcançamos um desempenho que compete com outros processadores, usando um processador de baixo consumo de energia. Além de que conseguimos um conjunto conciso de instruções. Possíveis melhorias deste trabalho se encontram na pesquisa por outras instruções muito usadas no contexto de fluxo de dados e aceleração em hardware. Ademais, é interessante ajustar as instruções para as especificações RISC-V.
Palavras-chave aceleradores em hardware, overlays, FPGA
Apresentações
  • Painel: Ginásio, 24/10/2019, de 08:00 a 20:30
  • Oral: Local e horário não definidos.
Gerado em 0,70 segundos.