Title :
Automating data reuse in High-Level Synthesis
Author :
Meeus, Wim ; Stroobandt, Dirk
Author_Institution :
Imec, Ghent Univ., Ghent, Belgium
Abstract :
Current High-Level Synthesis (HLS) tools perform excellently for the synthesis of computation kernels, but they often don´t optimize memory bandwidth. As memory access is a bottleneck in many algorithms, the performance of the generated circuit will benefit substantially from memory access optimization. In this paper we present an automated method and a toolchain to detect reuse of array data in loop nests and to build hardware that exploits this data reuse. This saves memory bandwidth and improves circuit performance. We make use of the polyhedral representation of the source program, which makes our method computationally easy. Our software complements the existing HLS flows. Starting from a loop nest written in C, our tool generates a reuse buffer and a loop controller, and preprocesses the loop body for synthesis with an existing HLS tool. Our automated tool produces designs from unoptimized source code that are as efficient as those generated by a commercial HLS tool from manually-optimized source code.
Keywords :
buffer storage; data handling; high level synthesis; source code (software); storage management; HLS tools; array data; circuit performance; computation kernel synthesis; data reuse automation; data reuse buffer generation; high-level synthesis; loop controller; loop nests; manually-optimized source code; memory access; memory access optimization; polyhedral representation; reuse buffer; source program; Algorithm design and analysis; Arrays; Buffer storage; Hardware; Image edge detection; Indexes; Optimization;
Conference_Titel :
Design, Automation and Test in Europe Conference and Exhibition (DATE), 2014
Conference_Location :
Dresden
DOI :
10.7873/DATE.2014.311