Stencil-based algorithms represent an important class of computational kernels, whose application domains ranges from physics simulation, to image processing, to finance. Among others, Iterative Stencil Loop (ISL) computations and Convolutional Neural Networks (CNNs) highly rely on this computational patter to extract information from the input data. Indeed, ISLs apply several times the same stencil until convergence, while different CNNs layers leverage stencil computation to extract features from the input image. To efficiently handle the high computational intensity of these workloads, both research and academia are investigating toward the usage of hardware accelerators, such as Graphics Processing Units (GPUs), Field Programmable Gate Arrays (FPGAs) and Application Specific Integrated Circuits (ASICs). Specifically, FPGAs have shown to be an ideal candidate for stencil algorithms, as they can provide a good tradeoff between performance, power-efficiency and flexibility when compared with the other accelerators. Indeed, the flexibility provided by FPGAs allows to implement custom architectures, tailored to the regular computational pattern of the stencil kernels. However, the classical FPGA design flow, which relies on Hardware Description Languages (HDLs) to create the target architecture, is typically a time consuming and error-prone task; even though High Level Synthesiss (HLSs) tools can help hardware designers to speed-up this process by automatically translating an high-level algorithm representation (usually described in C/c++ or OpenCL) in the final hardware circuit, they usually provide suboptimal results in terms of both performance and resource utilization efficiency. Moreover, the ever-growing need of performance enhancement, in context such High Performance Computing (HPC) systems or datacenters, is leading FPGA-based architecture to scale to multiple devices, which permit such computations to benefit from a distributed hardware acceleration. For these reasons, this thesis proposed a library of HDL templates able to compute ISLs and the CNNs feature extraction stage, along with a scalable multi- FPGA architecture, where an arbitrary number of accelerators are daisy-chained through custom Printed Circuit Board (PCB) interconnects. These templates are deeply customizable to allow an easier design flow, and leverage architectural paradigms that guarantee both scalability and performance competitive among the other works present in literature.

Gli algoritmi basati su una computazione di tipo stencil rappresentano un’im- portante classe di kernel computazionali, le cui applicazioni spaziano dalle si- mulazioni di fenomeni fisici, al processamento di immagini, fino ad arrivare al trading finanziario. Tra le altre, gli Iterative Stencil Loops (ISLs) e le Convolu- tional Neural Networks (CNNs) si affidano agli stencil per estrarre significative informazioni a partire da dati in ingresso. Nello specifico, gli ISLs applicano ite- rativamente lo stesso stencil sull’input fino ad arrivare a convergenza, mentre diversi stadi delle CNNs utilizzano questo modello per estrarre particolari carat- teristiche da un’immagine in ingresso. Al fine di gestire al meglio la grande com- plessità computazionale di questi algoritmi, la ricerca industriale ad accademica stanno sperimentando l’utilizzo di acceleratori hardware, come Graphics Proces- sing Units (GPUs), Field Programmable Gate Arrays (FPGAs) and Application Specific Integrated Circuits (ASICs). In particolare, gli FPGAs hanno dimostra- to di essere tra i candidati ideali per le computazioni di tipo stencil, in quanto riescono a fornire un ottimo compromesso tra prestazioni, efficienza energetica e flessibilità rispetto agli altri acceleratori hardware. Infatti, la flessibilità che que- sti dispositivi forniscono è tale da creare architetture ottimizzate per le singole classi di kernel. Tuttavia, il classico flusso di progettazione degli FPGA, che si basa sull’utilizzo di Hardware Description Languages (HDLs) per creare l’archi- tettura desiderata, richiede tipicamente molto tempo per essere finalizzato. No- nostante affidarsi a programmi di High Level Synthesiss (HLSs) possa aiutare a velocizzare questo processo, traducento automaticamente un algoritmo descritto in un linguaggio di alto livello ( come C/C++ o OpenCL) nell’equivalente circuito elettronico, i risultati ottenuti forniscono solitamente risultati subottimali, sia riguardo alle prestazioni che all’efficienza di utilizzo delle risorse. Inoltre, la richiesta di sistemi sempre più performanti, incontesti come l’High Performance Computing (HPC) o i datacenter, portano le architetture basate su FPGA a dover scalare nel numero di disositivi utilizzati, permettendo cosi a tali computazioni di beneficiare delle prestazioni di un sistema distribuito, e quindi di una migliore accelerazione. Per tali motivi, questa tesi propone una libreria di tamplate per FP- GA, ottimizzati per il calcolo di ISLs e CNNs; inoltre, viene presentato un sistema distribuito, basato su una serie di FPGA che comunicano, secondo una topologia daisy-chain, per mezzo di interconnettori basati su Printed Circuit Board (PCB). I template proposti in questa tesi sono largamente customizzabili, al fine di faci- litare lo svliuppo dell’applicazione, e si basano su paradigmi architetturali volti a garantire un’alta scalabilità e prestazioni in linea con altri lavori presenti nello stato dell’arte.

Improving the scalability of multi-FPGA stencil computations through highly customizable HDL templates

REGGIANI, ENRICO
2017/2018

Abstract

Stencil-based algorithms represent an important class of computational kernels, whose application domains ranges from physics simulation, to image processing, to finance. Among others, Iterative Stencil Loop (ISL) computations and Convolutional Neural Networks (CNNs) highly rely on this computational patter to extract information from the input data. Indeed, ISLs apply several times the same stencil until convergence, while different CNNs layers leverage stencil computation to extract features from the input image. To efficiently handle the high computational intensity of these workloads, both research and academia are investigating toward the usage of hardware accelerators, such as Graphics Processing Units (GPUs), Field Programmable Gate Arrays (FPGAs) and Application Specific Integrated Circuits (ASICs). Specifically, FPGAs have shown to be an ideal candidate for stencil algorithms, as they can provide a good tradeoff between performance, power-efficiency and flexibility when compared with the other accelerators. Indeed, the flexibility provided by FPGAs allows to implement custom architectures, tailored to the regular computational pattern of the stencil kernels. However, the classical FPGA design flow, which relies on Hardware Description Languages (HDLs) to create the target architecture, is typically a time consuming and error-prone task; even though High Level Synthesiss (HLSs) tools can help hardware designers to speed-up this process by automatically translating an high-level algorithm representation (usually described in C/c++ or OpenCL) in the final hardware circuit, they usually provide suboptimal results in terms of both performance and resource utilization efficiency. Moreover, the ever-growing need of performance enhancement, in context such High Performance Computing (HPC) systems or datacenters, is leading FPGA-based architecture to scale to multiple devices, which permit such computations to benefit from a distributed hardware acceleration. For these reasons, this thesis proposed a library of HDL templates able to compute ISLs and the CNNs feature extraction stage, along with a scalable multi- FPGA architecture, where an arbitrary number of accelerators are daisy-chained through custom Printed Circuit Board (PCB) interconnects. These templates are deeply customizable to allow an easier design flow, and leverage architectural paradigms that guarantee both scalability and performance competitive among the other works present in literature.
DEL SOZZO, EMANUELE
ING - Scuola di Ingegneria Industriale e dell'Informazione
20-dic-2018
2017/2018
Gli algoritmi basati su una computazione di tipo stencil rappresentano un’im- portante classe di kernel computazionali, le cui applicazioni spaziano dalle si- mulazioni di fenomeni fisici, al processamento di immagini, fino ad arrivare al trading finanziario. Tra le altre, gli Iterative Stencil Loops (ISLs) e le Convolu- tional Neural Networks (CNNs) si affidano agli stencil per estrarre significative informazioni a partire da dati in ingresso. Nello specifico, gli ISLs applicano ite- rativamente lo stesso stencil sull’input fino ad arrivare a convergenza, mentre diversi stadi delle CNNs utilizzano questo modello per estrarre particolari carat- teristiche da un’immagine in ingresso. Al fine di gestire al meglio la grande com- plessità computazionale di questi algoritmi, la ricerca industriale ad accademica stanno sperimentando l’utilizzo di acceleratori hardware, come Graphics Proces- sing Units (GPUs), Field Programmable Gate Arrays (FPGAs) and Application Specific Integrated Circuits (ASICs). In particolare, gli FPGAs hanno dimostra- to di essere tra i candidati ideali per le computazioni di tipo stencil, in quanto riescono a fornire un ottimo compromesso tra prestazioni, efficienza energetica e flessibilità rispetto agli altri acceleratori hardware. Infatti, la flessibilità che que- sti dispositivi forniscono è tale da creare architetture ottimizzate per le singole classi di kernel. Tuttavia, il classico flusso di progettazione degli FPGA, che si basa sull’utilizzo di Hardware Description Languages (HDLs) per creare l’archi- tettura desiderata, richiede tipicamente molto tempo per essere finalizzato. No- nostante affidarsi a programmi di High Level Synthesiss (HLSs) possa aiutare a velocizzare questo processo, traducento automaticamente un algoritmo descritto in un linguaggio di alto livello ( come C/C++ o OpenCL) nell’equivalente circuito elettronico, i risultati ottenuti forniscono solitamente risultati subottimali, sia riguardo alle prestazioni che all’efficienza di utilizzo delle risorse. Inoltre, la richiesta di sistemi sempre più performanti, incontesti come l’High Performance Computing (HPC) o i datacenter, portano le architetture basate su FPGA a dover scalare nel numero di disositivi utilizzati, permettendo cosi a tali computazioni di beneficiare delle prestazioni di un sistema distribuito, e quindi di una migliore accelerazione. Per tali motivi, questa tesi propone una libreria di tamplate per FP- GA, ottimizzati per il calcolo di ISLs e CNNs; inoltre, viene presentato un sistema distribuito, basato su una serie di FPGA che comunicano, secondo una topologia daisy-chain, per mezzo di interconnettori basati su Printed Circuit Board (PCB). I template proposti in questa tesi sono largamente customizzabili, al fine di faci- litare lo svliuppo dell’applicazione, e si basano su paradigmi architetturali volti a garantire un’alta scalabilità e prestazioni in linea con altri lavori presenti nello stato dell’arte.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2018_12_Reggiani.pdf

non accessibile

Descrizione: Testo della tesi
Dimensione 9.64 MB
Formato Adobe PDF
9.64 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/144722