LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável

A computação reconfigurável tem se tornado cada vez mais importante em sistemas computacionais embarcados e de alto desempenho. Ela permite níveis de desempenho próximos aos obtidos com circuitos integrados de aplicação específica (ASIC), enquanto ainda mantém flexibilidade de projeto e implementaçã...

Full description

Bibliographic Details
Main Author: Menotti, Ricardo
Other Authors: Cardoso, João Manuel Paiva
Format: Others
Language:pt
Published: Biblioteca Digitais de Teses e Dissertações da USP 2010
Subjects:
Online Access:http://www.teses.usp.br/teses/disponiveis/55/55134/tde-17082010-151100/
id ndltd-usp.br-oai-teses.usp.br-tde-17082010-151100
record_format oai_dc
collection NDLTD
language pt
format Others
sources NDLTD
topic Compiladores
Compilers
Computação reconfigurável
FPGA
FPGA
Reconfigurable computing
spellingShingle Compiladores
Compilers
Computação reconfigurável
FPGA
FPGA
Reconfigurable computing
Menotti, Ricardo
LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável
description A computação reconfigurável tem se tornado cada vez mais importante em sistemas computacionais embarcados e de alto desempenho. Ela permite níveis de desempenho próximos aos obtidos com circuitos integrados de aplicação específica (ASIC), enquanto ainda mantém flexibilidade de projeto e implementação. No entanto, para programar eficientemente os dispositivos, é necessária experiência em desenvolvimento e domínio de linguagem de descrição de hardware (HDL), tais como VHDL ou Verilog. As técnicas empregadas na compilação em alto nível (por exemplo, a partir de programas em C) ainda possuem muitos pontos em aberto a serem resolvidos antes que se possa obter resultados eficientes. Muitos esforços em se obter um mapeamento direto de algoritmos em hardware se concentram em loops, uma vez que eles representam as regiões computacionalmente mais intensivas de muitos programas. Uma técnica particularmente útil para isto é a de loop pipelining, a qual geralmente é adaptada de técnicas de software pipelining. A aplicação dessas técnicas está fortemente relacionada ao escalonamento das instruções, o que frequentemente impede o uso otimizado dos recursos presentes nos FPGAs modernos. Esta tese descreve uma abordagem alternativa para o mapeamento direto de loops descritos em uma linguagem de alto nível para FPGAs. Diferentemente de outras abordagens, esta técnica não é proveniente das técnicas de software pipelining. Nas arquiteturas obtidas o controle das operações é distribuído, tornando desnecessária uma máquina de estados finitos para controlar a ordem das operações, o que permitiu a obtenção de implementações eficientes. A especificação de um bloco de hardware é feita por meio de uma linguagem de domínio específico (LALP), especialmente concebida para suportar a aplicação das técnicas. Embora a sintaxe da linguagem lembre C, ela contém certas construções que permitem intervenções do programador para garantir ou relaxar dependências de dados, conforme necessário, e assim otimizar o desempenho do hardware gerado === Reconfigurable computing is becoming increasingly important in embedded and high-performance computing systems. It allows performance levels close to the ones obtained with Application-Specific Integrated circuits (ASIC), while still keeping design and implementation flexibility. However, to efficiently program devices, one needs the expertise of hardware developers in order master hardware description languages (HDL) such as VHDL or Verilog. Attempts to furnish a high-level compilation flow (e.g., from C programs) still have to address open issues before broader efficient results can be obtained. Many efforts trying to achieve a direct of algorithms into hardware concentrate on loops since they represent the most computationally intensive regions of many application codes. A particularly useful technique for this purpose is loop pipelining, which is usually adapted from software pipelining techniques. The application of this technique is strongly related to instruction scheduling, whic often prevents an optimized use of the resources present in modern FPGAs. This thesis decribes an alternative approach to direct mapping loops described in high-level labguages onto FPGAs. Different from oyher approaches, this technique does not inherit from software pipelining techniques. The control is distributed over operations, thus a finite state machine is not necessary to control the order of operations, allowing efficient harware implementations. The specification of a hardware block is done by means of LALP, a domain specific language specially designed to help the application of the techniques. While the language syntax resembles C, it contains certain constructs that allow programmer interventions to enforce or relax data dependences as needed, and so optimize the performance of the generated hardware
author2 Cardoso, João Manuel Paiva
author_facet Cardoso, João Manuel Paiva
Menotti, Ricardo
author Menotti, Ricardo
author_sort Menotti, Ricardo
title LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável
title_short LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável
title_full LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável
title_fullStr LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável
title_full_unstemmed LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável
title_sort lalp: uma linguagem para exploração do paralelismo de loops em computação reconfigurável
publisher Biblioteca Digitais de Teses e Dissertações da USP
publishDate 2010
url http://www.teses.usp.br/teses/disponiveis/55/55134/tde-17082010-151100/
work_keys_str_mv AT menottiricardo lalpumalinguagemparaexploracaodoparalelismodeloopsemcomputacaoreconfiguravel
AT menottiricardo lalpalanguageforparallelismofloopsexploitationinreconfigurablecomputing
_version_ 1719065283528753152
spelling ndltd-usp.br-oai-teses.usp.br-tde-17082010-1511002019-05-09T20:01:47Z LALP: uma linguagem para exploração do paralelismo de loops em computação reconfigurável LALP: a language for parallelism of loops exploitation in reconfigurable computing Menotti, Ricardo Compiladores Compilers Computação reconfigurável FPGA FPGA Reconfigurable computing A computação reconfigurável tem se tornado cada vez mais importante em sistemas computacionais embarcados e de alto desempenho. Ela permite níveis de desempenho próximos aos obtidos com circuitos integrados de aplicação específica (ASIC), enquanto ainda mantém flexibilidade de projeto e implementação. No entanto, para programar eficientemente os dispositivos, é necessária experiência em desenvolvimento e domínio de linguagem de descrição de hardware (HDL), tais como VHDL ou Verilog. As técnicas empregadas na compilação em alto nível (por exemplo, a partir de programas em C) ainda possuem muitos pontos em aberto a serem resolvidos antes que se possa obter resultados eficientes. Muitos esforços em se obter um mapeamento direto de algoritmos em hardware se concentram em loops, uma vez que eles representam as regiões computacionalmente mais intensivas de muitos programas. Uma técnica particularmente útil para isto é a de loop pipelining, a qual geralmente é adaptada de técnicas de software pipelining. A aplicação dessas técnicas está fortemente relacionada ao escalonamento das instruções, o que frequentemente impede o uso otimizado dos recursos presentes nos FPGAs modernos. Esta tese descreve uma abordagem alternativa para o mapeamento direto de loops descritos em uma linguagem de alto nível para FPGAs. Diferentemente de outras abordagens, esta técnica não é proveniente das técnicas de software pipelining. Nas arquiteturas obtidas o controle das operações é distribuído, tornando desnecessária uma máquina de estados finitos para controlar a ordem das operações, o que permitiu a obtenção de implementações eficientes. A especificação de um bloco de hardware é feita por meio de uma linguagem de domínio específico (LALP), especialmente concebida para suportar a aplicação das técnicas. Embora a sintaxe da linguagem lembre C, ela contém certas construções que permitem intervenções do programador para garantir ou relaxar dependências de dados, conforme necessário, e assim otimizar o desempenho do hardware gerado Reconfigurable computing is becoming increasingly important in embedded and high-performance computing systems. It allows performance levels close to the ones obtained with Application-Specific Integrated circuits (ASIC), while still keeping design and implementation flexibility. However, to efficiently program devices, one needs the expertise of hardware developers in order master hardware description languages (HDL) such as VHDL or Verilog. Attempts to furnish a high-level compilation flow (e.g., from C programs) still have to address open issues before broader efficient results can be obtained. Many efforts trying to achieve a direct of algorithms into hardware concentrate on loops since they represent the most computationally intensive regions of many application codes. A particularly useful technique for this purpose is loop pipelining, which is usually adapted from software pipelining techniques. The application of this technique is strongly related to instruction scheduling, whic often prevents an optimized use of the resources present in modern FPGAs. This thesis decribes an alternative approach to direct mapping loops described in high-level labguages onto FPGAs. Different from oyher approaches, this technique does not inherit from software pipelining techniques. The control is distributed over operations, thus a finite state machine is not necessary to control the order of operations, allowing efficient harware implementations. The specification of a hardware block is done by means of LALP, a domain specific language specially designed to help the application of the techniques. While the language syntax resembles C, it contains certain constructs that allow programmer interventions to enforce or relax data dependences as needed, and so optimize the performance of the generated hardware Biblioteca Digitais de Teses e Dissertações da USP Cardoso, João Manuel Paiva Marques, Eduardo 2010-06-23 Tese de Doutorado application/pdf http://www.teses.usp.br/teses/disponiveis/55/55134/tde-17082010-151100/ pt Liberar o conteúdo para acesso público.