Aceleradores personalizados revolucionaram a computação moderna ao proporcionar ganhos substanciais em eficiência energética e desempenho por meio da especialização em hardware. Os Field-Programmable Gate Arrays (FPGAs) desempenham um papel crucial nesse paradigma, oferecendo flexibilidade incomparável e potencial de alto desempenho. A Síntese em Alto Nível (HLS) e compiladores de fonte para fonte simplificaram o desenvolvimento de FPGAs ao traduzir linguagens de programação de alto nível em descrições de hardware enriquecidas com diretrizes. No entanto, alcançar alta Qualidade de Resultados (QoR) continua sendo um desafio significativo, exigindo transformações de código intrincadas, colocação estratégica de diretrizes e comunicação de dados otimizada. Este artigo apresenta o Prometheus, uma estrutura de otimização holística que integra otimizações chave — incluindo fusão de tarefas, divisão em blocos, permutação de laços, sobreposição de computação e comunicação, e execução de tarefas concorrentes — em um espaço de design unificado. Ao aproveitar metodologias de Programação Não Linear (NLP), o Prometheus explora o espaço de otimização sob rigorosas restrições de recursos, permitindo a geração automática de bitstreams. Ao contrário das estruturas existentes, o Prometheus considera transformações interdependentes e equilibra dinamicamente a computação e o acesso à memória. Avaliamos o Prometheus em vários benchmarks, demonstrando sua capacidade de maximizar o paralelismo, minimizar as interrupções de execução e otimizar o movimento de dados. Os resultados mostram seu desempenho superior em comparação com estruturas de otimização FPGA de ponta, destacando sua eficácia em fornecer alta QoR enquanto reduz os esforços de ajuste manual.
Pouget et al. (Qua,) estudaram esta questão.