arrow
Return

Separation Logic for High-Level Synthesis

delete2015-12-17
delete6
delete
OA
AI
F
Felix Winterstein *
S
Samuel Bayliss
G
George A. Constantinides *
DOI:10.1145/2836169delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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++. However, applications using dynamic, pointer-based data structures and dynamic memory allocation remain difficult to implement well, yet such constructs are widely used in software. Automated optimizations that leverage the 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 pointerbased memory accesses. In this work, we take a step toward closing this gap. We present a static analysis for pointer-manipulating programs that 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 that 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 that 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 that build, traverse, update, and dispose of dynamically allocated data structures. Our case studies, comparing the automatically parallelized to the direct HLS implementations, show an average latency reduction by a factor of 2x across our benchmarks.
Keywords:
Design
Algorithms
Performance
FPGA
high-level synthesis
memory system
separation logic
static analysis

Journal

ACM Transactions on Reconfigurable Technology and Systems cover
ACM Transactions on Reconfigurable Technology and Systems
IF:
2.8
Papers:
597
Citations:
810

Organization

I
Imperial College London
Scholars:
8.3W
Papers: 7.3W
Citations: 11.1W