61ª Reunião Anual da SBPC
A. Ciências Exatas e da Terra - 2. Ciência da Computação - 8. Processamento Paralelo e Distribuído
Implementação de FFT em Hardware Reconfigurável
Vitor Conrado Faria Gomes 1, 2
Andrea Schwertner Charão 1
Haroldo Fraga de Campos Velho 2
1. Universidade Federal de Santa Maria / UFSM
2. Instituto Nacional de Pesquisas Espaciais - INPE
INTRODUÇÃO:
A computação de problemas científicos gera grande demanda por recursos computacionais, sendo que existem diversas estratégias para melhorar o desempenho destas aplicações. Uma abordagem associada a estas estratégias é a computação híbrida, onde se utiliza mais de um recurso computacional para a execução de uma tarefa. Neste contexto, este trabalho tem por objetivo implementar a Transformada Rápida de Fourier (FFT) em hardware reconfigurável (FPGA), para aumentar o desempenho de simulações numéricas. A FFT será integrada a um modelo meteorológico de água rasa unidimensional, formando um sistema de computação híbrida.
METODOLOGIA:
O ambiente utilizado para a realização deste trabalho é o supercomputador Cray XD1, disponível no INPE. Este equipamento incorpora FPGAs em sua arquitetura para permitir a aceleração de aplicações críticas. Devido às características do sistema híbrido, é necessário estabelecer a comunicação entre CPU e FPGA, utilizando bibliotecas da Cray. Estudou-se neste trabalho as diferentes abordagens disponíveis nestas bibliotecas para transferir dados entre os dispositivos, com o propósito de identificar qual permitiria uma maior taxa de transferência. Em outra etapa do trabalho, avaliou-se implementações de bibliotecas de ponto flutuante que permitissem a execução de operações desta natureza em FPGAs. Após estas etapas, iniciaram-se testes com a implementação do núcleo básico da FFT conhecido como "borboleta". Esses testes objetivaram o estabelecimento da área ocupada pela operação, visto que FPGAs possuem espaço limitado para a acomodação da lógica do sistema. Definida a configuração da "borboleta", implementou-se a Transformada Rápida de Fourier para 8 pontos para FPGA visando a realização de testes de funcionamento do sistema híbrido.
RESULTADOS:
Através dos testes de comunicação verificou-se que a leitura de dados da memória pelo FPGA é o método mais eficiente de tranferência de dados, sendo obtida a taxa máxima de 89MB/s. As avaliações de precisão de bibliotecas de ponto flutuante permitiram identificar a biblioteca Floating-Point Operator da Xilinx, que em testes de produto interno de vetores apresentou erro absoluto nulo em relação à implementação em linguagem C. Com as implementações em ponto flutuante duplo de diferentes operações "borboleta", que diferem entre si pelo grau de reutilização de componentes de soma, subtração e multiplicação, observou-se que a implementação que não reutiliza componentes na operação, e conseqüentemente possui menor latência, ocupa 44% da área do FPGA, acarretando na inviabilidade de sua utilização, pois para o cálculo da FFT em 8 amostras são necessários 3 núcles como este. A implementação com maior grau de reutilização, ocupa 29% do dispositivo. Com a implementação da FFT para 8 pontos foi possível a criação de uma biblioteca em linguagem C que abstrai a utilização do cálculo da FFT em FPGA, permitindo uma melhor integração com sistemas já implementados.
CONCLUSÃO:
Com as atividades já realizadas pôde-se concluir que implementações em sistemas híbridos necessitam de uma abordagem diferenciada em relação aos sistemas de computação tradicionais. Além disso, restrições dos dispositivos tornam necessária a avaliação de cada decisão do trabalho. Conclui-se ainda que é possível utilizar FPGAs para o cálculo da Transformada Rápida de Fourier e que a utilização de uma interface pode tornar transparente para os programas em que dispositivo esta computação está sendo realizada. Entretanto, a computação da FFT em 8 pontos pode ser insuficiente para problemas científicos complexos. Neste sentido, este trabalho segue no desenvolvimento de uma implementação de FFT para uma maior quantidade de amostras, para tornar possível sua utilização em um número maior de aplicações.
Instituição de Fomento: CNPQ
Palavras-chave: FFT, FPGA, Computação Híbrida.