Implementação de uma arquitetura para multiplicação de matrizes densas em sistemas reconfiguráveis de alto desempenho - Lucy Santos de Souza, Viviane (2011)
A recente evolução na arquitetura dos dispositivos lógicos programáveis, como os FPGAs (Field Programmable Gate Array), associada à demanda por desempenho exigida em aplicações de computação científica, despertou a atenção de projetistas de supercomputadores que têm investido na criação de plataformas híbridas, associando processadores de propósito geral a co-processadores baseados em FPGAs, em busca de melhores níveis de aceleração. Uma arquitetura que incorpore um ou mais processadores de propósito geral e FPGAs num link de alta velocidade é chamada computador reconfigurável de alto desempenho. Este tipo de configuração requer, em geral, uma alta largura de banda entre o processador e o FPGA, necessário para que os ganhos com a execução em hardware superem o gargalo na comunicação. O sucesso dessas plataformas depende de características como: recursos presentes no FPGA, disponibilidade de memória na arquitetura, largura de banda e capacidade de escalabilidade das mesmas. Ao mesmo tempo, uma análise adequada do problema e um particionamento hardware/software eficiente, são necessários. Neste caso, processos com características de controle devem ser executados no processador de propósito geral e a computação intensiva deve ser executada em FPGA, onde podem ser exploradas características como paralelismo de execução e reuso de dados. Neste trabalho, são estudadas as principais características de alguns dos computadores reconfiguráveis de alto desempenho existentes. Além disso, como estudo de caso, é apresentada a análise e desenvolvimento de uma das importantes operações da computação científica: a multiplicação de matrizes, objetivando uma das plataformas estudadas, a plataforma RASC (Reconfigurable Application-Specific Computing), desenvolvida pela Silicon Graphics. A arquitetura proposta no estudo de caso visa, a partir da análise do problema e da avaliação dos recursos disponíveis na plataforma alvo, a obtenção de melhores resultados de desempenho quando comparado à execução em plataformas convencionais, baseadas em processadores de propósito geral. Para tanto, características como paralelismo e o reuso de dados são exploradas. A partir do projeto desenvolvido, é apresentado um modelo para avaliação de desempenho do multiplicador que pode ser aplicado às demais plataformas estudadas