Performance evaluation of code optimizations in FPGA accelerators

Com o crescimento contínuo do consumo de energia em microprocessadores,cientistas e engenheiros da computação redirecionaram atenção a arquiteturas heterogêneas, onde dispositivos de classes diferentes são usados para acelerar a computação. Dentre eles, existem as FPGAs (Field-Programmable Gate Arra...

Descripción completa

Detalles Bibliográficos
Autor: Leite, Gustavo
Tipo de recurso: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2019
País:Brasil
Institución:Universidade Estadual Paulista (UNESP)
Repositorio:Repositório Institucional da UNESP
Idioma:inglés
OAI Identifier:oai:repositorio.unesp.br:11449/190715
Acceso en línea:http://hdl.handle.net/11449/190715
Access Level:acceso abierto
Palabra clave:FPGA
Computação de alto desempenho
Otimização de código
High-performance computing
Code optimization
Descripción
Sumario:Com o crescimento contínuo do consumo de energia em microprocessadores,cientistas e engenheiros da computação redirecionaram atenção a arquiteturas heterogêneas, onde dispositivos de classes diferentes são usados para acelerar a computação. Dentre eles, existem as FPGAs (Field-Programmable Gate Arrays) cujo hardware pode ser reconfigurado após sua fabricação. Esta classe de dispositivos demonstra desempenho comparável aos processadores convencionais enquanto consomem apenas uma fração de energia. O uso de FPGAs vem se proliferando nos últimos anos e a perspectiva é que o nível de adoção continue a crescer. No entanto, programar FPGAs e aprimorar os programas para obter maior desempenho continua uma tarefa não trivial. Este trabalho apresenta uma compilação das principais transformações de código para otimização de programas direcionados à FPGAs. Neste trabalho também é avaliado o desempenho de programas executando em FPGAs. Mais especificamente, um subconjunto das transformações de código são aplicadas em um kernel OpenCL e os tempos de execução são medidos em um dispositivo da Intel®. Os resultados mostram que, sem a aplicação das transformações, o desempenho dos dispositivos é abaixo do que é observado quando as transformações são de fato aplicadas.