{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T07:16:29Z","timestamp":1760080589979,"version":"3.41.0"},"reference-count":27,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2022,2,4]],"date-time":"2022-02-04T00:00:00Z","timestamp":1643932800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Hessian LOEWE initiative within the Software-Factory 4.0 project"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Reconfigurable Technol. Syst."],"published-print":{"date-parts":[[2022,9,30]]},"abstract":"<jats:p>High-level synthesis (HLS) can be used to create hardware accelerators for compute-intense software parts such as loop structures. Usually, this process requires significant amount of user interaction to steer kernel selection and optimizations. This can be tedious and time-consuming. In this article, we present an approach that fully autonomously finds independent loop iterations and reductions to create parallelized accelerators. We combine static analysis with information available only at runtime to maximize the parallelism exploited by the created accelerators. For loops where we see potential for parallelism, we create fully parallelized kernel implementations. If static information does not suffice to deduce independence, then we assume independence at compile time. We verify this assumption by statically created checks that are dynamically evaluated at runtime, before using the optimized kernel. Evaluating our approach, we can generate speedups for five out of seven benchmarks. With four loop iterations running in parallel, we achieve ideal speedups of up to 4\u00d7 and on average speedups of 2.27\u00d7, both in comparison to an unoptimized accelerator.<\/jats:p>","DOI":"10.1145\/3501801","type":"journal-article","created":{"date-parts":[[2022,2,4]],"date-time":"2022-02-04T13:40:35Z","timestamp":1643982035000},"page":"1-31","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Improving Loop Parallelization by a Combination of Static and Dynamic Analyses in HLS"],"prefix":"10.1145","volume":"15","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-9083-4196","authenticated-orcid":false,"given":"Florian","family":"Dewald","sequence":"first","affiliation":[{"name":"MAIS chair, Dept. of Computer Science - TU Darmstadt, Hochschulstra\u00dfe, Darmstadt, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8725-780X","authenticated-orcid":false,"given":"Johanna","family":"Rohde","sequence":"additional","affiliation":[{"name":"Computer Systems Group - TU Darmstadt, Merckstra\u00dfe, Darmstadt, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5516-7826","authenticated-orcid":false,"given":"Christian","family":"Hochberger","sequence":"additional","affiliation":[{"name":"Computer Systems Group - TU Darmstadt, Merckstra\u00dfe, Darmstadt, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6586-5529","authenticated-orcid":false,"given":"Heiko","family":"Mantel","sequence":"additional","affiliation":[{"name":"MAIS chair, Dept. of Computer Science - TU Darmstadt, Hochschulstra\u00dfe, Darmstadt, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2022,2,4]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.5555\/1177220"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/29873.29875"},{"key":"e_1_3_2_4_2","article-title":"LegUp High-Level Synthesis","author":"Anderson Jason","year":"2020","unstructured":"Jason Anderson. 2020. LegUp High-Level Synthesis. Retrieved from http:\/\/legup.eecg.utoronto.ca\/.","journal-title":"R"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4770"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPT.2013.6718365"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2012.6339178"},{"key":"e_1_3_2_8_2","article-title":"LegUp 9.1 Documentation","author":"Inc Microchip Technology","year":"2021","unstructured":"Microchip Technology Inc. 2021. LegUp 9.1 Documentation. Retrieved from https:\/\/download-soc.microsemi.com\/FPGA\/HLS-EAP\/docs\/legup-9.1-docs\/index.html.","journal-title":"R"},{"key":"e_1_3_2_9_2","article-title":"Intel\u00ae High Level Synthesis Compiler Pro Edition\u2014Reference Manual","author":"Corporation Intel","year":"2020","unstructured":"Intel Corporation. 2020. Intel\u00ae High Level Synthesis Compiler Pro Edition\u2014Reference Manual. Retrieved from https:\/\/www.intel.com.","journal-title":"R"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/1229428.1229474"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.sysarc.2017.03.001"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2017.2664067"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM.2015.31"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/ACSSC.2017.8335151"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2017.2783363"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/1122971.1122997"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.5555\/2385466"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/3330345.3330375"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2013.6645550"},{"key":"e_1_3_2_20_2","volume-title":"Fast Recognition of Scalar Evolutions on Three-address SSA Code","author":"Pop S.","year":"2004","unstructured":"S. Pop, P. Clauss, A. Cohen, V. Loechner, and G.-A. Silber. 2004. Fast Recognition of Scalar Evolutions on Three-address SSA Code. Technical Report. Technical Report A\/354\/CRI, Centre de Recherche en Informatique (CRI), \u00c9cole des mines de Paris, 2004. Retrieved from http:\/\/www.cri.ensmp.fr\/classement\/doc\/A-354.ps."},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/1356058.1356082"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/181181.181254"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1109\/71.752782"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1007\/s11265-017-1229-7"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/2967938.2974059"},{"key":"e_1_3_2_26_2","first-page":"11","volume-title":"Proceedings of the 7th Python in Science Conference","author":"Schult Daniel A.","year":"2008","unstructured":"Daniel A. Schult. 2008. Exploring network structure, dynamics, and function using NetworkX. In Proceedings of the 7th Python in Science Conference. 11\u201315."},{"key":"e_1_3_2_27_2","article-title":"Vivado Design Suite UserGuide - High-Level Synthesis (UG902)","year":"2020","unstructured":"Xilinx. 2020. Vivado Design Suite UserGuide - High-Level Synthesis (UG902). Retrieved from https:\/\/www.xilinx.com.","journal-title":"R"},{"key":"e_1_3_2_28_2","unstructured":"Xilinx Inc.2018. UG984 - MicroBlaze Processor Reference Guide. Retrieved from https:\/\/www.xilinx.com."}],"container-title":["ACM Transactions on Reconfigurable Technology and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3501801","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3501801","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T18:09:48Z","timestamp":1750183788000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3501801"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,2,4]]},"references-count":27,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2022,9,30]]}},"alternative-id":["10.1145\/3501801"],"URL":"https:\/\/doi.org\/10.1145\/3501801","relation":{},"ISSN":["1936-7406","1936-7414"],"issn-type":[{"type":"print","value":"1936-7406"},{"type":"electronic","value":"1936-7414"}],"subject":[],"published":{"date-parts":[[2022,2,4]]},"assertion":[{"value":"2021-05-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-02-04","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}