INESC TEC
INESC TEC
INESC TEC
Resultados da pesquisa para:
Filtrar os seus resultados

0 Resultados

CHARD

INESC TEC

Sobre a Tecnologia

Otimização automática do código C para aceleradores de hardware baseados em FPGA.

O CHARD efetua uma reestruturação automática, transformando o código C em DGF e aplicando otimizações para gerar código C com diretivas para HLS - focadas em aceleradores de hardware baseados em FPGA.

Inventores
Afonso Soares Ferreira
João Paiva Cardoso
João Paiva Cardoso
Contactos de Licenciamento
Daniel Marques Vasconcelos
Daniel Marques Vasconcelos

Problema

Programar FPGAs para aceleração por hardware é uma tarefa complexa e demorada, que exige competências e ferramentas específicas, diferentes das habitualmente utilizadas no desenvolvimento de software.


Além disso, embora as ferramentas atuais de High-Level Synthesis (HLS) permitam aos programadores usar linguagens semelhantes ao C para programar FPGAs, continuam a requerer conhecimentos de hardware, bem como transformações manuais de código e diretivas, para gerar implementações de hardware eficientes.


Isto tem impacto na produtividade, no desempenho e na eficiência energética dos sistemas baseados em FPGA, especialmente em aplicações que envolvem computações intensivas em dados e paralelismo, como o processamento de imagem, aprendizagem automática (machine learning) e algoritmos de processamento digital de sinal (DSP).

Solução

A nossa solução é o CHARD, um software que reestrutura automaticamente código, transformando código C num grafo de fluxo de dados (Dataflow Graph – DFG) e aplicando otimizações ao grafo para gerar código C com diretivas de High-Level Synthesis (HLS), destinado a aceleradores por hardware baseados em FPGA.


Esta tecnologia tem como objetivo permitir que os programadores de software possam programar FPGAs de forma mais simples e eficiente, sem necessidade de conhecimentos aprofundados de design de hardware ou de ferramentas HLS.


A tecnologia baseia-se num frontend flexível, capaz de lidar com diferentes linguagens de entrada, e num backend que implementa várias transformações e otimizações no grafo, como folding, unfolding, pipelining, otimizações aritméticas, particionamento de arrays e reutilização de dados.


O CHARD está implementado num framework que consegue gerar automaticamente código C otimizado para HLS, a partir de execution traces das funções críticas de entrada, alcançando acelerações de 30 a 100 vezes (em comparação com o código C original não modificado) e entre 2 a 15 vezes mais rápido (em comparação com código C otimizado com diretivas do Vivado HLS).

Benefícios

Versatilidade

Suporta diferentes linguagens de programação de entrada

Fácil de usar

Instruções mais simples do que as ferramentas HLS, eliminando a necessidade de conhecimentos aprofundados em HLS

Robustez

Preparado para reestruturação de código altamente complexa e imune a transformações específicas não incluídas

Desempenho

Geração automática de código C otimizado com acelerações significativas

Casos de Uso

Hardware de Síntese de Alto Nível (HLS) para FPGAs

Detalhes da Tecnologia

Direitos Comerciais
O INESC TEC tem os direitos exclusivos
Estado
Disponível
Área

Eletrónica e Fotónica

Ciência de Computadores

Setores
Transformação digital 
Publicações Científicas

Graph-Based Code Restructuring Targeting HLS for FPGAs

Applied reconfigurable computing