Abstract
Efficient high-level synthesis (HLS) of dynamic memory allocation techniques (malloc() and free()) simplifies the compilation of algorithms with runtime-varying memory requirements to hardware designs. Existing HLS memory allocation frameworks often degrade performance and area, while simultaneously introducing even more parameters to optimize (e.g. heap depth, heap assignments to program logic). We address these concerns with ASAP (Automatic Sizing and Partitioning), a dynamic memory allocation framework for HLS tools. ASAP provides (1) automatic heap depth selection through dynamic analysis of an application, (2) automatic heap partitioning (through static analysis) to provide parallelism from program logic to memory, improving performance. We demonstrate that ASAP is able to improve performance and reduce cycle latencies compared with non-heap-partitioned designs, with speed-ups up to ~ 5× when applied to common memory patterns, and up to ~ 2× improvement when applied to a suite of dynamic-memory intensive applications.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.