Geração de código para arquiteturas reconfiguráveis

Detalhes bibliográficos
Autor(a) principal: Pedro Henrique Moreira Caldeira
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFMG
Texto Completo: http://hdl.handle.net/1843/51804
Resumo: Recent years have seen a surge in the popularity of Field-Programmable Gate Arrays (FPGAs). Programmers can use them to develop high-performance systems that are not only efficient in time, but also in energy. Yet, programming FPGAs remains a difficult task. Even though there exist today OpenCL interfaces to synthesize such hardware, higher-level programming languages, such as Java, C# or Python remain distant from them. In this work, we describe a compiler, and its supporting runtime environment, that reduces this distance, translating functional code written in Java to the Intel HARP platform. Thus, we bring two contributions. First, the insight that a functional-style library is a good starting point to bridge the gap between high-level programming idioms and FPGAs. Second, the implementation of this system itself, including the compiler, its intermediate representation, and all the runtime support necessary to shield developers from the task of transferring data back and forth between the host CPU and the accelerator. To demonstrate the effectiveness of our system, we have used it to implement different benchmarks, used in image processing and datamining. For large inputs, we can observe consistent 20x speedups over the Java Virtual Machine across all our benchmarks. Depending on the target function that we compile, this speedup can be as large as 280.
id UFMG_cd7e2d9ca3d944e207b12ec33564c47e
oai_identifier_str oai:repositorio.ufmg.br:1843/51804
network_acronym_str UFMG
network_name_str Repositório Institucional da UFMG
repository_id_str
spelling Geração de código para arquiteturas reconfiguráveisCode generation to reconfigurable architecturesCompiladoresFPGALinguages de ProgramaçãoArquitetura de ComputadoresJavaMapReducePerformanceComputação – TesesArquitetura de computador – TesesCompiladores (Programas de computador) – TesesLinguagem de programação (Computadores) – TesesRecent years have seen a surge in the popularity of Field-Programmable Gate Arrays (FPGAs). Programmers can use them to develop high-performance systems that are not only efficient in time, but also in energy. Yet, programming FPGAs remains a difficult task. Even though there exist today OpenCL interfaces to synthesize such hardware, higher-level programming languages, such as Java, C# or Python remain distant from them. In this work, we describe a compiler, and its supporting runtime environment, that reduces this distance, translating functional code written in Java to the Intel HARP platform. Thus, we bring two contributions. First, the insight that a functional-style library is a good starting point to bridge the gap between high-level programming idioms and FPGAs. Second, the implementation of this system itself, including the compiler, its intermediate representation, and all the runtime support necessary to shield developers from the task of transferring data back and forth between the host CPU and the accelerator. To demonstrate the effectiveness of our system, we have used it to implement different benchmarks, used in image processing and datamining. For large inputs, we can observe consistent 20x speedups over the Java Virtual Machine across all our benchmarks. Depending on the target function that we compile, this speedup can be as large as 280.Nos últimos anos observa-se uma ascenção na popularidade das Matrizes de Portas Programáveis em Campo (Field Programmable Gate Array - FPGA). Programadores podem utilizá-las para desenvolver aplicações de alto desempenho que podem ser eficientes em tempo e energia. Porém, programar para FPGAs permanece uma tarefa difícil. Apesar de existirem interfaces OpenCL para sintetizar esse hardware, linguagens de alto nível como Java, C# ou Python permanecem distantes dessa arquitetura. Nesse trabalho descrevemos um compilador e um ambiente de execução que reduz essa distância traduzindo código funcional escrito em Java para a plataforma do Intel HARP. Portanto trazemos duas contribuições. Primeiro, mostramos que uma biblioteca de programação funcional é um bom ponto de partida para aproximar linguagens de alto nível e FPGAs. Segundo, a implementação de um arcabouço que inclui um compilador, uma representação intermediária e um ambiente de execução capaz de fazer a transferência de dados entre hospedeiro e acelerador sem intervenção explícita do programador. Afim de demonstrar a eficácia do nosso sistema, nós o utilizamos para implementar diferentes casos de testes utilizados em processamento de imagens e mineração de dados. Para entradas com grande volume de dados, observamos acelerações estáveis de 20x se comparando com o código original executado na Máquina Virtual Java entre todos nossos casos de teste. Dependendo da função que compilamos essa aceleração pode chegar a 280x.CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível SuperiorUniversidade Federal de Minas GeraisBrasilICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃOPrograma de Pós-Graduação em Ciência da ComputaçãoUFMGRenato Antônio Celso Ferreirahttp://lattes.cnpq.br/3446817929796674Daniel Fernandes MacedoRicardo dos Santos FerreiraGilberto Medeiros RibeiroPedro Henrique Moreira Caldeira2023-04-11T17:08:39Z2023-04-11T17:08:39Z2019-03-11info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/1843/51804porhttp://creativecommons.org/licenses/by/3.0/pt/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMG2023-04-11T17:08:39Zoai:repositorio.ufmg.br:1843/51804Repositório InstitucionalPUBhttps://repositorio.ufmg.br/oairepositorio@ufmg.bropendoar:2023-04-11T17:08:39Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false
dc.title.none.fl_str_mv Geração de código para arquiteturas reconfiguráveis
Code generation to reconfigurable architectures
title Geração de código para arquiteturas reconfiguráveis
spellingShingle Geração de código para arquiteturas reconfiguráveis
Pedro Henrique Moreira Caldeira
Compiladores
FPGA
Linguages de Programação
Arquitetura de Computadores
Java
MapReduce
Performance
Computação – Teses
Arquitetura de computador – Teses
Compiladores (Programas de computador) – Teses
Linguagem de programação (Computadores) – Teses
title_short Geração de código para arquiteturas reconfiguráveis
title_full Geração de código para arquiteturas reconfiguráveis
title_fullStr Geração de código para arquiteturas reconfiguráveis
title_full_unstemmed Geração de código para arquiteturas reconfiguráveis
title_sort Geração de código para arquiteturas reconfiguráveis
author Pedro Henrique Moreira Caldeira
author_facet Pedro Henrique Moreira Caldeira
author_role author
dc.contributor.none.fl_str_mv Renato Antônio Celso Ferreira
http://lattes.cnpq.br/3446817929796674
Daniel Fernandes Macedo
Ricardo dos Santos Ferreira
Gilberto Medeiros Ribeiro
dc.contributor.author.fl_str_mv Pedro Henrique Moreira Caldeira
dc.subject.por.fl_str_mv Compiladores
FPGA
Linguages de Programação
Arquitetura de Computadores
Java
MapReduce
Performance
Computação – Teses
Arquitetura de computador – Teses
Compiladores (Programas de computador) – Teses
Linguagem de programação (Computadores) – Teses
topic Compiladores
FPGA
Linguages de Programação
Arquitetura de Computadores
Java
MapReduce
Performance
Computação – Teses
Arquitetura de computador – Teses
Compiladores (Programas de computador) – Teses
Linguagem de programação (Computadores) – Teses
description Recent years have seen a surge in the popularity of Field-Programmable Gate Arrays (FPGAs). Programmers can use them to develop high-performance systems that are not only efficient in time, but also in energy. Yet, programming FPGAs remains a difficult task. Even though there exist today OpenCL interfaces to synthesize such hardware, higher-level programming languages, such as Java, C# or Python remain distant from them. In this work, we describe a compiler, and its supporting runtime environment, that reduces this distance, translating functional code written in Java to the Intel HARP platform. Thus, we bring two contributions. First, the insight that a functional-style library is a good starting point to bridge the gap between high-level programming idioms and FPGAs. Second, the implementation of this system itself, including the compiler, its intermediate representation, and all the runtime support necessary to shield developers from the task of transferring data back and forth between the host CPU and the accelerator. To demonstrate the effectiveness of our system, we have used it to implement different benchmarks, used in image processing and datamining. For large inputs, we can observe consistent 20x speedups over the Java Virtual Machine across all our benchmarks. Depending on the target function that we compile, this speedup can be as large as 280.
publishDate 2019
dc.date.none.fl_str_mv 2019-03-11
2023-04-11T17:08:39Z
2023-04-11T17:08:39Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1843/51804
url http://hdl.handle.net/1843/51804
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv http://creativecommons.org/licenses/by/3.0/pt/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by/3.0/pt/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Minas Gerais
Brasil
ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Programa de Pós-Graduação em Ciência da Computação
UFMG
publisher.none.fl_str_mv Universidade Federal de Minas Gerais
Brasil
ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Programa de Pós-Graduação em Ciência da Computação
UFMG
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFMG
instname:Universidade Federal de Minas Gerais (UFMG)
instacron:UFMG
instname_str Universidade Federal de Minas Gerais (UFMG)
instacron_str UFMG
institution UFMG
reponame_str Repositório Institucional da UFMG
collection Repositório Institucional da UFMG
repository.name.fl_str_mv Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)
repository.mail.fl_str_mv repositorio@ufmg.br
_version_ 1835272276561362944