The possibility to implement Instruction Level Parallelism through pipelined computation flows has been one of the main assets for accelerating computa- tional throughput in an efficient way for a long time. This approach, widely applied to traditional processing units, has been adopted by modern High Level Synthesis tools in order to build faster and more efficient accelerators. While in origin the main application for HLS accelerators was in the im- plementation of signal processing algorithms, which are characterized by a linear execution flow, the increasing popularity of this solution has resulted in an interest for the efficient synthesis of more complex applications. In this work, two different architectural approaches developed for the PandA-bambu framework are presented. The first one is targeted to the synthesis of straightforward specifications, characterized by a regular execu- tion flow with little control requirements. The second instead is targeted at more complex execution flows, in particular to the synthesis of loops con- taining unbounded operations. It provides a viable solution for a wider field of applications, and attempts to minimize the performance loss which would occur from the inevitable stalls introduced by variable-latency operations in a pipelined architecture. Two different architectures have been developed in order to provide choice to the user depending on its goal, be it the efficient expression of some ILP present into its design with a simple pipelined func- tion, or a balance between ILP acceleration and feasibility of a result with a stallable pipelined loop.

La possibilità di implementare il Parallelismo a Livello di Istruzione attraverso flussi di computazione pipelined è stata per molto tempo una delle principali risorse per accelerare il throughput di una computazione in modo efficiente. Questo approccio, ampiamente applicato ai processori tradizionali, è stato adottato dai moderni strumenti di sintesi ad alto livello (HLS) per costruire acceleratori più veloci ed efficienti. Sebbene in origine l'applicazione principale per gli acceleratori sintetizzati in maniera automatica era nell'implementazione di algoritmi per l'elaborazione dei segnali, che sono caratterizzati da un flusso di esecuzione regolare, la crescente popolarità di queste soluzioni ha portato ad un maggior interesse nella sintesi di applicazioni più complesse. In questo elaborato sono proposte due diverse architetture sviluppate per il framework di PandA-bambu. La prima è orientata alla sintesi di specifiche semplici, caratterizzate da flussi di esecuzione regolari con poche necessità di controllo. La seconda invece è orientata a flussi di esecuzione più complessi, in particolare alla sintesi di loop contenenti operazioni a latenza variabile. Fornisce una soluzione praticabile per un campo di applicazioni più ampio, e cerca di minimizzare la perdita di prestazioni che si verifica a causa degli inevitabili stalli introdotti dalle operazioni a latenza variabile in una architettura pipelined. Le due architetture sono state sviluppate per fornire una scelta al programmatore in base al suo obiettivo, sia esso l'espressione del parallelismo a livello di istruzione presente nel suo design con una funzione semplice e pipelined, oppure un equilibrio tra l'accelerazione del parallelismo a livello di istruzione e la fattibilità del risultato con un loop pipelined.

Pipelined architectures for HLS generated designs

POZZONI, LUCA EZIO
2018/2019

Abstract

The possibility to implement Instruction Level Parallelism through pipelined computation flows has been one of the main assets for accelerating computa- tional throughput in an efficient way for a long time. This approach, widely applied to traditional processing units, has been adopted by modern High Level Synthesis tools in order to build faster and more efficient accelerators. While in origin the main application for HLS accelerators was in the im- plementation of signal processing algorithms, which are characterized by a linear execution flow, the increasing popularity of this solution has resulted in an interest for the efficient synthesis of more complex applications. In this work, two different architectural approaches developed for the PandA-bambu framework are presented. The first one is targeted to the synthesis of straightforward specifications, characterized by a regular execu- tion flow with little control requirements. The second instead is targeted at more complex execution flows, in particular to the synthesis of loops con- taining unbounded operations. It provides a viable solution for a wider field of applications, and attempts to minimize the performance loss which would occur from the inevitable stalls introduced by variable-latency operations in a pipelined architecture. Two different architectures have been developed in order to provide choice to the user depending on its goal, be it the efficient expression of some ILP present into its design with a simple pipelined func- tion, or a balance between ILP acceleration and feasibility of a result with a stallable pipelined loop.
ING - Scuola di Ingegneria Industriale e dell'Informazione
29-apr-2020
2018/2019
La possibilità di implementare il Parallelismo a Livello di Istruzione attraverso flussi di computazione pipelined è stata per molto tempo una delle principali risorse per accelerare il throughput di una computazione in modo efficiente. Questo approccio, ampiamente applicato ai processori tradizionali, è stato adottato dai moderni strumenti di sintesi ad alto livello (HLS) per costruire acceleratori più veloci ed efficienti. Sebbene in origine l'applicazione principale per gli acceleratori sintetizzati in maniera automatica era nell'implementazione di algoritmi per l'elaborazione dei segnali, che sono caratterizzati da un flusso di esecuzione regolare, la crescente popolarità di queste soluzioni ha portato ad un maggior interesse nella sintesi di applicazioni più complesse. In questo elaborato sono proposte due diverse architetture sviluppate per il framework di PandA-bambu. La prima è orientata alla sintesi di specifiche semplici, caratterizzate da flussi di esecuzione regolari con poche necessità di controllo. La seconda invece è orientata a flussi di esecuzione più complessi, in particolare alla sintesi di loop contenenti operazioni a latenza variabile. Fornisce una soluzione praticabile per un campo di applicazioni più ampio, e cerca di minimizzare la perdita di prestazioni che si verifica a causa degli inevitabili stalli introdotti dalle operazioni a latenza variabile in una architettura pipelined. Le due architetture sono state sviluppate per fornire una scelta al programmatore in base al suo obiettivo, sia esso l'espressione del parallelismo a livello di istruzione presente nel suo design con una funzione semplice e pipelined, oppure un equilibrio tra l'accelerazione del parallelismo a livello di istruzione e la fattibilità del risultato con un loop pipelined.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
tesi.pdf

non accessibile

Dimensione 1.6 MB
Formato Adobe PDF
1.6 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/154448