Altmetric
Dataset for EASY: Efficient Arbiter SYnthesis from Multi-threaded Code
Title: | Dataset for EASY: Efficient Arbiter SYnthesis from Multi-threaded Code |
Authors: | Cheng, J Fleming, S Constantinides, G Yuting, C Anderson, J |
Item Type: | Dataset |
Abstract: | High-Level Synthesis (HLS) tools automatically transform a high level specification of a circuit into a low-level RTL description. Traditionally, HLS tools have operated on sequential code, however in recent years there has been a drive to synthesize multi-threaded code. A major challenge facing HLS tools in this context is how to automatically partition memory amongst parallel threads to fully exploit the bandwidth available on an FPGA device and avoid memory contention. Current automatic memory partitioning techniques have inefficient arbitration due to conservative assumptions regarding which threads may access a given memory bank. In this paper, we address this problem through formal verification techniques, permitting a less conservative, yet provably correct circuit to be generated. We perform a static analysis on the code to determine which memory banks are shared by which threads. This analysis enables us to optimize the arbitration efficiency of the generated circuit. We apply our approach to the LegUp HLS tool and show for a set of typical application benchmarks we can achieve up to 87% area savings, and 39% execution time improvement, with little additional compilation time. High-Level Synthesis (HLS) tools automatically transform a high level specification of a circuit into a low-level RTL description. Traditionally, HLS tools have operated on sequential code, however in recent years there has been a drive to synthesize multi-threaded code. A major challenge facing HLS tools in this context is how to automatically partition memory amongst parallel threads to fully exploit the bandwidth available on an FPGA device and avoid memory contention. Current automatic memory partitioning techniques have inefficient arbitration due to conservative assumptions regarding which threads may access a given memory bank. In this paper, we address this problem through formal verification techniques, permitting a less conservative, yet provably correct circuit to be generated. We perform a static analysis on the code to determine which memory banks are shared by which threads. This analysis enables us to optimize the arbitration efficiency of the generated circuit. We apply our approach to the LegUp HLS tool and show for a set of typical application benchmarks we can achieve up to 87% area savings, and 39% execution time improvement, with little additional compilation time. |
Issue Date: | 26-Nov-2018 |
URI: | http://hdl.handle.net/10044/1/64713 |
DOI: | https://doi.org/10.5281/zenodo.1523170 |
Copyright Statement: | http://creativecommons.org/licenses/by/4.0/legalcode |
Keywords: | High-level synthesis Memory systems reconfigurable computing |
Appears in Collections: | Faculty of Engineering - Research Data |