{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:34:59Z","timestamp":1750221299548,"version":"3.41.0"},"reference-count":28,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2019,4,18]],"date-time":"2019-04-18T00:00:00Z","timestamp":1555545600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2019,6,30]]},"abstract":"<jats:p>Efficient code generation for image processing applications continues to pose a challenge in a domain where high performance is often necessary to meet real-time constraints. The inherently complex structure found in most image-processing pipelines, the plethora of transformations that can be applied to optimize the performance of an implementation, as well as the interaction of these optimizations with locality, redundant computation and parallelism, can be indentified as the key reasons behind this issue. Recent domain-specific languages (DSL) such as the Halide DSL and compiler attempt to encourage high-level design-space exploration to facilitate the optimization process. We propose a novel optimization strategy that aims to maximize producer-consumer locality by exploiting reuse in image-processing pipelines. We implement our analysis as a tool that can be used alongside the Halide DSL to automatically generate schedules for pipelines implemented in Halide and test it on a variety of benchmarks. Experimental results on three different multi-core architectures show an average performance improvement of 40% over the Halide Auto-Scheduler and 75% over a state-of-the art approach that targets the PolyMage DSL.<\/jats:p>","DOI":"10.1145\/3310248","type":"journal-article","created":{"date-parts":[[2019,4,19]],"date-time":"2019-04-19T16:56:23Z","timestamp":1555692983000},"page":"1-22","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Schedule Synthesis for Halide Pipelines through Reuse Analysis"],"prefix":"10.1145","volume":"16","author":[{"given":"Savvas","family":"Sioutas","sequence":"first","affiliation":[{"name":"Eindhoven University of Technology, Eindhoven , The Netherlands"}]},{"given":"Sander","family":"Stuijk","sequence":"additional","affiliation":[{"name":"Eindhoven University of Technology, Eindhoven , The Netherlands"}]},{"given":"Luc","family":"Waeijen","sequence":"additional","affiliation":[{"name":"Eindhoven University of Technology, Eindhoven , The Netherlands"}]},{"given":"Twan","family":"Basten","sequence":"additional","affiliation":[{"name":"Eindhoven University of Technology and ESI, TNO, , Eindhoven, The Netherlands"}]},{"given":"Henk","family":"Corporaal","sequence":"additional","affiliation":[{"name":"Eindhoven University of Technology, Eindhoven , The Netherlands"}]},{"given":"Lou","family":"Somers","sequence":"additional","affiliation":[{"name":"Oc\u00e9 Technologies and Eindhoven University of Technology, The Netherlands"}]}],"member":"320","published-online":{"date-parts":[[2019,4,18]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1778765.1778766"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628071.2628092"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1276377.1276506"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/377792.377814"},{"volume-title":"Proceedings of the 2008 5th IEEE International Symposium on Biomedical Imaging: From Nano to Macro. 1331--1334","author":"Darbon J.","key":"e_1_2_1_5_1"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024156.2024209"},{"key":"e_1_2_1_7_1","unstructured":"Halide. 2018. Halide GitHub Repository (MIT License). Retrieved from https:\/\/github.com\/halide\/Halide (commit 402171e7a4dfacb0bd93297cbdfb600a325fe745).  Halide. 2018. Halide GitHub Repository (MIT License). Retrieved from https:\/\/github.com\/halide\/Halide (commit 402171e7a4dfacb0bd93297cbdfb600a325fe745)."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.5244\/C.2.23"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2304576.2304619"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3178487.3178507"},{"key":"e_1_2_1_11_1","doi-asserted-by":"crossref","unstructured":"Ken Kennedy and Kathryn S. McKinley. 1994. Maximizing loop parallelism and improving data locality via loop fusion and distribution. In Languages and Compilers for Parallel Computing Utpal Banerjee David Gelernter Alex Nicolau and David Padua (Eds.). Springer Berlin 301--320.   Ken Kennedy and Kathryn S. McKinley. 1994. Maximizing loop parallelism and improving data locality via loop fusion and distribution. In Languages and Compilers for Parallel Computing Utpal Banerjee David Gelernter Alex Nicolau and David Padua (Eds.). Springer Berlin 301--320.","DOI":"10.1007\/3-540-57659-2_18"},{"volume-title":"Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR\u201916)","author":"Kim J.","key":"e_1_2_1_12_1"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1273442.1250761"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.577265"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2897824.2925952"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2694344.2694364"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2014.70"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1964921.1964963"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1379022.1375594"},{"key":"e_1_2_1_20_1","unstructured":"PolyMage project. 2016. PolyMage Repository (Apache 2.0 License 2016). Retrieved from https:\/\/bitbucket.org\/udayb\/polymage (commit 0ff0b46456605a5579db09c6ef98cb247dd2131d).  PolyMage project. 2016. PolyMage Repository (Apache 2.0 License 2016). Retrieved from https:\/\/bitbucket.org\/udayb\/polymage (commit 0ff0b46456605a5579db09c6ef98cb247dd2131d)."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462176"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/CVPR.2011.5995372"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3168823"},{"volume-title":"Tensor Comprehensions: Framework-Agnostic High-Performance Machine Learning Abstractions","year":"2018","author":"Vasilache Nicolas","key":"e_1_2_1_24_1"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/113445.113449"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/11576235_28"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1177\/1094342004038956"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2259016.2259044"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3310248","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3310248","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:13:16Z","timestamp":1750212796000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3310248"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,4,18]]},"references-count":28,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2019,6,30]]}},"alternative-id":["10.1145\/3310248"],"URL":"https:\/\/doi.org\/10.1145\/3310248","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2019,4,18]]},"assertion":[{"value":"2018-07-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-01-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-04-18","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}