In current years we are assisting at a new era of computer architectures, in which the need for energy-efficiency is pushing towards hardware specialization and the adoption of heterogeneous systems. This trend is reflected in the High Performance Computing (HPC) domain that, in order to sustain the ever-increasing demand for performance and energy efficiency, started to embrace heterogeneity and to consider hardware accelerators such as Graphics Processing Units (GPUs), Field Programmable Gate Arrays (FPGAs) and dedicated Application-Specific Integrated Circuits (ASICs). Among the available solutions, FPGAs, thanks to their advancements, currently represent a very promising candidate, offering a compelling trade-off between efficiency and flexibility that is arguably the most beneficial. FPGA devices have also attained renewed interests in recent years as hardware accelerators within the cloud domain. Tangible examples of this are the Amazon EC2 F1 instances, which are compute instances equipped with Xilinx UltraScale+ FPGA boards. The possibility to access FPGAs as on demand resources is a key step towards the democratization of the technology and to expose it to a wide range of application domains. Despite the potential benefits given by embracing reconfigurable hardware both in the HPC and cloud contexts, we notice that one of the main limiting factor to the widespread adoption of FPGAs is complexity in programmability, as well as the effort required to port a pure software solution to an efficient hardware-software implementation targeting reconfigurable heterogeneous systems. The main objective of this dissertation is the development of CAD as an Adaptive Open-platform Service (CAOS), a platform able to guide the application developer in the implementation of efficient hardware-software solutions for high performance reconfigurable systems. The platform aims at assisting the designer starting from the high level analysis of the code, towards the definition of the functionalities to be accelerated on the reconfigurable nodes. Furthermore, the platform guides the user in the selection of a suitable architectural template for the FPGA devices and the final implementation of the system together with its runtime support. Finally, CAOS has been designed to facilitate the integration of external contributions and to foster research on the development of Computer Aided Design (CAD) tools for accelerating software applications on FPGA-based systems.
Negli ultimi anni stiamo assistendo ad una nuova era nello sviluppo delle architetture dei calcolatori, nella quale la necessità di soluzioni energeticamente efficienti, sta stimolando la ricerca verso hardware specializzato e l’utilizzo di sistemi eterogenei. Questo trend si riflette anche nel dominio HPC che, dovendo sostenere una richiesta di prestazioni ed efficienza energetica in crescente aumento, ha iniziato a considerare l’uso di sistemi eterogenei e di acceleratori hardware come GPU, FPGA ed ASIC. Tra le diverse soluzioni disponibili, le FPGA, grazie ai recenti avanzamenti tecnologici, rappresentano al momento un candidato molto promettente, offrendo un bilanciamento competitivo tra efficienza e flessibilità. Negli ultimi anni, i dispositivi FPGA hanno ottenuto una rinnovata attenzione nell’ambito cloud. Esempi tangibili sono le istanze Amazon EC2 F1, ovvero istanze di computazione connesse con schede Xilinx UltraScale+. La possibilità di accedere alle FPGA come risorse on demand rappresenta un passo fondamentale verso la democratizzazione di questa tecnologia e verso il suo utilizzo in un ampio insieme di domini applicativi. Nonostante i potenziali benefici dati dall’utilizzo di hardware riconfigurabile sia nell’ambito HPC che in quello cloud, notiamo che uno dei maggiori fattori limitanti alla diffusione delle FPGA è la loro complessità nell’essere programmate e la difficoltà nello sfruttare la tecnologia per implementare sistemi hardware-software efficienti partendo da una pura implementazione software. L’obiettivo principale di questa tesi è lo sviluppo di CAOS, una piattaforma in grado di guidare lo sviluppatore verso l’implementazione di soluzioni hardware-software efficienti per sistemi riconfigurabili ad alte prestazioni. La piattaforma mira ad assistere lo sviluppatore partendo dalla analisi di alto livello del codice e guidandolo verso la definizione delle funzionalità da accelerare sui nodi di computazione riconfigurabili. Infine, supporta lo sviluppatore nella selezione di un template architetturale per realizzare l’acceleratore e nell’implementazione del sistema insieme al supporto runtime. Inoltre, il design di CAOS è stato realizzato con l’obiettivo di facilitare l’integrazione di contributi esterni e di promuovere la ricerca nello sviluppo di nuovi strumenti per l’accelerazione di applicazioni su sistemi basati su FPGA.
CAOS: CAD as an Adaptive Open-platform Service for high performance reconfigurable systems
RABOZZI, MARCO
Abstract
In current years we are assisting at a new era of computer architectures, in which the need for energy-efficiency is pushing towards hardware specialization and the adoption of heterogeneous systems. This trend is reflected in the High Performance Computing (HPC) domain that, in order to sustain the ever-increasing demand for performance and energy efficiency, started to embrace heterogeneity and to consider hardware accelerators such as Graphics Processing Units (GPUs), Field Programmable Gate Arrays (FPGAs) and dedicated Application-Specific Integrated Circuits (ASICs). Among the available solutions, FPGAs, thanks to their advancements, currently represent a very promising candidate, offering a compelling trade-off between efficiency and flexibility that is arguably the most beneficial. FPGA devices have also attained renewed interests in recent years as hardware accelerators within the cloud domain. Tangible examples of this are the Amazon EC2 F1 instances, which are compute instances equipped with Xilinx UltraScale+ FPGA boards. The possibility to access FPGAs as on demand resources is a key step towards the democratization of the technology and to expose it to a wide range of application domains. Despite the potential benefits given by embracing reconfigurable hardware both in the HPC and cloud contexts, we notice that one of the main limiting factor to the widespread adoption of FPGAs is complexity in programmability, as well as the effort required to port a pure software solution to an efficient hardware-software implementation targeting reconfigurable heterogeneous systems. The main objective of this dissertation is the development of CAD as an Adaptive Open-platform Service (CAOS), a platform able to guide the application developer in the implementation of efficient hardware-software solutions for high performance reconfigurable systems. The platform aims at assisting the designer starting from the high level analysis of the code, towards the definition of the functionalities to be accelerated on the reconfigurable nodes. Furthermore, the platform guides the user in the selection of a suitable architectural template for the FPGA devices and the final implementation of the system together with its runtime support. Finally, CAOS has been designed to facilitate the integration of external contributions and to foster research on the development of Computer Aided Design (CAD) tools for accelerating software applications on FPGA-based systems.File | Dimensione | Formato | |
---|---|---|---|
2019_02_PhD_Rabozzi.pdf
Open Access dal 22/01/2020
Descrizione: Testo della tesi
Dimensione
4.66 MB
Formato
Adobe PDF
|
4.66 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/144275