Affiliation:
1. Imperial College London, Darmstadt, Germany
2. Imperial College London, London, United Kingdom
Abstract
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 pointer-based 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 2 × across our benchmarks.
Funder
European Space Agency under the Networking/Partnering
EPSRC
Publisher
Association for Computing Machinery (ACM)
Reference31 articles.
1. BDTI. 2010. An Independent Evaluation of: The AutoESL AutoPilot High-Level Synthesis Tool. Retrieved March 2 2014 from http://www.bdti.com/Resources/BenchmarkResults/HLSTCP/AutoPilot. BDTI. 2010. An Independent Evaluation of: The AutoESL AutoPilot High-Level Synthesis Tool. Retrieved March 2 2014 from http://www.bdti.com/Resources/BenchmarkResults/HLSTCP/AutoPilot.
2. The Polyhedral Model Is More Widely Applicable Than You Think
3. Symbolic Execution with Separation Logic
4. A practical automatic polyhedral parallelizer and locality optimizer
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Hardware-accelerated Real-time Drift-awareness for Robust Deep Learning on Wireless RF Data;ACM Transactions on Reconfigurable Technology and Systems;2023-03-11
2. ASAP: Automatic Sizing and Partitioning for Dynamic Memory Heaps in High-Level Synthesis;2019 International Conference on Field-Programmable Technology (ICFPT);2019-12
3. Automated Synthesis of Streaming Transfer Level Hardware Designs;ACM Transactions on Reconfigurable Technology and Systems;2018-11-12
4. Generalized profile-guided iterator recognition;Proceedings of the 27th International Conference on Compiler Construction;2018-02-24
5. Custom Multicache Architectures for Heap Manipulating Programs;IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems;2017-05