Geração automática de aceleradores de domínio específico em FPGA
| Ano de defesa: | 2024 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| 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 |