{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,31]],"date-time":"2026-03-31T04:50:03Z","timestamp":1774932603915,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":47,"publisher":"ACM","license":[{"start":{"date-parts":[[2023,2,17]],"date-time":"2023-02-17T00:00:00Z","timestamp":1676592000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CCF-2119069, CCF-2028851, CNS-1763743"],"award-info":[{"award-number":["CCF-2119069, CCF-2028851, CNS-1763743"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2023,2,17]]},"DOI":"10.1145\/3579990.3580019","type":"proceedings-article","created":{"date-parts":[[2023,2,22]],"date-time":"2023-02-22T10:27:10Z","timestamp":1677061630000},"page":"186-198","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["Parsimony: Enabling SIMD\/Vector Programming in Standard Compiler Flows"],"prefix":"10.1145","author":[{"given":"Vijay","family":"Kandiah","sequence":"first","affiliation":[{"name":"Northwestern University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Daniel","family":"Lustig","sequence":"additional","affiliation":[{"name":"NVIDIA, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Oreste","family":"Villa","sequence":"additional","affiliation":[{"name":"NVIDIA, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"David","family":"Nellans","sequence":"additional","affiliation":[{"name":"NVIDIA, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nikos","family":"Hardavellas","sequence":"additional","affiliation":[{"name":"Northwestern University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,2,22]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/29873.29875"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523701"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3445814.3446692"},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2011.63"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/996893.996853"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2011.5749714"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3148173.3148185"},{"key":"e_1_3_2_1_8_1","unstructured":"Ihar Yermalayeu et al.. 2019. The Simd Library. https:\/\/github.com\/ermig1979\/Simd Accessed: 2022-1-9"},{"key":"e_1_3_2_1_9_1","volume-title":"Intel\u00ae 64 and ia-32 architectures software developer\u2019s manual -","year":"2022","unstructured":"Intel. 2022. Intel\u00ae 64 and ia-32 architectures software developer\u2019s manual - Volume 1-4. https:\/\/cdrdv2.intel.com\/v1\/dl\/getContent\/671200 Accessed: 2022-1-9"},{"key":"e_1_3_2_1_10_1","unstructured":"Intel. 2022. ispc: Intel SPMD Program Compiler. https:\/\/github.com\/ispc\/ispc\/blob\/v1.18.0\/src\/opt.cpp#L466 Accessed: 2022-1-9"},{"key":"e_1_3_2_1_11_1","unstructured":"Intel. 2022. ispc: Intel SPMD Program Compiler. https:\/\/github.com\/ispc\/ispc\/releases\/tag\/v1.18.0 Accessed: 2022-1-9"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","unstructured":"Vijay Kandiah Daniel Lustig Oreste Villa David Nellans and Nikos Hardavellas. 2023. Artifact for CGO\u201923 paper \"Parsimony: Enabling SIMD\/Vector Programming in Standard Compiler Flows\". https:\/\/doi.org\/10.5281\/zenodo.7524279 10.5281\/zenodo.7524279","DOI":"10.5281\/zenodo.7524279"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"crossref","unstructured":"Ralf Karrenberg. 2015. Whole-function vectorization. In Automatic SIMD vectorization of SSA-based control flow graphs. 85\u2013125.","DOI":"10.1007\/978-3-658-10113-8_6"},{"key":"e_1_3_2_1_14_1","volume-title":"Proceedings of the 4th International Conference on Computer Software and Applications (COMPSAC). 709\u2013715","author":"Kuck David J.","year":"1980","unstructured":"David J. Kuck, Robert H. Kuhn, Bruce Leasure, and Michael Wolfe. 1980. The Structure of an Advanced Vectorizer for Pipelined Processors. In Proceedings of the 4th International Conference on Computer Software and Applications (COMPSAC). 709\u2013715."},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/358438.349320"},{"key":"e_1_3_2_1_16_1","volume-title":"LLVM: An Infrastructure for Multi-Stage Optimization. Master\u2019s thesis. Computer Science Dept.","author":"Lattner Chris","year":"2002","unstructured":"Chris Lattner. 2002. LLVM: An Infrastructure for Multi-Stage Optimization. Master\u2019s thesis. Computer Science Dept., University of Illinois at Urbana-Champaign. Urbana, IL."},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2014.48"},{"key":"e_1_3_2_1_18_1","volume-title":"Proceedings of the 2013 IEEE\/ACM International Symposium on Code Generation and Optimization (CGO). 1\u201311","author":"Lee Yunsup","year":"2013","unstructured":"Yunsup Lee, Ronny Krashinsky, Vinod Grover, Stephen W Keckler, and Krste Asanovi\u0107. 2013. Convergence and Scalarization for Data-Parallel Architectures. In Proceedings of the 2013 IEEE\/ACM International Symposium on Code Generation and Optimization (CGO). 1\u201311."},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2568058.2568062"},{"key":"e_1_3_2_1_20_1","unstructured":"LLVM Community. 2022. LLVM 15.0.1. https:\/\/github.com\/llvm\/llvm-project\/releases\/tag\/llvmorg-15.0.1 Accessed: 2022-1-10"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3296979.3192413"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78800-3_24"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133255.1133997"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1454115.1454119"},{"key":"e_1_3_2_1_25_1","unstructured":"NVIDIA Corporation. 2017. NVIDIA Tesla V100 GPU architecture. https:\/\/images.nvidia.com\/content\/volta-architecture\/pdf\/volta-architecture-whitepaper.pdf Accessed: 2022-1-9"},{"key":"e_1_3_2_1_26_1","unstructured":"NVIDIA Corporation. 2022. NVIDIA CUDA C Programming Guide. https:\/\/docs.nvidia.com\/cuda\/cuda-c-programming-guide\/index.html Accessed: 2022-1-9"},{"key":"e_1_3_2_1_27_1","unstructured":"OpenMP Architecture Review Board. 2013. OpenMP Application Program Interface Version 4.0. https:\/\/www.openmp.org\/wp-content\/uploads\/OpenMP4.0.0.pdf Accessed: 2022-1-9"},{"key":"e_1_3_2_1_28_1","volume-title":"Paul HJ Kelly, and Wayne Luk","author":"Papaphilippou Philippos","year":"2021","unstructured":"Philippos Papaphilippou, Paul HJ Kelly, and Wayne Luk. 2021. Extending the RISC-V ISA for exploring advanced reconfigurable SIMD instructions. arXiv preprint arXiv:2106.07456."},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCAS45731.2020.9181071"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"crossref","unstructured":"Matt Pharr and William R Mark. 2012. ispc: A SPMD compiler for high-performance CPU programming. In 2012 Innovative Parallel Computing (InPar). 1\u201313.","DOI":"10.1109\/InPar.2012.6339601"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2870650.2870653"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2015.7054199"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3078633.3081039"},{"key":"e_1_3_2_1_34_1","volume-title":"ZeRO-Offload: Democratizing Billion-Scale Model Training. In 2021 USENIX Annual Technical Conference (USENIX ATC 21)","author":"Ren Jie","year":"2021","unstructured":"Jie Ren, Samyam Rajbhandari, Reza Yazdani Aminabadi, Olatunji Ruwase, Shuangyan Yang, Minjia Zhang, Dong Li, and Yuxiong He. 2021. ZeRO-Offload: Democratizing Billion-Scale Model Training. In 2021 USENIX Annual Technical Conference (USENIX ATC 21). 551\u2013564."},{"key":"e_1_3_2_1_35_1","unstructured":"RISC. 2021. RISC-V \"V\" Vector Extension. https:\/\/github.com\/riscv\/riscv-v-spec\/releases\/tag\/v1.0 Accessed: 2022-1-9"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/SBAC-PAD.2012.22"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2523815"},{"key":"e_1_3_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1147\/rd.302.0163"},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/987361.987368"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2019.2960333"},{"key":"e_1_3_2_1_41_1","unstructured":"Standard C++ Foundation. 2020. ISO International Standard ISO\/IEC 14882:2020(E) \u2013 Programming Language C++. https:\/\/isocpp.org\/std\/the-standard Accessed: 2022-1-9"},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2017.35"},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1772954.1772971"},{"key":"e_1_3_2_1_44_1","volume-title":"Automation & Test in Europe Conference & Exhibition (DATE). 654\u2013657","author":"Tagliavini Giuseppe","year":"2019","unstructured":"Giuseppe Tagliavini, Stefan Mach, Davide Rossi, Andrea Marongiu, and Luca Benini. 2019. Design and evaluation of SmallFloat SIMD extensions to the RISC-V ISA. In 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE). 654\u2013657."},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2009.18"},{"key":"e_1_3_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/390015.808411"},{"key":"e_1_3_2_1_47_1","unstructured":"Wenzel Jakob. 2019. Enoki: structured vectorization and differentiation on modern processor architectures. https:\/\/github.com\/mitsuba-renderer\/enoki Accessed: 2022-1-9"}],"event":{"name":"CGO '23: 21st ACM\/IEEE International Symposium on Code Generation and Optimization","location":"Montr\u00e9al QC Canada","acronym":"CGO '23","sponsor":["SIGMICRO ACM Special Interest Group on Microarchitectural Research and Processing","SIGPLAN ACM Special Interest Group on Programming Languages","IEEE-CS Computer Society"]},"container-title":["Proceedings of the 21st ACM\/IEEE International Symposium on Code Generation and Optimization"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3579990.3580019","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3579990.3580019","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3579990.3580019","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T18:08:19Z","timestamp":1750183699000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3579990.3580019"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,2,17]]},"references-count":47,"alternative-id":["10.1145\/3579990.3580019","10.1145\/3579990"],"URL":"https:\/\/doi.org\/10.1145\/3579990.3580019","relation":{},"subject":[],"published":{"date-parts":[[2023,2,17]]},"assertion":[{"value":"2023-02-22","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}