Lina: a fast design optimisation tool for software-based FPGA programming (2022)
- Authors:
- Autor USP: PERINA, ANDRE BANNWART - ICMC
- Unidade: ICMC
- Sigla do Departamento: SSC
- DOI: 10.11606/T.55.2022.tde-23082022-101507
- Subjects: CIRCUITOS FPGA; ARQUITETURA DE SOFTWARE; C++ (LINGUAGEM DE PROGRAMAÇÃO); C (LINGUAGEM DE PROGRAMAÇÃO); MONTADORES E COMPILADORES
- Keywords: Design space exploration; Exploração de espaço de projeto; Exploração sem síntese de projeto; High-level synthesis; Síntese de alto nível; Synthesis- less design exploration
- Agências de fomento:
- Language: Inglês
- Abstract: A contínua jornada da indústria de semicondutores levou ao desenvolvimento de diversas arquiteturas alternativas para uma computação eficiente. Field-Programmable Gate Arrays (FPGAs) e Graphics Processing Units (GPUs) são exemplos de dispositivos utilizados para acelerar aplicações. FPGAs são capazes de oferecer um paralelismo massivo para tarefas adequadas quando apropriadamente programados. No entanto, projetar para FPGA não é trivial e requer um conhecimento específico que foge do desenvolvimento usual em software. Como uma alternativa buscando aumentar a programabilidade, ferramentas de Síntese de Alto Nível (do inglês High-Level Synthesis, ou HLS) permitem o uso de linguagens de alto-nível como C/C++/OpenCL para programar FPGAs. No entanto, experimentos preliminares e outros estudos na literatura demonstram que ainda são necessárias diversas modificações no código de alto nível para que os resultados sejam minimamente aceitáveis. Tal aspecto mitiga a democratização e simplificação propostas pelas ferramentas HLS. A contribuição principal desta tese considera C/C++ como linguagem de entrada HLS, e é composta por uma ferramenta de exploração de espaço de projeto acoplada à um estimador denominado Lina. Baseado no estimador Lin-analyzer, Lina usa a execução instrumentada de um código em alto-nível para aproximar o método de compilação do Vivado HLS, um compilador HLS C/C++ para FPGAs da Xilinx. Para um dado kernel C/C++, Lina calcula uma rápida estimativa para métricas detempo de execução e recursos de FPGA ocupados. Junto com diretivas de otimização usadas pelo compilador HLS que o Lina também suporta, a metodologia aqui proposta permite a otimização não apenas do tempo de execução, mas também de recursos lógicos de FPGA. Considerando 16 kernels C/C++ do benchmark PolyBench, as soluções estimadas como ótimas pelo Lina estiveram dentro de 1% das melhores opções consideradas. Uma média de 14-16× de speedup de performance foi atingida, o que representa 70% do valor máximo alcançável considerando os espaços de projeto explorados. Adicionalmente, Lina suporta a exploração de transações com memórias off-chip em busca de otimizações como coalescência, empacotamento de dados, ou até informar sobre potenciais limitações do compilador HLS que possam degradar a performance.
- Imprenta:
- Publisher place: São Carlos
- Date published: 2022
- Data da defesa: 13.06.2022
- Este periódico é de acesso aberto
- Este artigo é de acesso aberto
- URL de acesso aberto
- Cor do Acesso Aberto: gold
- Licença: cc-by-nc-sa
-
ABNT
PERINA, Andre Bannwart. Lina: a fast design optimisation tool for software-based FPGA programming. 2022. Tese (Doutorado) – Universidade de São Paulo, São Carlos, 2022. Disponível em: https://www.teses.usp.br/teses/disponiveis/55/55134/tde-23082022-101507/. Acesso em: 12 jan. 2026. -
APA
Perina, A. B. (2022). Lina: a fast design optimisation tool for software-based FPGA programming (Tese (Doutorado). Universidade de São Paulo, São Carlos. Recuperado de https://www.teses.usp.br/teses/disponiveis/55/55134/tde-23082022-101507/ -
NLM
Perina AB. Lina: a fast design optimisation tool for software-based FPGA programming [Internet]. 2022 ;[citado 2026 jan. 12 ] Available from: https://www.teses.usp.br/teses/disponiveis/55/55134/tde-23082022-101507/ -
Vancouver
Perina AB. Lina: a fast design optimisation tool for software-based FPGA programming [Internet]. 2022 ;[citado 2026 jan. 12 ] Available from: https://www.teses.usp.br/teses/disponiveis/55/55134/tde-23082022-101507/ - Lina: timing-constrained high-level synthesis performance estimator for fast DSE
- Fast resource and timing aware design optimisation for high-level synthesis
- ProfCounter: line-level cycle counter for Xilinx OpenCL high-level synthesis
- Memory aware design optimisation for high-level synthesis
- Mapping estimator for OpenCL heterogeneous accelerators
Informações sobre o DOI: 10.11606/T.55.2022.tde-23082022-101507 (Fonte: oaDOI API)
How to cite
A citação é gerada automaticamente e pode não estar totalmente de acordo com as normas
