Function reuse on a multi core VLIW soft core processor
Autor(a) principal: | |
---|---|
Data de Publicação: | 2018 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRGS |
Texto Completo: | http://hdl.handle.net/10183/196912 |
Resumo: | Processadores modernos contém vários módulos específicos e multiplos núcleos para garantir desempenho em uma variedade de aplicações. Quando um projeto de processador depende de time-to-market e customização de arquitetura, FPGAS são frequentemente utilizados como a plataforma para a implementação. Entretando, para processadores baseados em FPGAs, esses módulos podem exceder a capacidade do dispositivo alvo, dadas as limitações de recursos dos FPGAs, de maneira que algumas funcionalidades precisam ser mapeadas para o domínio de software, mais lento. Da mesma forma, exploramos o fato de que projetos lógicos geralmente sub-utilizam a quantidade disponível de BRAMs, blocos de memória embarcados nos FPGAs. Como alternativa, propomos um mecanismo de reúso em hardware de baixo custo que pode otimizar a execução de programas. Isso é obtido ao salvarmos os parâmetros de entrada e valores de retorno de funções recorrentes, em uma tabela de reúso implementada em BRAM de maneira que as funções possam ser reutilizadas em chamadas futuras, evitando a sua reexecução, e acelerando a aplicação. A técnica foi implementada em linguagem de descrição de hardware e adicionada à um processador VLIW 4-issue. Como estudo de caso, otimizamos seis aplicações que usam uma biblioteca soft-float para simular uma unidade de ponto-flutuante em software, atingindo 1.23x de aceleração geométrica média. A análise foi estendida para um ambiente multinúcleo, o que foi feito com um simulador construído para este trabalho, onde observou-se os benefícios de compartilhar a tabela de reúso entre aplicações similares executando sobre dados diferentes. Compartilhar a tabela se mostrou promissor, por exemplo, levando uma das aplicações à ganhos de 1.9x em contra partida de 1.25x se a tabela não tivesse sido compartilhada. Além disso, apresentamos como o mecanismo pode ser facilmente melhorado, de maneira que o reúso de funções faça uso da computação aproximativa, aumentando o número de cenários onde o reúso de funções é benéfico e atingindo 1.52x de aceleração em uma aplicação de filtro de imagem, ao custo de qualidade. |
id |
UFRGS-2_25147e423e74fd43266322b24a87ad47 |
---|---|
oai_identifier_str |
oai:www.lume.ufrgs.br:10183/196912 |
network_acronym_str |
UFRGS-2 |
network_name_str |
Repositório Institucional da UFRGS |
repository_id_str |
|
spelling |
Becker, Pedro Henrique ExenbergerBeck Filho, Antonio Carlos SchneiderSartor, Anderson Luiz2019-07-13T02:35:55Z2018http://hdl.handle.net/10183/196912001065344Processadores modernos contém vários módulos específicos e multiplos núcleos para garantir desempenho em uma variedade de aplicações. Quando um projeto de processador depende de time-to-market e customização de arquitetura, FPGAS são frequentemente utilizados como a plataforma para a implementação. Entretando, para processadores baseados em FPGAs, esses módulos podem exceder a capacidade do dispositivo alvo, dadas as limitações de recursos dos FPGAs, de maneira que algumas funcionalidades precisam ser mapeadas para o domínio de software, mais lento. Da mesma forma, exploramos o fato de que projetos lógicos geralmente sub-utilizam a quantidade disponível de BRAMs, blocos de memória embarcados nos FPGAs. Como alternativa, propomos um mecanismo de reúso em hardware de baixo custo que pode otimizar a execução de programas. Isso é obtido ao salvarmos os parâmetros de entrada e valores de retorno de funções recorrentes, em uma tabela de reúso implementada em BRAM de maneira que as funções possam ser reutilizadas em chamadas futuras, evitando a sua reexecução, e acelerando a aplicação. A técnica foi implementada em linguagem de descrição de hardware e adicionada à um processador VLIW 4-issue. Como estudo de caso, otimizamos seis aplicações que usam uma biblioteca soft-float para simular uma unidade de ponto-flutuante em software, atingindo 1.23x de aceleração geométrica média. A análise foi estendida para um ambiente multinúcleo, o que foi feito com um simulador construído para este trabalho, onde observou-se os benefícios de compartilhar a tabela de reúso entre aplicações similares executando sobre dados diferentes. Compartilhar a tabela se mostrou promissor, por exemplo, levando uma das aplicações à ganhos de 1.9x em contra partida de 1.25x se a tabela não tivesse sido compartilhada. Além disso, apresentamos como o mecanismo pode ser facilmente melhorado, de maneira que o reúso de funções faça uso da computação aproximativa, aumentando o número de cenários onde o reúso de funções é benéfico e atingindo 1.52x de aceleração em uma aplicação de filtro de imagem, ao custo de qualidade.Modern processors contain several specific hardware modules and multiple cores to ensure performance on a wide range of applications. When a project needs a processor regarding time to market and architecture customization, FPGAs are often used as the implementation platform. However, for FPGA-based processors, those modules may not fit in the target device, because of FPGA’s resource constraints, so their functionalities must be mapped into the much slower software domain. In the same way, we exploit the fact that logic-driven designs usually underuse available BRAMs, memory blocks embedded in FPGAs. As an alternative, we propose a low-cost hardware-based function reuse mechanism, which can optimize software execution. This is accomplished by saving the inputs and outputs of the most recurring functions in a BRAM-based reuse table, so they can be reused in the next function calls, skipping actual execution, and improving performance. The technique was implemented in HDL and was coupled to a 4-issue VLIW processor. As a case study, we optimized six applications that use a soft-float library to emulate a floating-point unit in software, achieving 1.23x of geomean speedup. The analysis was extended to a multi-core environment, which was done with a simulator built for this work, where we observed the benefits of sharing the reuse table among similar applications running with different inputs. Sharing the reuse table proven promising, for example, leading one application to 1.9x speedup instead of 1.25x if the reuse table was not shared. Also, we present how the mechanism can be easily enhanced, so function reuse embraces the concept of approximate computing, increasing the scenarios where its use is beneficial and achieving 1.52x speedup in single-core image filter application at the cost of output quality.application/pdfporArquitetura : ComputadoresFPGAsMulti-core systemsFunction reuseSoft-core processorsFunction reuse on a multi core VLIW soft core processorReuso de Funções em Processadores Soft-Cores VLIW Multi-Núcleo info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2018Ciência da Computação: Ênfase em Engenharia da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001065344.pdf.txt001065344.pdf.txtExtracted Texttext/plain143913http://www.lume.ufrgs.br/bitstream/10183/196912/2/001065344.pdf.txtaac0661560baaf2bf578c78d793eab3aMD52ORIGINAL001065344.pdfTexto completo (inglês)application/pdf3405714http://www.lume.ufrgs.br/bitstream/10183/196912/1/001065344.pdf214ad40b3b7084fadaef7876aec9f857MD5110183/1969122019-07-14 02:36:57.374009oai:www.lume.ufrgs.br:10183/196912Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2019-07-14T05:36:57Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false |
dc.title.pt_BR.fl_str_mv |
Function reuse on a multi core VLIW soft core processor |
dc.title.alternative.pt.fl_str_mv |
Reuso de Funções em Processadores Soft-Cores VLIW Multi-Núcleo |
title |
Function reuse on a multi core VLIW soft core processor |
spellingShingle |
Function reuse on a multi core VLIW soft core processor Becker, Pedro Henrique Exenberger Arquitetura : Computadores FPGAs Multi-core systems Function reuse Soft-core processors |
title_short |
Function reuse on a multi core VLIW soft core processor |
title_full |
Function reuse on a multi core VLIW soft core processor |
title_fullStr |
Function reuse on a multi core VLIW soft core processor |
title_full_unstemmed |
Function reuse on a multi core VLIW soft core processor |
title_sort |
Function reuse on a multi core VLIW soft core processor |
author |
Becker, Pedro Henrique Exenberger |
author_facet |
Becker, Pedro Henrique Exenberger |
author_role |
author |
dc.contributor.author.fl_str_mv |
Becker, Pedro Henrique Exenberger |
dc.contributor.advisor1.fl_str_mv |
Beck Filho, Antonio Carlos Schneider |
dc.contributor.advisor-co1.fl_str_mv |
Sartor, Anderson Luiz |
contributor_str_mv |
Beck Filho, Antonio Carlos Schneider Sartor, Anderson Luiz |
dc.subject.por.fl_str_mv |
Arquitetura : Computadores |
topic |
Arquitetura : Computadores FPGAs Multi-core systems Function reuse Soft-core processors |
dc.subject.eng.fl_str_mv |
FPGAs Multi-core systems Function reuse Soft-core processors |
description |
Processadores modernos contém vários módulos específicos e multiplos núcleos para garantir desempenho em uma variedade de aplicações. Quando um projeto de processador depende de time-to-market e customização de arquitetura, FPGAS são frequentemente utilizados como a plataforma para a implementação. Entretando, para processadores baseados em FPGAs, esses módulos podem exceder a capacidade do dispositivo alvo, dadas as limitações de recursos dos FPGAs, de maneira que algumas funcionalidades precisam ser mapeadas para o domínio de software, mais lento. Da mesma forma, exploramos o fato de que projetos lógicos geralmente sub-utilizam a quantidade disponível de BRAMs, blocos de memória embarcados nos FPGAs. Como alternativa, propomos um mecanismo de reúso em hardware de baixo custo que pode otimizar a execução de programas. Isso é obtido ao salvarmos os parâmetros de entrada e valores de retorno de funções recorrentes, em uma tabela de reúso implementada em BRAM de maneira que as funções possam ser reutilizadas em chamadas futuras, evitando a sua reexecução, e acelerando a aplicação. A técnica foi implementada em linguagem de descrição de hardware e adicionada à um processador VLIW 4-issue. Como estudo de caso, otimizamos seis aplicações que usam uma biblioteca soft-float para simular uma unidade de ponto-flutuante em software, atingindo 1.23x de aceleração geométrica média. A análise foi estendida para um ambiente multinúcleo, o que foi feito com um simulador construído para este trabalho, onde observou-se os benefícios de compartilhar a tabela de reúso entre aplicações similares executando sobre dados diferentes. Compartilhar a tabela se mostrou promissor, por exemplo, levando uma das aplicações à ganhos de 1.9x em contra partida de 1.25x se a tabela não tivesse sido compartilhada. Além disso, apresentamos como o mecanismo pode ser facilmente melhorado, de maneira que o reúso de funções faça uso da computação aproximativa, aumentando o número de cenários onde o reúso de funções é benéfico e atingindo 1.52x de aceleração em uma aplicação de filtro de imagem, ao custo de qualidade. |
publishDate |
2018 |
dc.date.issued.fl_str_mv |
2018 |
dc.date.accessioned.fl_str_mv |
2019-07-13T02:35:55Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
bachelorThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10183/196912 |
dc.identifier.nrb.pt_BR.fl_str_mv |
001065344 |
url |
http://hdl.handle.net/10183/196912 |
identifier_str_mv |
001065344 |
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.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRGS instname:Universidade Federal do Rio Grande do Sul (UFRGS) instacron:UFRGS |
instname_str |
Universidade Federal do Rio Grande do Sul (UFRGS) |
instacron_str |
UFRGS |
institution |
UFRGS |
reponame_str |
Repositório Institucional da UFRGS |
collection |
Repositório Institucional da UFRGS |
bitstream.url.fl_str_mv |
http://www.lume.ufrgs.br/bitstream/10183/196912/2/001065344.pdf.txt http://www.lume.ufrgs.br/bitstream/10183/196912/1/001065344.pdf |
bitstream.checksum.fl_str_mv |
aac0661560baaf2bf578c78d793eab3a 214ad40b3b7084fadaef7876aec9f857 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS) |
repository.mail.fl_str_mv |
|
_version_ |
1815447244323684352 |