{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:30:34Z","timestamp":1750221034227,"version":"3.41.0"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2018,9,24]],"date-time":"2018-09-24T00:00:00Z","timestamp":1537747200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"German Research Foundation (DFG) within the Transregio SFB Invasive Computing","award":["DFG SFB\/TRR89"],"award-info":[{"award-number":["DFG SFB\/TRR89"]}]},{"name":"TEAChER: TEach AdvanCEd Reconfigurable architectures and tools"},{"DOI":"10.13039\/501100001655","name":"DAAD","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100001655","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2018,9,30]]},"abstract":"<jats:p>Heterogeneous architectures featuring multiple hardware accelerators have been proposed as a promising solution for meeting the ever-increasing performance and power requirements of embedded systems. However, the existence of numerous design parameters may result in different architectural schemes and thus in extra design effort. To address this issue, OpenCL-based frameworks have been recently utilized for FPGA programming, to enable the portability of a source code to multiple architectures. However, such OpenCL frameworks focus on RTL design, thus not enabling rapid prototyping and abstracted modeling of complex systems. Virtual Prototyping aims to overcome this problem by enabling the system modeling in higher abstraction levels. This article combines the benefits of OpenCL and Virtual Prototyping, by proposing an OpenCL-based prototyping framework for data-parallel many-accelerator systems, which (a) creates a SystemC Virtual Platform from OpenCL, (b) provides a co-simulation environment for the host and the Virtual Platform, (c) offers memory and interconnection models for parallel data processing, and (d) enables the system evaluation with alternative real number representations (e.g., fixed-point or 16-bit floating-point).<\/jats:p>","DOI":"10.1145\/3242179","type":"journal-article","created":{"date-parts":[[2018,9,24]],"date-time":"2018-09-24T12:05:57Z","timestamp":1537790757000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["OpenCL-based Virtual Prototyping and Simulation of Many-Accelerator Architectures"],"prefix":"10.1145","volume":"17","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8323-3747","authenticated-orcid":false,"given":"Efstathios","family":"Sotiriou-Xanthopoulos","sequence":"first","affiliation":[{"name":"National Technical University of Athens, Greece"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Leonard","family":"Masing","sequence":"additional","affiliation":[{"name":"Karlsruhe Institute of Technology, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sotirios","family":"Xydis","sequence":"additional","affiliation":[{"name":"National Technical University of Athens, Greece"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kostas","family":"Siozios","sequence":"additional","affiliation":[{"name":"Aristotle University of Thessaloniki, Thessaloniki, Greece"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"J\u00dcrgen","family":"Becker","sequence":"additional","affiliation":[{"name":"Karlsruhe Institute of Technology, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dimitrios","family":"Soudris","sequence":"additional","affiliation":[{"name":"National Technical University of Athens, Greece"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,9,24]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Altera OpenCL Guide. 2015. Altera SDK for OpenCL Optimization Guide. Retrieved from https:\/\/www.altera.com\/content\/dam\/altera-www\/global\/en_US\/pdfs\/literature\/hb\/opencl-sdk\/aocl_optimization_guide.pdf.  Altera OpenCL Guide. 2015. Altera SDK for OpenCL Optimization Guide. Retrieved from https:\/\/www.altera.com\/content\/dam\/altera-www\/global\/en_US\/pdfs\/literature\/hb\/opencl-sdk\/aocl_optimization_guide.pdf."},{"key":"e_1_2_1_2_1","unstructured":"AMD-OCL. 2017. AMD OpenCL. Retrieved from http:\/\/developer.amd.com\/tools-and-sdks\/opencl-zone\/.  AMD-OCL. 2017. AMD OpenCL. Retrieved from http:\/\/developer.amd.com\/tools-and-sdks\/opencl-zone\/."},{"volume-title":"Clang: A C language family frontend for LLVM.","year":"2017","key":"e_1_2_1_3_1"},{"volume-title":"Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED\u201913)","author":"Cong J.","key":"e_1_2_1_4_1"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2228360.2228512"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2744769.2744879"},{"volume-title":"Proceedings of the 2014 IEEE\/ACM International Conference on Computer-Aided Design (ICCAD\u201914)","author":"Deest G.","key":"e_1_2_1_7_1"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2011.308"},{"key":"e_1_2_1_9_1","unstructured":"HAPS. 2013. Synopsys High-performance ASIC Prototyping Systems. Retrieved from http:\/\/www.synopsys.com\/Systems\/FPGABasedPrototyping\/Pages\/HAPS.aspx.  HAPS. 2013. Synopsys High-performance ASIC Prototyping Systems. Retrieved from http:\/\/www.synopsys.com\/Systems\/FPGABasedPrototyping\/Pages\/HAPS.aspx."},{"key":"e_1_2_1_10_1","unstructured":"Intel-FPGA-OCL. 2017. Intel FPGA SDK for OpenCL. Retrieved from https:\/\/www.altera.com\/products\/design-software\/embedded-software-developers\/opencl\/overview.html.  Intel-FPGA-OCL. 2017. Intel FPGA SDK for OpenCL. Retrieved from https:\/\/www.altera.com\/products\/design-software\/embedded-software-developers\/opencl\/overview.html."},{"key":"e_1_2_1_11_1","unstructured":"ISSI DDR3. 2016. ISSI IS43\/46TR16256A(L) DDR3 Specifications. Retrieved from http:\/\/www.issi.com\/WW\/pdf\/43-46TR16256A-85120AL.pdf.  ISSI DDR3. 2016. ISSI IS43\/46TR16256A(L) DDR3 Specifications. Retrieved from http:\/\/www.issi.com\/WW\/pdf\/43-46TR16256A-85120AL.pdf."},{"volume-title":"Proceedings of the 5th International Workshop on Automatic Performance Tuning. 7--22","author":"Komatsu K.","key":"e_1_2_1_12_1"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TVLSI.2016.2570252"},{"key":"e_1_2_1_14_1","unstructured":"NVIDIA-OCL. 2017. NVIDIA OpenCL SDK. Retrieved from https:\/\/developer.nvidia.com\/opencl.  NVIDIA-OCL. 2017. NVIDIA OpenCL SDK. Retrieved from https:\/\/developer.nvidia.com\/opencl."},{"key":"e_1_2_1_15_1","unstructured":"OpenCL. 2017a. OpenCL by Khronos group. Retrieved from https:\/\/www.khronos.org\/opencl\/.  OpenCL. 2017a. OpenCL by Khronos group. Retrieved from https:\/\/www.khronos.org\/opencl\/."},{"key":"e_1_2_1_16_1","unstructured":"OpenCL. 2017b. OpenCL Specifications 1.0. Retrieved from https:\/\/www.khronos.org\/registry\/cl\/specs\/opencl-1.0.pdf.  OpenCL. 2017b. OpenCL Specifications 1.0. Retrieved from https:\/\/www.khronos.org\/registry\/cl\/specs\/opencl-1.0.pdf."},{"key":"e_1_2_1_17_1","unstructured":"OVP. 2017. Open Virtual Platforms website. Retrieved from http:\/\/www.ovpworld.org.  OVP. 2017. Open Virtual Platforms website. Retrieved from http:\/\/www.ovpworld.org."},{"volume-title":"PARADE: Full-System Accelerator-Rich Architecture Simulator.","year":"2015","author":"PARADE.","key":"e_1_2_1_18_1"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.sysarc.2016.06.003"},{"volume-title":"Rodinia: A Benchmark Suite for Heterogeneous Computing.","year":"2016","key":"e_1_2_1_20_1"},{"key":"e_1_2_1_21_1","unstructured":"SDAccel. 2017. Xilinx SDAccel. Retrieved from www.xilinx.com\/products\/design-tools\/software-zone\/sdaccel.html.  SDAccel. 2017. Xilinx SDAccel. Retrieved from www.xilinx.com\/products\/design-tools\/software-zone\/sdaccel.html."},{"key":"e_1_2_1_22_1","unstructured":"SDAccel Guide. 2016. Xilinx SDAccel Development Environment (UG1023). Retrieved from http:\/\/www.xilinx.com\/support\/documentation\/sw_man uals\/xilinx2015_1\/ug1023-sdaccel-user-guide.pdf.  SDAccel Guide. 2016. Xilinx SDAccel Development Environment (UG1023). Retrieved from http:\/\/www.xilinx.com\/support\/documentation\/sw_man uals\/xilinx2015_1\/ug1023-sdaccel-user-guide.pdf."},{"volume-title":"Proceedings of the Conference on Video and Image Processing Emulation System (ViPES\u201916)","author":"Sotiriou-Xanthopoulos E.","key":"e_1_2_1_23_1"},{"volume-title":"Proceedings of the International Conference on Embedded Computer Systems (IC-SAMOS\u201915)","author":"Sotiriou-Xanthopoulos E.","key":"e_1_2_1_24_1"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2556863.2556864"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2866578"},{"key":"e_1_2_1_27_1","unstructured":"SystemC. 2017. SystemC official website. Retrieved from http:\/\/www.accellera.org\/downloads\/standards\/systemc.  SystemC. 2017. SystemC official website. Retrieved from http:\/\/www.accellera.org\/downloads\/standards\/systemc."},{"key":"e_1_2_1_28_1","unstructured":"Terasic. 2017. Terasic website. Retrieved from http:\/\/www.terasic.com.tw.  Terasic. 2017. Terasic website. Retrieved from http:\/\/www.terasic.com.tw."},{"key":"e_1_2_1_29_1","unstructured":"Vista Virtual Prototyping. 2017. Vista Virtual Prototyping by Mentor Graphics. Retrieved from https:\/\/www.mentor.com\/esl\/vista\/virtual-prototyping\/.  Vista Virtual Prototyping. 2017. Vista Virtual Prototyping by Mentor Graphics. Retrieved from https:\/\/www.mentor.com\/esl\/vista\/virtual-prototyping\/."},{"key":"e_1_2_1_30_1","unstructured":"Vivado-UserGuide. 2015. Vivado User Guide UG902 (v2015.4). Retrieved from http:\/\/www.xilinx.com\/support\/documentation\/sw_man uals\/xilinx2015_4\/ug902-vivado-high-level-synthesis.pdf.  Vivado-UserGuide. 2015. Vivado User Guide UG902 (v2015.4). Retrieved from http:\/\/www.xilinx.com\/support\/documentation\/sw_man uals\/xilinx2015_4\/ug902-vivado-high-level-synthesis.pdf."},{"key":"e_1_2_1_31_1","unstructured":"J. van der Zijp. 2012. Fast half float conversions. Retrieved from ftp:\/\/www.fox-toolkit.org\/pub\/fasthalffloatconversion.pdf.  J. van der Zijp. 2012. Fast half float conversions. Retrieved from ftp:\/\/www.fox-toolkit.org\/pub\/fasthalffloatconversion.pdf."},{"key":"e_1_2_1_32_1","unstructured":"Zynq. 2017. Xilinx Zynq-7000 SoCs. Retrieved from http:\/\/www.xilinx.com\/products\/boards-and-kits\/device-family\/nav-zynq-7000.html.  Zynq. 2017. Xilinx Zynq-7000 SoCs. Retrieved from http:\/\/www.xilinx.com\/products\/boards-and-kits\/device-family\/nav-zynq-7000.html."}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3242179","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3242179","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T00:43:36Z","timestamp":1750207416000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3242179"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,9,24]]},"references-count":32,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2018,9,30]]}},"alternative-id":["10.1145\/3242179"],"URL":"https:\/\/doi.org\/10.1145\/3242179","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"type":"print","value":"1539-9087"},{"type":"electronic","value":"1558-3465"}],"subject":[],"published":{"date-parts":[[2018,9,24]]},"assertion":[{"value":"2017-08-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-07-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-09-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}