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