Specialized hardware accelerators are becoming important for increasingly many applications. Thanks to specialization, these accelerators can achieve high performance and energy efficiency but their design is complex and time consuming. This problem is exacerbated when large amounts of data must be processed, like in modern big data and machine learning applications. The designer has not only to optimize the accelerator logic but also produce efficient memory architectures. This requires hardware platform design expertise and months of effort and to obtain truly efficient designs specific application design knowledge is needed as well, and rarely does the kernel developer have both hardware and application expertise. To simplify this process, in this thesis a multi-level compilation flow is proposed that specializes a customizable memory template to match data, application, and technology requirements. The Olympus system generation tool was developed to integrate several memory and data transfer based optimizations automatically, to relieve an application designer from requiring deep hardware design or platform knowledge. Olympus is built using the multi-level intermediate representation (MLIR) compiler framework to promote extensibility of the tool, allowing compatibility with many compiler-front end tools. Designs generated by the Olympus tool integrating these optimizations were demonstrated to achieve 2.7× speedup and 7.0× energy efficiency over a highly optimized vectorized CPU implementation of a computational fluid dynamics (CFD) application and 6.39× speedup and 5.07× energy efficiency over the CPU implementation of a real industrial traffic modeling use case. These designs are generated from a simple description of the accelerator kernels, allowing an application designer to easily create efficient hardware accelerators. This simplicity also allows the designer to perform design space exploration (DSE) as well, notably in the area of data representations. The CFD application achieved 6.7× speedup and 24.5× energy efficiency over the CPU implementation with data representation tuning while incurring only a minimal loss in result accuracy.

Gli acceleratori hardware specializzati stanno diventando importanti per un numero sempre maggiore di applicazioni. Grazie alla specializzazione, questi acceleratori possono raggiungere prestazioni elevate ed efficienza energetica, ma la loro progettazione è complessa e richiede tempo. Questo problema si aggrava quando devono essere elaborate grandi quantità di dati, come nelle moderne applicazioni di big data e machine learning. Il progettista non deve solo ottimizzare la logica dell’acceleratore, ma anche produrre architetture di memoria efficienti. Ciò richiede competenze nella progettazione di piattaforme hardware e mesi di sforzi; inoltre, per ottenere progetti veramente efficienti, è necessaria anche una conoscenza specifica della progettazione delle applicazioni, e raramente lo sviluppatore del kernel possiede sia competenze hardware che applicative. Per semplificare questo processo, in questa tesi viene proposto un flusso di compilazione a più livelli che specializza un modello di memoria personalizzabile per soddisfare i requisiti di dati, applicazione e tecnologia. Lo strumento di generazione del sistema Olympus è stato sviluppato per integrare automaticamente diverse ottimizzazioni basate sulla memoria e sul trasferimento dei dati, in modo da sollevare il progettista dell’applicazione dalla necessità di una profonda conoscenza della progettazione hardware o della piattaforma. Olympus è costruito utilizzando il framework del compilatore MLIR (multi-level intermediate representation) per promuovere l’estensibilità dello strumento, consentendo la compatibilità con molti strumenti di front-end del compilatore. I progetti generati dallo strumento Olympus che integrano queste ottimizzazioni hanno dimostrato di ottenere una velocità di 2,7× e un’efficienza energetica di 7,0× rispetto a un’implementazione vettoriale altamente ottimizzata della CPU di un’applicazione CFD (computational fluid dynamics) e una velocità di 6,39× e un’efficienza energetica di 5,07× rispetto all’implementazione della CPU di un caso d’uso reale di modellazione del traffico industriale. Questi progetti sono generati da una semplice descrizione dei kernel dell’acceleratore, consentendo al progettista di applicazioni di creare facilmente acceleratori hardware efficienti. Questa semplicità consente al progettista di eseguire anche DSE (design space exploration), in particolare nell’area delle rappresentazioni dei dati. L’applicazione CFD ha ottenuto un aumento di velocità di 6,7× e un’efficienza energetica di 24,5× rispetto all’implementazione della CPU con la messa a punto della rappresentazione dei dati, con una perdita minima nell’accuratezza dei risultati.

Design methods for simplifying the creation of high-performance FPGA memory architectures

SOLDAVINI, STEPHANIE
2023/2024

Abstract

Specialized hardware accelerators are becoming important for increasingly many applications. Thanks to specialization, these accelerators can achieve high performance and energy efficiency but their design is complex and time consuming. This problem is exacerbated when large amounts of data must be processed, like in modern big data and machine learning applications. The designer has not only to optimize the accelerator logic but also produce efficient memory architectures. This requires hardware platform design expertise and months of effort and to obtain truly efficient designs specific application design knowledge is needed as well, and rarely does the kernel developer have both hardware and application expertise. To simplify this process, in this thesis a multi-level compilation flow is proposed that specializes a customizable memory template to match data, application, and technology requirements. The Olympus system generation tool was developed to integrate several memory and data transfer based optimizations automatically, to relieve an application designer from requiring deep hardware design or platform knowledge. Olympus is built using the multi-level intermediate representation (MLIR) compiler framework to promote extensibility of the tool, allowing compatibility with many compiler-front end tools. Designs generated by the Olympus tool integrating these optimizations were demonstrated to achieve 2.7× speedup and 7.0× energy efficiency over a highly optimized vectorized CPU implementation of a computational fluid dynamics (CFD) application and 6.39× speedup and 5.07× energy efficiency over the CPU implementation of a real industrial traffic modeling use case. These designs are generated from a simple description of the accelerator kernels, allowing an application designer to easily create efficient hardware accelerators. This simplicity also allows the designer to perform design space exploration (DSE) as well, notably in the area of data representations. The CFD application achieved 6.7× speedup and 24.5× energy efficiency over the CPU implementation with data representation tuning while incurring only a minimal loss in result accuracy.
PIRODDI, LUIGI
CAPPIELLO, CINZIA
15-ott-2024
Design methods for simplifying the creation of high-performance FPGA memory architectures
Gli acceleratori hardware specializzati stanno diventando importanti per un numero sempre maggiore di applicazioni. Grazie alla specializzazione, questi acceleratori possono raggiungere prestazioni elevate ed efficienza energetica, ma la loro progettazione è complessa e richiede tempo. Questo problema si aggrava quando devono essere elaborate grandi quantità di dati, come nelle moderne applicazioni di big data e machine learning. Il progettista non deve solo ottimizzare la logica dell’acceleratore, ma anche produrre architetture di memoria efficienti. Ciò richiede competenze nella progettazione di piattaforme hardware e mesi di sforzi; inoltre, per ottenere progetti veramente efficienti, è necessaria anche una conoscenza specifica della progettazione delle applicazioni, e raramente lo sviluppatore del kernel possiede sia competenze hardware che applicative. Per semplificare questo processo, in questa tesi viene proposto un flusso di compilazione a più livelli che specializza un modello di memoria personalizzabile per soddisfare i requisiti di dati, applicazione e tecnologia. Lo strumento di generazione del sistema Olympus è stato sviluppato per integrare automaticamente diverse ottimizzazioni basate sulla memoria e sul trasferimento dei dati, in modo da sollevare il progettista dell’applicazione dalla necessità di una profonda conoscenza della progettazione hardware o della piattaforma. Olympus è costruito utilizzando il framework del compilatore MLIR (multi-level intermediate representation) per promuovere l’estensibilità dello strumento, consentendo la compatibilità con molti strumenti di front-end del compilatore. I progetti generati dallo strumento Olympus che integrano queste ottimizzazioni hanno dimostrato di ottenere una velocità di 2,7× e un’efficienza energetica di 7,0× rispetto a un’implementazione vettoriale altamente ottimizzata della CPU di un’applicazione CFD (computational fluid dynamics) e una velocità di 6,39× e un’efficienza energetica di 5,07× rispetto all’implementazione della CPU di un caso d’uso reale di modellazione del traffico industriale. Questi progetti sono generati da una semplice descrizione dei kernel dell’acceleratore, consentendo al progettista di applicazioni di creare facilmente acceleratori hardware efficienti. Questa semplicità consente al progettista di eseguire anche DSE (design space exploration), in particolare nell’area delle rappresentazioni dei dati. L’applicazione CFD ha ottenuto un aumento di velocità di 6,7× e un’efficienza energetica di 24,5× rispetto all’implementazione della CPU con la messa a punto della rappresentazione dei dati, con una perdita minima nell’accuratezza dei risultati.
File allegati
File Dimensione Formato  
2024_10_Soldavini.pdf

accessibile in internet per tutti

Descrizione: Text of the thesis
Dimensione 2.49 MB
Formato Adobe PDF
2.49 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/228892