{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:17:45Z","timestamp":1750220265003,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":24,"publisher":"ACM","license":[{"start":{"date-parts":[[2022,6,9]],"date-time":"2022-06-09T00:00:00Z","timestamp":1654732800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000028","name":"Semiconductor Research Corporation","doi-asserted-by":"publisher","award":["3020.001"],"award-info":[{"award-number":["3020.001"]}],"id":[{"id":"10.13039\/100000028","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2022,6,9]]},"DOI":"10.1145\/3535044.3535050","type":"proceedings-article","created":{"date-parts":[[2022,6,8]],"date-time":"2022-06-08T16:08:08Z","timestamp":1654704488000},"page":"42-50","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Meta-Programming Design-Flow Patterns for Automating Reusable Optimisations"],"prefix":"10.1145","author":[{"given":"Jessica","family":"Vandebon","sequence":"first","affiliation":[{"name":"Imperial College London, United Kingdom"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jose","family":"Coutinho","sequence":"additional","affiliation":[{"name":"Imperial College London, United Kingdom"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Wayne","family":"Luk","sequence":"additional","affiliation":[{"name":"Imperial College London, United Kingdom"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2022,6,9]]},"reference":[{"key":"e_1_3_2_1_1_1","volume-title":"Webpage. Retrieved","author":"AMD.","year":"2022","unstructured":"AMD. 2022 . HIP Programming Guide v4.5 . Webpage. Retrieved January, 2022 from https:\/\/rocmdocs.amd.com\/en\/ latest\/Programming_Guides\/HIP-GUIDE.html AMD. 2022. HIP Programming Guide v4.5. Webpage. Retrieved January, 2022 from https:\/\/rocmdocs.amd.com\/en\/ latest\/Programming_Guides\/HIP-GUIDE.html"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"crossref","unstructured":"Christopher Brown Marco Danelutto Peter Kilpatrick Kevin Hammond and Sam Elliott. 2014. Cost-Directed Refactoring for Parallel Erlang Programs. Int\u2019l Journal of Parallel Programming 42.  Christopher Brown Marco Danelutto Peter Kilpatrick Kevin Hammond and Sam Elliott. 2014. Cost-Directed Refactoring for Parallel Erlang Programs. Int\u2019l Journal of Parallel Programming 42.","DOI":"10.1007\/s10766-013-0266-5"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926354.1926358"},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.5555\/1025123.1025812"},{"key":"e_1_3_2_1_5_1","volume-title":"Design Patterns: Abstraction and Reuse of Object-Oriented Design. In ECOOP.","author":"Gamma Erich","year":"1993","unstructured":"Erich Gamma , Richard Helm , Ralph Johnson , and John Vlissides . 1993 . Design Patterns: Abstraction and Reuse of Object-Oriented Design. In ECOOP. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1993. Design Patterns: Abstraction and Reuse of Object-Oriented Design. In ECOOP."},{"volume-title":"Webpage. Retrieved","year":"2022","key":"e_1_3_2_1_6_1","unstructured":"HeCBench. 2022 . Bezier Surface . Webpage. Retrieved March, 2022 from https:\/\/github.com\/zjin-lcf\/HeCBench HeCBench. 2022. Bezier Surface. Webpage. Retrieved March, 2022 from https:\/\/github.com\/zjin-lcf\/HeCBench"},{"volume-title":"Webpage. Retrieved","year":"2022","key":"e_1_3_2_1_7_1","unstructured":"HeCBench. 2022 . Rush Larsen . Webpage. Retrieved March, 2022 from https:\/\/github.com\/zjin-lcf\/HeCBench HeCBench. 2022. Rush Larsen. Webpage. Retrieved March, 2022 from https:\/\/github.com\/zjin-lcf\/HeCBench"},{"key":"e_1_3_2_1_8_1","unstructured":"Eric Holk William Byrd Nilesh Mahajan Jeremiah Willcock Arun Chauhan and Andrew Lumsdaine. 2012. Declarative Parallel Programming for GPUs. In Advances in Parallel Computing Vol.\u00a022.  Eric Holk William Byrd Nilesh Mahajan Jeremiah Willcock Arun Chauhan and Andrew Lumsdaine. 2012. Declarative Parallel Programming for GPUs. In Advances in Parallel Computing Vol.\u00a022."},{"volume-title":"Webpage. Retrieved","year":"2022","key":"e_1_3_2_1_9_1","unstructured":"Intel. 2022 . Intel oneAPI DPC++ FPGA Optimization Guide . Webpage. Retrieved March, 2022 from https:\/\/www.intel.com\/content\/www\/us\/en\/develop\/documentation\/oneapi-fpga-optimization-guide\/top.html Intel. 2022. Intel oneAPI DPC++ FPGA Optimization Guide. Webpage. Retrieved March, 2022 from https:\/\/www.intel.com\/content\/www\/us\/en\/develop\/documentation\/oneapi-fpga-optimization-guide\/top.html"},{"key":"e_1_3_2_1_10_1","volume-title":"Webpage. Retrieved","author":"ISLPY.","year":"2021","unstructured":"ISLPY. 2021 . islpy 2020.2.2 Documentation . Webpage. Retrieved February, 2021 from https:\/\/documen.tician.de\/islpy\/index.html ISLPY. 2021. islpy 2020.2.2 Documentation. Webpage. Retrieved February, 2021 from https:\/\/documen.tician.de\/islpy\/index.html"},{"key":"e_1_3_2_1_11_1","volume-title":"Webpage. Retrieved","author":"LLVM Developer Group","year":"2022","unstructured":"LLVM Developer Group . 2022 . Clang: a C language family frontend for LLVM . Webpage. Retrieved March, 2022 from https:\/\/clang.llvm.org\/ LLVM Developer Group. 2022. Clang: a C language family frontend for LLVM. Webpage. Retrieved March, 2022 from https:\/\/clang.llvm.org\/"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892210"},{"key":"e_1_3_2_1_13_1","volume-title":"Paper: Togpu: Automatic Source Transformation from C++ to CUDA using Clang\/LLVM. In Visualization and Data Analysis.","author":"Marangoni Matthew","year":"2016","unstructured":"Matthew Marangoni and Thomas Wischgoll . 2016 . Paper: Togpu: Automatic Source Transformation from C++ to CUDA using Clang\/LLVM. In Visualization and Data Analysis. Matthew Marangoni and Thomas Wischgoll. 2016. Paper: Togpu: Automatic Source Transformation from C++ to CUDA using Clang\/LLVM. In Visualization and Data Analysis."},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44520-X_93"},{"key":"e_1_3_2_1_15_1","volume-title":"Patterns for Parallel Programming","author":"Mattson Timothy","unstructured":"Timothy Mattson , Beverly Sanders , and Berna Massingill . 2004. Patterns for Parallel Programming ( 1 st ed.). Addison-Wesley Professional . Timothy Mattson, Beverly Sanders, and Berna Massingill. 2004. Patterns for Parallel Programming(1st ed.). Addison-Wesley Professional.","edition":"1"},{"key":"e_1_3_2_1_16_1","volume-title":"Webpage. Retrieved","author":"Gallery Maxeler App","year":"2015","unstructured":"Maxeler App Gallery . 2015 . N-Body Particle Simulation . Webpage. Retrieved January, 2020 from https:\/\/github.com\/maxeler\/NBody Maxeler App Gallery. 2015. N-Body Particle Simulation. Webpage. Retrieved January, 2020 from https:\/\/github.com\/maxeler\/NBody"},{"key":"e_1_3_2_1_17_1","volume-title":"Structured Parallel Programming: Patterns for Efficient Computation","author":"McCool Michael","unstructured":"Michael McCool , James Reinders , and Arch Robison . 2012. Structured Parallel Programming: Patterns for Efficient Computation ( 1 st ed.). Morgan Kaufmann Publishers Inc . Michael McCool, James Reinders, and Arch Robison. 2012. Structured Parallel Programming: Patterns for Efficient Computation (1st ed.). Morgan Kaufmann Publishers Inc.","edition":"1"},{"key":"e_1_3_2_1_18_1","volume-title":"Webpage. Retrieved","author":"Developer Zone NVIDIA","year":"2022","unstructured":"NVIDIA Developer Zone . 2022 . CUDA C++ Best Practices Guide . Webpage. Retrieved January, 2022 from https:\/\/docs.nvidia.com\/cuda\/cuda-c-best-practices-guide\/index.html NVIDIA Developer Zone. 2022. CUDA C++ Best Practices Guide. Webpage. Retrieved January, 2022 from https:\/\/docs.nvidia.com\/cuda\/cuda-c-best-practices-guide\/index.html"},{"key":"e_1_3_2_1_19_1","volume-title":"SkelCL - A Portable Skeleton Library for High-Level GPU Programming. In 2011 IEEE Int\u2019l Symp. on Parallel and Distributed Processing Workshops and Phd Forum.","author":"Steuwer Michel","year":"2011","unstructured":"Michel Steuwer , Philipp Kegel , and Sergei Gorlatch . 2011 . SkelCL - A Portable Skeleton Library for High-Level GPU Programming. In 2011 IEEE Int\u2019l Symp. on Parallel and Distributed Processing Workshops and Phd Forum. Michel Steuwer, Philipp Kegel, and Sergei Gorlatch. 2011. SkelCL - A Portable Skeleton Library for High-Level GPU Programming. In 2011 IEEE Int\u2019l Symp. on Parallel and Distributed Processing Workshops and Phd Forum."},{"key":"e_1_3_2_1_20_1","volume-title":"Proc. of the 20th Int\u2019l Conf. on Implementation and Application of Functional Languages (IFL\u201908)","author":"Svensson Joel","year":"2008","unstructured":"Joel Svensson , Mary Sheeran , and Koen Claessen . 2008 . Obsidian: A Domain Specific Embedded Language for Parallel Programming of Graphics Processors . In Proc. of the 20th Int\u2019l Conf. on Implementation and Application of Functional Languages (IFL\u201908) . Joel Svensson, Mary Sheeran, and Koen Claessen. 2008. Obsidian: A Domain Specific Embedded Language for Parallel Programming of Graphics Processors. In Proc. of the 20th Int\u2019l Conf. on Implementation and Application of Functional Languages (IFL\u201908)."},{"key":"e_1_3_2_1_21_1","article-title":"Enhancing High-Level Synthesis Using a Meta-Programming Approach","volume":"70","author":"Vandebon Jessica","year":"2021","unstructured":"Jessica Vandebon , Jose\u00a0G.\u00a0 F. Coutinho , Wayne Luk , and Eriko Nurvitadhi . 2021 . Enhancing High-Level Synthesis Using a Meta-Programming Approach . IEEE Trans. Comput. 70 , 12 (2021). Jessica Vandebon, Jose\u00a0G.\u00a0F. Coutinho, Wayne Luk, and Eriko Nurvitadhi. 2021. Enhancing High-Level Synthesis Using a Meta-Programming Approach. IEEE Trans. Comput. 70, 12 (2021).","journal-title":"IEEE Trans. Comput."},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2808091.2808092"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2749246.2749255"},{"key":"e_1_3_2_1_24_1","volume-title":"\u00a0P. O\u2019boyle","author":"Wang Zheng","year":"2015","unstructured":"Zheng Wang , Dominik Grewe , and Michael F . \u00a0P. O\u2019boyle . 2015 . Automatic and Portable Mapping of Data Parallel Programs to OpenCL for GPU-Based Heterogeneous Systems. In ACM TACO \u201915, Vol .\u00a011. Zheng Wang, Dominik Grewe, and Michael F.\u00a0P. O\u2019boyle. 2015. Automatic and Portable Mapping of Data Parallel Programs to OpenCL for GPU-Based Heterogeneous Systems. In ACM TACO \u201915, Vol.\u00a011."}],"event":{"name":"HEART2022: International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies","acronym":"HEART2022","location":"Tsukuba Japan"},"container-title":["International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3535044.3535050","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3535044.3535050","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:30:57Z","timestamp":1750188657000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3535044.3535050"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,6,9]]},"references-count":24,"alternative-id":["10.1145\/3535044.3535050","10.1145\/3535044"],"URL":"https:\/\/doi.org\/10.1145\/3535044.3535050","relation":{},"subject":[],"published":{"date-parts":[[2022,6,9]]},"assertion":[{"value":"2022-06-09","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}