Geração automática de aceleradores de domínio específico em FPGA

Detalhes bibliográficos
Ano de defesa: 2024
Autor(a) principal: Silva, Lucas Bragança da
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Viçosa
Ciência da Computação
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://locus.ufv.br/handle/123456789/33573
https://doi.org/10.47328/ufvbbt.2025.034
Resumo: Devido à sua eficiência energética e alta flexibilidade, os FPGAs (Field Programmable Gate Arrays), ou Arranjos de Portas Programáveis em Campo, têm desempenhado um papel relevante na computação, atuando como aceleradores de hardware especializados. No entanto, a programação e implantação de aceleradores em plataformas com FPGA ainda representam um desafio. Esta tese apresenta uma metodologia que visa automatizar o projeto de aceleradores em FPGAs por meio de um conjunto de ferramentas para geração de arquiteturas com um fluxo de síntese programável e flexível. A metodologia proposta foi desenvolvida em três etapas. Na primeira etapa, o objetivo foi entender os principais desafios relacionados ao projeto de aceleradores em FPGAs. Para isso, foram desenvolvidas duas abordagens que tratam de geradores de aceleradores para duas aplicações específicas. Na primeira abordagem, apresentamos um gerador de aceleradores em FPGA para o algoritmo K-means. O framework proposto é altamente parametrizável e gera código HDL (Hardware Description Language), ou Linguagem de Descrição de Hardware, para o projeto completo, pronto para ser implantado em uma plataforma de FPGA na nuvem. Como resultado, o acelerador proposto apresentou ganhos de tempo de execução de 1,98 vezes quando comparado com outro acelerador em uma plataforma com FPGA altamente acoplada. Na segunda abordagem, propomos um gerador de aceleradores para simulações de GRNs (Genes Regulator Networks), ou Redes Reguladoras de Genes, usando FPGAs na nuvem. Este gerador cria automaticamente todo o conjunto de hardware/software a partir de uma descrição em alto nível de um modelo de GRN. Utilizamos seis modelos GRN propostos na literatura para comparar o desempenho e o custo com implementações em CPU (Central Processing Unit), ou Unidade Central de Processamento, GPU (Graphics Processing Unit), ou Unidade de Processamento Gráfico, e FPGA. Como resultado, o acelerador em FPGA é pelo menos 12 vezes mais rápido do que o melhor acelerador em GPU avaliado, e oferece o melhor desempenho por dólar em serviços em nuvem, pelo menos 5 vezes melhor do que o melhor acelerador em GPU. Na segunda etapa desta tese, apresentamos um framework chamado REconfigurable Accelerator DeploY (READY), o primeiro framework a oferecer suporte ao mapeamento de aplicações em grafo de fluxo de dados em plataformas CPU-FPGA de alto desempenho em tempo de execução. READY introduz um mapeamento eficiente em uma arquitetura de CGRA (Coarse Grained Reconfigurable Architecture), ou Arquitetura Reconfigurável de Granularidade Grossa, que oculta a latência da rede de interconexão global executando múltiplas tarefas. Além disso, demonstramos como esse sistema contribui para resolver alguns dos desafios relacionados à adoção de aceleradores de domínio específico em FPGAs. Os resultados dessa abordagem mostraram que é possível mapear e executar aplicações de grafo de fluxo de dados de forma eficiente, e o desempenho do sistema resulta em uma aceleração de até 2 vezes em comparação com uma CPU moderna. E, por fim, a terceira e última etapa desta tese apresenta o High Performance Coarse Grained Reconfigurable Accelerator (HPCGRA), uma ferramenta projetada para gerar aceleradores de domínio específico com interconexões multidimensionais de forma flexível. O CGRA é gerado utilizando os principais blocos de construção, como unidades funcionais, padrões de interconexão, roteamento e recursos de filas elásticas, palavras de configuração e memórias. O HPCGRA otimiza e simplifica o processo de criação de arquiteturas por meio de uma descrição portátil, gerando um código Verilog RTL genérico e eficiente. Os resultados da síntese mostram que, mesmo aumentando o número de PEs (Processing Elements), ou Elementos de Processamento, das arquiteturas geradas pelo HPCGRA, a frequência de clock e a relação do uso de recursos por PE permanecem estáveis. Foi possível sintetizar arquiteturas de CGRAs com 3036 PEs, com desempenho teórico de 1,2 TOPS. Palavras-chave: fpga; cgra; dsa; rdsa; hpcgra
id UFV_49c659d90fd0156b38700a7d892f222b
oai_identifier_str oai:locus.ufv.br:123456789/33573
network_acronym_str UFV
network_name_str LOCUS Repositório Institucional da UFV
repository_id_str
spelling Geração automática de aceleradores de domínio específico em FPGAAutomatic generation of domain-specific accelerators on FPGAProgramação (Computadores)Arranjo de lógica programável em campoHardwareProcessamento eletrônico de dadosCiência da ComputaçãoDevido à sua eficiência energética e alta flexibilidade, os FPGAs (Field Programmable Gate Arrays), ou Arranjos de Portas Programáveis em Campo, têm desempenhado um papel relevante na computação, atuando como aceleradores de hardware especializados. No entanto, a programação e implantação de aceleradores em plataformas com FPGA ainda representam um desafio. Esta tese apresenta uma metodologia que visa automatizar o projeto de aceleradores em FPGAs por meio de um conjunto de ferramentas para geração de arquiteturas com um fluxo de síntese programável e flexível. A metodologia proposta foi desenvolvida em três etapas. Na primeira etapa, o objetivo foi entender os principais desafios relacionados ao projeto de aceleradores em FPGAs. Para isso, foram desenvolvidas duas abordagens que tratam de geradores de aceleradores para duas aplicações específicas. Na primeira abordagem, apresentamos um gerador de aceleradores em FPGA para o algoritmo K-means. O framework proposto é altamente parametrizável e gera código HDL (Hardware Description Language), ou Linguagem de Descrição de Hardware, para o projeto completo, pronto para ser implantado em uma plataforma de FPGA na nuvem. Como resultado, o acelerador proposto apresentou ganhos de tempo de execução de 1,98 vezes quando comparado com outro acelerador em uma plataforma com FPGA altamente acoplada. Na segunda abordagem, propomos um gerador de aceleradores para simulações de GRNs (Genes Regulator Networks), ou Redes Reguladoras de Genes, usando FPGAs na nuvem. Este gerador cria automaticamente todo o conjunto de hardware/software a partir de uma descrição em alto nível de um modelo de GRN. Utilizamos seis modelos GRN propostos na literatura para comparar o desempenho e o custo com implementações em CPU (Central Processing Unit), ou Unidade Central de Processamento, GPU (Graphics Processing Unit), ou Unidade de Processamento Gráfico, e FPGA. Como resultado, o acelerador em FPGA é pelo menos 12 vezes mais rápido do que o melhor acelerador em GPU avaliado, e oferece o melhor desempenho por dólar em serviços em nuvem, pelo menos 5 vezes melhor do que o melhor acelerador em GPU. Na segunda etapa desta tese, apresentamos um framework chamado REconfigurable Accelerator DeploY (READY), o primeiro framework a oferecer suporte ao mapeamento de aplicações em grafo de fluxo de dados em plataformas CPU-FPGA de alto desempenho em tempo de execução. READY introduz um mapeamento eficiente em uma arquitetura de CGRA (Coarse Grained Reconfigurable Architecture), ou Arquitetura Reconfigurável de Granularidade Grossa, que oculta a latência da rede de interconexão global executando múltiplas tarefas. Além disso, demonstramos como esse sistema contribui para resolver alguns dos desafios relacionados à adoção de aceleradores de domínio específico em FPGAs. Os resultados dessa abordagem mostraram que é possível mapear e executar aplicações de grafo de fluxo de dados de forma eficiente, e o desempenho do sistema resulta em uma aceleração de até 2 vezes em comparação com uma CPU moderna. E, por fim, a terceira e última etapa desta tese apresenta o High Performance Coarse Grained Reconfigurable Accelerator (HPCGRA), uma ferramenta projetada para gerar aceleradores de domínio específico com interconexões multidimensionais de forma flexível. O CGRA é gerado utilizando os principais blocos de construção, como unidades funcionais, padrões de interconexão, roteamento e recursos de filas elásticas, palavras de configuração e memórias. O HPCGRA otimiza e simplifica o processo de criação de arquiteturas por meio de uma descrição portátil, gerando um código Verilog RTL genérico e eficiente. Os resultados da síntese mostram que, mesmo aumentando o número de PEs (Processing Elements), ou Elementos de Processamento, das arquiteturas geradas pelo HPCGRA, a frequência de clock e a relação do uso de recursos por PE permanecem estáveis. Foi possível sintetizar arquiteturas de CGRAs com 3036 PEs, com desempenho teórico de 1,2 TOPS. Palavras-chave: fpga; cgra; dsa; rdsa; hpcgraDue to their energy efficiency and high flexibility, Field Programmable Gate Arrays (FPGAs) have played a significant role in computing, serving as specialized hardware accelerators. However, programming and deploying accelerators on FPGA platforms still pose a challenge. This thesis presents a methodology that aims to automate the design of accelerators in FPGAs through a set of tools for generating architectures with a programmable and flexible synthesis flow. The proposed methodology was developed in three stages. In the first stage, the aim was to understand the main challenges related to accelerator design on FPGAs. For this, two approaches were developed that address accelerator generators for two specific applications. In the first approach, we present an FPGA accelerator generator for the K-means algorithm. The proposed framework is highly parameterizable and generates HDL (Hardware Description Language) code for the complete project, ready to be deployed on a cloud FPGA platform. As a result, the proposed accelerator showed runtime gains of 1.98 times when compared to another accelerator on a highly coupled FPGA platform. In the second approach, we propose an accelerator generator for simulations of Gene Regulator Networks (GRNs) using FPGAs in the cloud. This generator automatically creates the entire hardware/software set from a high-level description of a GRN model. We used six GRN models proposed in the literature to compare performance and cost with implementations on CPU (Central Processing Unit), GPU (Graphics Processing Unit), and FPGA. As a result, the FPGA accelerator is at least 12 times faster than the best evaluated GPU accelerator and offers the best performance per dollar in cloud services, at least 5 times better than the best GPU accelerator. In the second stage of this thesis, we present a framework called REconfigurable Accelerator DeploY (READY), the first framework to support mapping applications to high-performance CPU-FPGA platforms at runtime. READY introduces efficient mapping onto a Coarse Grained Reconfigurable Architecture (CGRA), which hides the latency of the global interconnection network by executing multiple tasks. Additionally, we demonstrate how this system contributes to solving some of the challenges related to the adoption of domain-specific accelerators on FPGAs. The results of this approach show that it is possible to map and execute dataflow graph applications efficiently, and the system's performance results in acceleration of up to 2 times compared to a modern CPU. And finally, the third and final stage of this thesis presents the High Performance Coarse Grained Reconfigurable Accelerator (HPCGRA), a tool designed to generate domain-specific accelerators with flexible multidimensional interconnections. The CGRA is generated using key building blocks such as functional units, interconnection patterns, routing and elastic queue resources, configuration words, and memories. The HPCGRA optimizes and simplifies the architecture creation process through a portable description, generating generic and efficient Verilog RTL code. Synthesis results show that, even with an increased number of Processing Elements (PEs) in the architectures generated by HPCGRA, the clock frequency and the resource usage per PE remain stable. It was possible to synthesize CGRA architectures with 3036 PEs, with a theoretical performance of 1.2 TOPS. Keywords: fpga; cgra; dsa; rdsa; hpcgraCoordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)Universidade Federal de ViçosaCiência da ComputaçãoNacif, Jose Augusto Mirandahttp://lattes.cnpq.br/9858970345247106Ferreira, Ricardo dos SantosSilva, Lucas Bragança da2025-01-30T18:23:02Z2024-05-03info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfSILVA, Lucas Bragança da. Geração automática de aceleradores de domínio específico em FPGA. 2024. 123 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Viçosa, Viçosa. 2024.https://locus.ufv.br/handle/123456789/33573https://doi.org/10.47328/ufvbbt.2025.034porinfo:eu-repo/semantics/openAccessreponame:LOCUS Repositório Institucional da UFVinstname:Universidade Federal de Viçosa (UFV)instacron:UFV2025-01-31T06:00:57Zoai:locus.ufv.br:123456789/33573Repositório InstitucionalPUBhttps://www.locus.ufv.br/oai/requestfabiojreis@ufv.bropendoar:21452025-01-31T06:00:57LOCUS Repositório Institucional da UFV - Universidade Federal de Viçosa (UFV)false
dc.title.none.fl_str_mv Geração automática de aceleradores de domínio específico em FPGA
Automatic generation of domain-specific accelerators on FPGA
title Geração automática de aceleradores de domínio específico em FPGA
spellingShingle Geração automática de aceleradores de domínio específico em FPGA
Silva, Lucas Bragança da
Programação (Computadores)
Arranjo de lógica programável em campo
Hardware
Processamento eletrônico de dados
Ciência da Computação
title_short Geração automática de aceleradores de domínio específico em FPGA
title_full Geração automática de aceleradores de domínio específico em FPGA
title_fullStr Geração automática de aceleradores de domínio específico em FPGA
title_full_unstemmed Geração automática de aceleradores de domínio específico em FPGA
title_sort Geração automática de aceleradores de domínio específico em FPGA
author Silva, Lucas Bragança da
author_facet Silva, Lucas Bragança da
author_role author
dc.contributor.none.fl_str_mv Nacif, Jose Augusto Miranda
http://lattes.cnpq.br/9858970345247106
Ferreira, Ricardo dos Santos
dc.contributor.author.fl_str_mv Silva, Lucas Bragança da
dc.subject.por.fl_str_mv Programação (Computadores)
Arranjo de lógica programável em campo
Hardware
Processamento eletrônico de dados
Ciência da Computação
topic Programação (Computadores)
Arranjo de lógica programável em campo
Hardware
Processamento eletrônico de dados
Ciência da Computação
description Devido à sua eficiência energética e alta flexibilidade, os FPGAs (Field Programmable Gate Arrays), ou Arranjos de Portas Programáveis em Campo, têm desempenhado um papel relevante na computação, atuando como aceleradores de hardware especializados. No entanto, a programação e implantação de aceleradores em plataformas com FPGA ainda representam um desafio. Esta tese apresenta uma metodologia que visa automatizar o projeto de aceleradores em FPGAs por meio de um conjunto de ferramentas para geração de arquiteturas com um fluxo de síntese programável e flexível. A metodologia proposta foi desenvolvida em três etapas. Na primeira etapa, o objetivo foi entender os principais desafios relacionados ao projeto de aceleradores em FPGAs. Para isso, foram desenvolvidas duas abordagens que tratam de geradores de aceleradores para duas aplicações específicas. Na primeira abordagem, apresentamos um gerador de aceleradores em FPGA para o algoritmo K-means. O framework proposto é altamente parametrizável e gera código HDL (Hardware Description Language), ou Linguagem de Descrição de Hardware, para o projeto completo, pronto para ser implantado em uma plataforma de FPGA na nuvem. Como resultado, o acelerador proposto apresentou ganhos de tempo de execução de 1,98 vezes quando comparado com outro acelerador em uma plataforma com FPGA altamente acoplada. Na segunda abordagem, propomos um gerador de aceleradores para simulações de GRNs (Genes Regulator Networks), ou Redes Reguladoras de Genes, usando FPGAs na nuvem. Este gerador cria automaticamente todo o conjunto de hardware/software a partir de uma descrição em alto nível de um modelo de GRN. Utilizamos seis modelos GRN propostos na literatura para comparar o desempenho e o custo com implementações em CPU (Central Processing Unit), ou Unidade Central de Processamento, GPU (Graphics Processing Unit), ou Unidade de Processamento Gráfico, e FPGA. Como resultado, o acelerador em FPGA é pelo menos 12 vezes mais rápido do que o melhor acelerador em GPU avaliado, e oferece o melhor desempenho por dólar em serviços em nuvem, pelo menos 5 vezes melhor do que o melhor acelerador em GPU. Na segunda etapa desta tese, apresentamos um framework chamado REconfigurable Accelerator DeploY (READY), o primeiro framework a oferecer suporte ao mapeamento de aplicações em grafo de fluxo de dados em plataformas CPU-FPGA de alto desempenho em tempo de execução. READY introduz um mapeamento eficiente em uma arquitetura de CGRA (Coarse Grained Reconfigurable Architecture), ou Arquitetura Reconfigurável de Granularidade Grossa, que oculta a latência da rede de interconexão global executando múltiplas tarefas. Além disso, demonstramos como esse sistema contribui para resolver alguns dos desafios relacionados à adoção de aceleradores de domínio específico em FPGAs. Os resultados dessa abordagem mostraram que é possível mapear e executar aplicações de grafo de fluxo de dados de forma eficiente, e o desempenho do sistema resulta em uma aceleração de até 2 vezes em comparação com uma CPU moderna. E, por fim, a terceira e última etapa desta tese apresenta o High Performance Coarse Grained Reconfigurable Accelerator (HPCGRA), uma ferramenta projetada para gerar aceleradores de domínio específico com interconexões multidimensionais de forma flexível. O CGRA é gerado utilizando os principais blocos de construção, como unidades funcionais, padrões de interconexão, roteamento e recursos de filas elásticas, palavras de configuração e memórias. O HPCGRA otimiza e simplifica o processo de criação de arquiteturas por meio de uma descrição portátil, gerando um código Verilog RTL genérico e eficiente. Os resultados da síntese mostram que, mesmo aumentando o número de PEs (Processing Elements), ou Elementos de Processamento, das arquiteturas geradas pelo HPCGRA, a frequência de clock e a relação do uso de recursos por PE permanecem estáveis. Foi possível sintetizar arquiteturas de CGRAs com 3036 PEs, com desempenho teórico de 1,2 TOPS. Palavras-chave: fpga; cgra; dsa; rdsa; hpcgra
publishDate 2024
dc.date.none.fl_str_mv 2024-05-03
2025-01-30T18:23:02Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv SILVA, Lucas Bragança da. Geração automática de aceleradores de domínio específico em FPGA. 2024. 123 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Viçosa, Viçosa. 2024.
https://locus.ufv.br/handle/123456789/33573
https://doi.org/10.47328/ufvbbt.2025.034
identifier_str_mv SILVA, Lucas Bragança da. Geração automática de aceleradores de domínio específico em FPGA. 2024. 123 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Viçosa, Viçosa. 2024.
url https://locus.ufv.br/handle/123456789/33573
https://doi.org/10.47328/ufvbbt.2025.034
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Viçosa
Ciência da Computação
publisher.none.fl_str_mv Universidade Federal de Viçosa
Ciência da Computação
dc.source.none.fl_str_mv reponame:LOCUS Repositório Institucional da UFV
instname:Universidade Federal de Viçosa (UFV)
instacron:UFV
instname_str Universidade Federal de Viçosa (UFV)
instacron_str UFV
institution UFV
reponame_str LOCUS Repositório Institucional da UFV
collection LOCUS Repositório Institucional da UFV
repository.name.fl_str_mv LOCUS Repositório Institucional da UFV - Universidade Federal de Viçosa (UFV)
repository.mail.fl_str_mv fabiojreis@ufv.br
_version_ 1855045597259628544