{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:22:29Z","timestamp":1750220549340,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":51,"publisher":"ACM","license":[{"start":{"date-parts":[[2021,4,17]],"date-time":"2021-04-17T00:00:00Z","timestamp":1618617600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"NSF CCF CAREER","award":["#1943379"],"award-info":[{"award-number":["#1943379"]}]},{"name":"Applications Driving Architectures (ADA) Re-search Center, a JUMP Center cosponsored by SRC and DARPA."}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2021,4,19]]},"DOI":"10.1145\/3445814.3446734","type":"proceedings-article","created":{"date-parts":[[2021,4,11]],"date-time":"2021-04-11T17:06:26Z","timestamp":1618160786000},"page":"241-254","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Judging a type by its pointer: optimizing GPU virtual functions"],"prefix":"10.1145","author":[{"given":"Mengchi","family":"Zhang","sequence":"first","affiliation":[{"name":"Purdue University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ahmad","family":"Alawneh","sequence":"additional","affiliation":[{"name":"Purdue University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Timothy G.","family":"Rogers","sequence":"additional","affiliation":[{"name":"Purdue University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2021,4,17]]},"reference":[{"volume-title":"https:\/\/www.openacc.org\/. Accessed","year":"2019","key":"e_1_3_2_1_1_1","unstructured":"2019. OpenAcc. https:\/\/www.openacc.org\/. Accessed April 15, 2019 . 2019. OpenAcc. https:\/\/www.openacc.org\/. Accessed April 15, 2019."},{"volume-title":"NVIDIA CUDA C Programming Guide. https:\/\/docs.nvidia.com\/cu-da\/cuda-c-programming-guide\/index.html. Accessed","year":"2020","key":"e_1_3_2_1_2_1","unstructured":"2020. NVIDIA CUDA C Programming Guide. https:\/\/docs.nvidia.com\/cu-da\/cuda-c-programming-guide\/index.html. Accessed August 6, 2020 . 2020. NVIDIA CUDA C Programming Guide. https:\/\/docs.nvidia.com\/cu-da\/cuda-c-programming-guide\/index.html. Accessed August 6, 2020."},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/75277.75296"},{"key":"e_1_3_2_1_4_1","unstructured":"Andrew V Adinetz and Dirk Pleiter. [n.d.]. Halloc. https:\/\/github.com\/canonizer\/halloc.  Andrew V Adinetz and Dirk Pleiter. [n.d.]. Halloc. https:\/\/github.com\/canonizer\/halloc."},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2009.4919648"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2581122.2544165"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/378995.379232"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167515.1167488"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/1267257.1267263"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2012.6402918"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/174675.177973"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/74878.74884"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2009.5306797"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080237"},{"key":"e_1_3_2_1_15_1","unstructured":"B.W. Coon J.E. Lindholm P.C. Mills and J.R. Nickolls. 2010. Processing an indirect branch instruction in a SIMD architecture. https:\/\/www.google.com\/patents\/US7761697 US Patent 7 761 697.  B.W. Coon J.E. Lindholm P.C. Mills and J.R. Nickolls. 2010. Processing an indirect branch instruction in a SIMD architecture. https:\/\/www.google.com\/patents\/US7761697 US Patent 7 761 697."},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-77974-2"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/223428.207119"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/646153.679523"},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.5555\/646156.679839"},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/800017.800542"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/236337.236369"},{"key":"e_1_3_2_1_22_1","volume-title":"CUDA Dynamic Memory Allocator for SOA Data Layout. https:\/\/github.com\/prg-titech\/dynasoar Retrieved","author":"Dynasoar","year":"2020","unstructured":"Dynasoar 2019. CUDA Dynamic Memory Allocator for SOA Data Layout. https:\/\/github.com\/prg-titech\/dynasoar Retrieved June 18, 2020 from Dynasoar 2019. CUDA Dynamic Memory Allocator for SOA Data Layout. https:\/\/github.com\/prg-titech\/dynasoar Retrieved June 18, 2020 from"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133869"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1961296.1950402"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3293883.3295727"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1899661.1869634"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11227-011-0680-7"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2015.46"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1353535.1346293"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.5555\/290940.290997"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA45697.2020.00047"},{"key":"e_1_3_2_1_32_1","unstructured":"Khronos Group. 2013. OpenCL. http:\/\/www.khronos.org\/opencl\/.  Khronos Group. 2013. OpenCL. http:\/\/www.khronos.org\/opencl\/."},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250662.1250715"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2963098"},{"key":"e_1_3_2_1_35_1","unstructured":"Aapo Kyrola. [n.d.]. GraphChi-C++. https:\/\/github.com\/GraphChi\/graphchi-cpp.  Aapo Kyrola. [n.d.]. GraphChi-C++. https:\/\/github.com\/GraphChi\/graphchi-cpp."},{"key":"e_1_3_2_1_36_1","unstructured":"Aapo Kyrola. [n.d.]. GraphChi-Java. https:\/\/github.com\/GraphChi\/graphchi-java.  Aapo Kyrola. [n.d.]. GraphChi-Java. https:\/\/github.com\/GraphChi\/graphchi-java."},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.5555\/2387880.2387884"},{"key":"e_1_3_2_1_38_1","volume-title":"Accessed","author":"NVIDIA.","year":"2018","unstructured":"NVIDIA. 2018 . NVIDIA profiling tools. https:\/\/docs.nvidia.com\/cu-da\/profiler-users-guide\/index.html . Accessed Aug 20, 2018. NVIDIA. 2018. NVIDIA profiling tools. https:\/\/docs.nvidia.com\/cu-da\/profiler-users-guide\/index.html. Accessed Aug 20, 2018."},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1778765.1778803"},{"key":"e_1_3_2_1_40_1","volume-title":"Accessed","author":"Shirley Peter","year":"2018","unstructured":"Peter Shirley . 2018 . Ray Tracing in One Weekend. https:\/\/github.com\/petershirley\/raytracinginoneweekend . Accessed Aug 20, 2018. Peter Shirley. 2018. Ray Tracing in One Weekend. https:\/\/github.com\/petershirley\/raytracinginoneweekend. Accessed Aug 20, 2018."},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCC.2012.57"},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3007787.3001200"},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/503272.503300"},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2499368.2451169"},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2935323.2935327"},{"volume-title":"ECOOP","author":"Springer Matthias","key":"e_1_3_2_1_46_1","unstructured":"Matthias Springer and Hidehiko Masuhara . 2019. DynaSOAr: A Parallel Memory Allocator for Object-oriented Programming on GPUs with Efficient Memory Access . In ECOOP . http:\/\/drops.dagstuhl.de\/opus\/volltexte\/2019\/10809 Matthias Springer and Hidehiko Masuhara. 2019. DynaSOAr: A Parallel Memory Allocator for Object-oriented Programming on GPUs with Efficient Memory Access. In ECOOP. http:\/\/drops.dagstuhl.de\/opus\/volltexte\/2019\/10809"},{"key":"e_1_3_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/InPar.2012.6339604"},{"key":"e_1_3_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/354222.353189"},{"key":"e_1_3_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1275937.1275941"},{"key":"e_1_3_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2010.5452075"},{"key":"e_1_3_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/263698.263728"}],"event":{"name":"ASPLOS '21: 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"],"location":"Virtual USA","acronym":"ASPLOS '21"},"container-title":["Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3445814.3446734","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3445814.3446734","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:28:14Z","timestamp":1750195694000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3445814.3446734"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,4,17]]},"references-count":51,"alternative-id":["10.1145\/3445814.3446734","10.1145\/3445814"],"URL":"https:\/\/doi.org\/10.1145\/3445814.3446734","relation":{},"subject":[],"published":{"date-parts":[[2021,4,17]]},"assertion":[{"value":"2021-04-17","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}