{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,27]],"date-time":"2026-05-27T15:03:29Z","timestamp":1779894209926,"version":"3.53.1"},"reference-count":47,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2026,5,27]],"date-time":"2026-05-27T00:00:00Z","timestamp":1779840000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Reconfigurable Technol. Syst."],"published-print":{"date-parts":[[2026,6,30]]},"abstract":"<jats:p>High-level synthesis tools enable developers to use high-level programming languages such as C, C++, or OpenCL to design FPGA accelerators, reducing the complexity of hardware design. While OpenCL provides a portable programming model for heterogeneous systems, the existing FPGA toolchains require non-portable program modifications, pragmas, and pre-generation of bitstreams. To this end, we present a composable open source toolchain for automated synthesis of hardware accelerators from OpenCL, bridging the gap between high-level parallel programming and reconfigurable hardware design. Our toolchain supports the standard OpenCL input, and the runtime handles bitstream generation, reconfiguration, and kernel execution. In addition to supporting unmodified OpenCL applications, this work is the first to even partially implement the OpenCL command buffer extension to automatically generate specialized FPGA bitstreams. The toolchain is modular and extensible, supporting multiple HLS tools and a vendor-agnostic FPGA integration flow, demonstrated on FPGAs from two different vendors. Compared to AMD\u2019s OpenCL FPGA implementation, the proposed toolchain achieves equal or better performance on 70% of PolybenchGPU benchmarks using standard OpenCL and on 80% when using the command buffer extension.<\/jats:p>","DOI":"10.1145\/3786204","type":"journal-article","created":{"date-parts":[[2025,12,19]],"date-time":"2025-12-19T14:15:14Z","timestamp":1766153714000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Composable Open Source Toolchain for Synthesizing Hardware Accelerators from OpenCL Command Buffers"],"prefix":"10.1145","volume":"19","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8795-7435","authenticated-orcid":false,"given":"Topi","family":"Lepp\u00e4nen","sequence":"first","affiliation":[{"name":"Faculty of Information Technology and Communication Sciences (ITC), Tampere University, Tampere, Finland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0003-2210-0619","authenticated-orcid":false,"given":"Leevi","family":"Lepp\u00e4nen","sequence":"additional","affiliation":[{"name":"Faculty of Information Technology and Communication Sciences (ITC), Tampere University, Tampere, Finland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-4767-5204","authenticated-orcid":false,"given":"Zainab","family":"Jamil","sequence":"additional","affiliation":[{"name":"Faculty of Information Technology and Communication Sciences (ITC), Tampere University, Tampere, Finland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8721-7530","authenticated-orcid":false,"given":"Jan","family":"Solanti","sequence":"additional","affiliation":[{"name":"Faculty of Information Technology and Communication Sciences (ITC), Tampere University, Tampere, Finland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4438-2031","authenticated-orcid":false,"given":"Joonas","family":"Multanen","sequence":"additional","affiliation":[{"name":"Faculty of Information Technology and Communication Sciences (ITC), Tampere University, Tampere, Finland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5707-8544","authenticated-orcid":false,"given":"Pekka","family":"J\u00e4\u00e4skel\u00e4inen","sequence":"additional","affiliation":[{"name":"Faculty of Information Technology and Communication Sciences (ITC), Tampere University, Tampere, Finland"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2026,5,27]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/3508352.3549424"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/CGO57630.2024.10444801"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/3731125.3731127"},{"key":"e_1_3_2_5_2","unstructured":"AMD. 2022. Vitis HLS Version 2022.1. Retrieved April 28 2025 from https:\/\/www.amd.com\/en\/products\/software\/adaptive-socs-and-fpgas\/vitis\/vitis-hls.html"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/3706628.3708878"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","unstructured":"Hongzheng Chen Niansong Zhang Shaojie Xiang Zhichen Zeng Mengjia Dai and Zhiru Zhang. 2024. Allo: A programming model for composable accelerator design. Proceedings of the ACM on Programming Languages 8 PLDI Article 171 (June 2024) 28 pages. DOI: 10.1145\/3656401","DOI":"10.1145\/3656401"},{"key":"e_1_3_2_8_2","first-page":"578","volume-title":"Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI \u201918)","author":"Chen Tianqi","year":"2018","unstructured":"Tianqi Chen, Thierry Moreau, Ziheng Jiang, Lianmin Zheng, Eddie Yan, Haichen Shen, Meghan Cowan, Leyuan Wang, Yuwei Hu, Luis Ceze, et al. 2018. TVM: An automated end-to-end optimizing compiler for deep learning. In Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI \u201918). USENIX Association, Berkeley, CA, 578\u2013594."},{"key":"e_1_3_2_9_2","unstructured":"F4FPGA Contributors. 2022. F4FPGA. Retrieved May 22 2025 from https:\/\/f4pga.org\/"},{"key":"e_1_3_2_10_2","unstructured":"LLVM Contributors. 2022. ClangIR (CIR). Retrieved April 28 2025 from https:\/\/llvm.github.io\/clangir\/"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2012.6339272"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2020.3039409"},{"key":"e_1_3_2_13_2","volume-title":"Proceedings of the Workshop on Open-Source EDA Technology (WOSET)","volume":"3","author":"Eldridge Schuyler","year":"2021","unstructured":"Schuyler Eldridge, Prithayan Barua, Aliaksei Chapyzhenka, Adam Izraelevitz, Jack Koenig, Chris Lattner, Andrew Lenharth, George Leontiev, Fabian Schuiki, Ram Sunder, et al. 2021. MLIR as hardware compiler infrastructure. In Proceedings of the Workshop on Open-Source EDA Technology (WOSET), Vol. 3."},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/DAC18074.2021.9586110"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1109\/InPar.2012.6339595"},{"key":"e_1_3_2_16_2","unstructured":"Khronos\u00ae OpenVX Working Group. 2022. The OpenVX Specification 1.3.1. Retrieved from https:\/\/www.khronos.org\/registry\/OpenVX\/specs\/1.3.1\/html\/OpenVX_Specification_1_3_1.html"},{"key":"e_1_3_2_17_2","unstructured":"Khronos\u00ae SYCL Working Group. 2025. SYCL\u2122 2020 Specification (Revision 10). Retrieved from https:\/\/registry.khronos.org\/SYCL\/specs\/sycl-2020\/html\/sycl-2020.html"},{"key":"e_1_3_2_18_2","unstructured":"Intel. 2022. Intel FPGA SDK for OpenCL Software Technology. Retrieved May 21 2025 from https:\/\/www.intel.com\/content\/www\/us\/en\/software\/programmable\/sdk-for-opencl\/overview.html"},{"key":"e_1_3_2_19_2","unstructured":"Intel. 2024. oneAPI Specification 1.4. Intel. Retrieved May 19 2025 from https:\/\/oneapi-spec.uxlfoundation.org\/specifications\/oneapi\/v1.4-rev-1\/oneAPI-spec.pdf"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-014-0320-y"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA45697.2020.00034"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/3174243.3174264"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-17248-4_3"},{"key":"e_1_3_2_24_2","unstructured":"Khronos\u00ae OpenCL Working Group. 2025. The OpenCL\u2122 Specification v3.0.18. Khronos. Retrieved April 9 2025 from https:\/\/www.khronos.org\/registry\/OpenCL\/specs\/3.0-unified\/pdf\/OpenCL_API.pdf"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/3289602.3293910"},{"key":"e_1_3_2_26_2","unstructured":"Chris Lattner Mehdi Amini Uday Bondhugula Albert Cohen Andy Davis Jacques Pienaar River Riddle Tatiana Shpeisman Nicolas Vasilache and Oleksandr Zinenko. 2020. MLIR: A compiler infrastructure for the end of Moore\u2019s law. arXiv:2002.11054. Retrieved from https:\/\/arxiv.org\/abs\/2002.11054"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.micpro.2023.104772"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/3648115.3648128"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1109\/TVLSI.2024.3458062"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1109\/MDT.2009.83"},{"key":"e_1_3_2_31_2","unstructured":"Sophie Won Metzger Stephen Gabriel and Matt Benson. 2025. Intel Announces Strategic Investment by Silver Lake in Altera. Retrieved May 21 2025 from https:\/\/www.intc.com\/news-events\/press-releases\/detail\/1736\/intel-announces-strategic-investment-by-silver-lake-in"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/ReConFig.2015.7393366"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/PACT52795.2021.00011"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/3572848.3577475"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM.2011.19"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1109\/P3HPC54578.2021.00004"},{"key":"e_1_3_2_37_2","first-page":"1","volume-title":"Proceedings of the 5th International Workshop on FPGAs for Software Programmers (FSP Workshop \u201918)","author":"Dang Pham Khoa","year":"2018","unstructured":"Khoa Dang Pham, Anuj Vaishnav, Malte Vesper, and Dirk Koch. 2018. ZUCL: A ZYNQ UltraScale+ framework for OpenCL HLS applications. In Proceedings of the 5th International Workshop on FPGAs for Software Programmers (FSP Workshop \u201918). VDE-Verlag, Berlin, Germany, 1\u20139."},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/3731569.3764845"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASAP.2013.6567546"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/3731125.3731129"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","unstructured":"Emanuele Del Sozzo Davide Conficconi Alberto Zeni Mirko Salaris Donatella Sciuto and Marco D. Santambrogio. 2022. Pushing the level of abstraction of digital system design: A survey on how to program FPGAs. ACM Computing Surveys 55 5 Article 106 (Dec. 2022) 48 pages. DOI: 10.1145\/3532989","DOI":"10.1145\/3532989"},{"key":"e_1_3_2_42_2","unstructured":"Anuj Vaishnav. 2018. Source Code of the OpenCL Driver for ZUCL. Retrieved May 22 2025 from https:\/\/github.com\/zuclfpl\/zucl_fsp\/blob\/166e9ec45c98306197cedc0b2edacbce6293789b\/driver-scheduler\/OpenCL_driver.c"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/3405794"},{"key":"e_1_3_2_44_2","first-page":"1","volume-title":"Proceedings of the 4th International Workshop on FPGAs for Software Programmers (FSP \u201917)","author":"Vesper Malte","year":"2017","unstructured":"Malte Vesper, Dirk Koch, and Khoa Pham. 2017. PCIeHLS: An OpenCL HLS framework. In Proceedings of the 4th International Workshop on FPGAs for Software Programmers (FSP \u201917). VDE-Verlag, Berlin, 1\u20136."},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","unstructured":"Yuefei Wang Wendong Mao Lang Feng Jin Sha and Zhongfeng Wang. 2025. A CPU+FPGA OpenCL heterogeneous computing platform for multi-kernel pipeline. ACM Transactions on Design Automation of Electronic Systems 30 4 Article 67 (July 2025) 23 pages. DOI: 10.1145\/3744922","DOI":"10.1145\/3744922"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA53966.2022.00060"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/3617232.3624850"},{"key":"e_1_3_2_48_2","unstructured":"ZeroASIC. 2025. Platypus Embedded FPGAs. Retrieved May 22 2025 from https:\/\/www.zeroasic.com\/platypus"}],"container-title":["ACM Transactions on Reconfigurable Technology and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3786204","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,27]],"date-time":"2026-05-27T14:04:02Z","timestamp":1779890642000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3786204"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,5,27]]},"references-count":47,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2026,6,30]]}},"alternative-id":["10.1145\/3786204"],"URL":"https:\/\/doi.org\/10.1145\/3786204","relation":{},"ISSN":["1936-7406","1936-7414"],"issn-type":[{"value":"1936-7406","type":"print"},{"value":"1936-7414","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,5,27]]},"assertion":[{"value":"2025-05-23","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-12-15","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-05-27","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}