{"title":"ASAP:高级合成中动态内存堆的自动大小和分区","authors":"Nicholas V. Giamblanco, J. Anderson","doi":"10.1109/ICFPT47387.2019.00046","DOIUrl":null,"url":null,"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.","PeriodicalId":241340,"journal":{"name":"2019 International Conference on Field-Programmable Technology (ICFPT)","volume":"38 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":"{\"title\":\"ASAP: Automatic Sizing and Partitioning for Dynamic Memory Heaps in High-Level Synthesis\",\"authors\":\"Nicholas V. Giamblanco, J. Anderson\",\"doi\":\"10.1109/ICFPT47387.2019.00046\",\"DOIUrl\":null,\"url\":null,\"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.\",\"PeriodicalId\":241340,\"journal\":{\"name\":\"2019 International Conference on Field-Programmable Technology (ICFPT)\",\"volume\":\"38 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2019 International Conference on Field-Programmable Technology (ICFPT)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICFPT47387.2019.00046\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 International Conference on Field-Programmable Technology (ICFPT)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICFPT47387.2019.00046","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
ASAP: Automatic Sizing and Partitioning for Dynamic Memory Heaps in High-Level Synthesis
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.