Title :
Separation Logic-Assisted Code Transformations for Efficient High-Level Synthesis
Author :
Winterstein, Felix ; Bayliss, Samuel ; Constantinides, George A.
Author_Institution :
Ground Station Syst. Div., Eur. Space Agency, Darmstadt, Germany
Abstract :
The capabilities of modern FPGAs permit the mapping of increasingly complex applications into reconfigurable hardware. High-level synthesis (HLS) promises a significant shortening of the FPGA design cycle by raising the abstraction level of the design entry to high-level languages such as C/C++. Applications using dynamic, pointer-based data structures and dynamic memory allocation, however, remain difficult to implement well, yet such constructs are widely used in software. Automated optimizations that aim to leverage the increased memory bandwidth of FPGAs by distributing the application data over separate banks of on-chip memory are often ineffective in the presence of dynamic data structures, due to the lack of an automated analysis of pointer-based memory accesses. In this work, we take a step towards closing this gap. We present a static analysis for pointer-manipulating programs which automatically splits heap-allocated data structures into disjoint, independent regions. The analysis leverages recent advances in separation logic, a theoretical framework for reasoning about heap-allocated data which has been successfully applied in recent software verification tools. Our algorithm focuses on dynamic data structures accessed in loops and is accompanied by automated source-to-source transformations which enable automatic loop parallelization and memory partitioning by off-the-shelf HLS tools. We demonstrate the successful loop parallelization and memory partitioning by our tool flow using three real-life applications which build, traverse, update and dispose dynamically allocated data structures. Our case studies, comparing the automatically parallelized to the non-parallelized HLS implementations, show an average latency reduction by a factor of 2.5 across our benchmarks.
Keywords :
field programmable gate arrays; formal verification; high level languages; high level synthesis; reconfigurable architectures; C/C++; FPGA; automated analysis; automated optimizations; automated source-to-source transformations; automatic loop parallelization; average latency reduction; dynamic data structures; dynamic memory allocation; heap-allocated data structures; high level languages; high level synthesis; memory bandwidth; memory partitioning; off-the-shelf HLS tools; on-chip memory; pointer-based data structures; pointer-based memory accesses; pointer-manipulating programs; reconfigurable hardware; separation logic-assisted code transformations; software verification tools; static analysis; tool flow; Data structures; Dynamic scheduling; Field programmable gate arrays; Parallel processing; Partitioning algorithms; Resource management; System-on-chip; FPGA; dynamic data structures; high-level synthesis; memory system; separation logic; static analysis;
Conference_Titel :
Field-Programmable Custom Computing Machines (FCCM), 2014 IEEE 22nd Annual International Symposium on
Conference_Location :
Boston, MA
Print_ISBN :
978-1-4799-5110-9
DOI :
10.1109/FCCM.2014.11