10ago2026
14:00 Defesa de Doutorado sala 85 do IC2
Tema
OMPC-F: Multi-FPGA Programming Using OpenMP
Aluno
Pedro Henrique Di Francia Rosso
Orientador / Docente
Guido Costa Souza de Araújo
Breve resumo
O desenvolvimento de aplicações científicas de alto desempenho tornou-se uma tarefa complexa, uma vez que as CPUs tradicionais já não são suficientes para atender às crescentes demandas por desempenho e eficiência energética. Esse cenário impulsionou a adoção de arquiteturas heterogêneas baseadas em aceleradores como GPUs (Graphics Processing Units) e FPGAs (Field-Programmable Gate Arrays). No entanto, integrar e programar eficientemente múltiplos aceleradores em clusters distribuídos continua sendo um desafio complexo. No caso das FPGAs, além de dominar a linguagem de escrita da aplicação (como C/C++), o desenvolvedor precisa dominar bibliotecas de suporte à execução (como XRT da AMD ou SYCL da Intel). Adicionalmente, se o foco for ambientes distribuídos, adiciona-se ainda mais uma pilha de ferramentas de comunicação. Esta tese apresenta uma solução focada em FPGAs baseada no framework OMPC (OpenMP Cluster), estendendo o modelo OpenMP padrão para abstrair a complexidade de ambientes heterogêneos e distribuídos. A primeira contribuição introduz o offloading transparente para FPGAs, permitindo ao desenvolvedor alternar kernels entre CPUs, GPUs e FPGAs com poucas linhas de código. A segunda contribuição introduz o suporte à computação baseada em streaming no framework, permitindo a criação de pipelines de dados eficientes em FPGAs ao sintetizar streams como buffers OpenMP a partir do binário dos kernels. O framework proposto também simplifica a integração dos processos de compilação de software (OpenMP) e hardware (FPGA) ao mantê-los separados, vinculando os binários apenas durante a execução. Por fim, a solução permite a integração automática de duas bibliotecas de comunicação acelerada em FPGAs, com foco na transferência de vetores de dados e em canais de streaming entre instâncias de kernels na mesma ou em diferentes FPGAs. As propostas foram avaliadas utilizando benchmarks sintéticos, aplicações reais e métricas de software. Os resultados demonstram que a abordagem reduz o esforço de programação em até 59% em relação ao modelo com ferramentas tradicionais (XRT e MPI). Além disso, o framework superou o mecanismo padrão de comunicação usado no OMPC (MPI) em até 1,41x em aplicações fortemente limitadas por comunicação. O framework também é o primeiro a incluir no modelo de programação o suporte para streaming de dados entre kernels de FPGA. O código OpenMP permanece totalmente compatível com os modelos que utilizam tanto streaming quanto vetores em memória, visto que o suporte para streaming é totalmente abstraído, cabendo ao framework decidir o mecanismo ideal com base no que está implementado na FPGA. Os testes contra o modelo tradicio nal XRT+MPI demonstraram que a solução mantém a escalabilidade com um overhead constante médio de apenas 4,3%.
Banca examinadora
Titulares:
Guido Costa Souza de Araújo IC/UNICAMP
Calebe de Paula Bianchini MACKENZIE
Fernando Gehm Moraes PUCRS
Ricardo Pannain IC/UNICAMP
Luiz Eduardo Busato IC/UNICAMP
Suplentes:
Isaias Bittencourt Felzmann IC/UNICAMP
Alfredo Goldman vel Lejbman IME/USP
Samuel Xavier de Souza DCA/UFRN