{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,27]],"date-time":"2026-02-27T03:47:25Z","timestamp":1772164045086,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":30,"publisher":"ACM","license":[{"start":{"date-parts":[[2015,10,26]],"date-time":"2015-10-26T00:00:00Z","timestamp":1445817600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100000781","name":"European Research Council","doi-asserted-by":"publisher","award":["291389"],"award-info":[{"award-number":["291389"]}],"id":[{"id":"10.13039\/501100000781","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2015,10,26]]},"DOI":"10.1145\/2814204.2814216","type":"proceedings-article","created":{"date-parts":[[2015,12,4]],"date-time":"2015-12-04T09:48:03Z","timestamp":1449222483000},"page":"75-84","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["Contract-based general-purpose GPU programming"],"prefix":"10.1145","author":[{"given":"Alexey","family":"Kolesnichenko","sequence":"first","affiliation":[{"name":"ETH Zurich, Switzerland"}]},{"given":"Christopher M.","family":"Poskitt","sequence":"additional","affiliation":[{"name":"ETH Zurich, Switzerland"}]},{"given":"Sebastian","family":"Nanz","sequence":"additional","affiliation":[{"name":"ETH Zurich, Switzerland"}]},{"given":"Bertrand","family":"Meyer","sequence":"additional","affiliation":[{"name":"ETH Zurich, Switzerland, and Politecnico di Milano, Italy, and Innopolis University, Kazan, Russia"}]}],"member":"320","published-online":{"date-parts":[[2015,10,26]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2597809.2597818"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2743017"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2014.03.013"},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2013.2297120"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254066"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863482.1863487"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1504\/IJHPCN.2012.046370"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/PDP.2013.29"},{"key":"e_1_3_2_1_9_1","unstructured":"M. Harris. An efficient matrix transpose in CUDA C\/C++. http:\/\/devblogs.nvidia.com\/parallelforall\/ efficient-matrix-transpose-cuda-cc\/ accessed: March 2015.  M. Harris. An efficient matrix transpose in CUDA C\/C++. http:\/\/devblogs.nvidia.com\/parallelforall\/ efficient-matrix-transpose-cuda-cc\/ accessed: March 2015."},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950409"},{"key":"e_1_3_2_1_11_1","volume-title":"The OpenCL specification: Version 1.2. https:\/\/www.khronos.org\/registry\/cl\/ specs\/opencl-1.2.pdf","author":"Khronos OpenCL Working Group","year":"2012"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2011.09.001"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1882291.1882320"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2145816.2145844"},{"key":"e_1_3_2_1_15_1","unstructured":"Linear Algebra: Gaussian Elimination. http:\/\/www.cs. rutgers.edu\/~venugopa\/parallel_summer2012\/ge.html accessed: March 2015.  Linear Algebra: Gaussian Elimination. http:\/\/www.cs. rutgers.edu\/~venugopa\/parallel_summer2012\/ge.html accessed: March 2015."},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2814204.2814211"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-40047-6_86"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/261119"},{"key":"e_1_3_2_1_19_1","first-page":"788","volume-title":"Proceedings of the 37th International Conference on Software Engineering (ICSE \u201915)","author":"Nanz S."},{"key":"e_1_3_2_1_20_1","unstructured":"NVIDIA\n  : CUDA Parallel Computing Platform. http:\/\/www. nvidia.com\/object\/cuda_home_new.html accessed: March 2015.  NVIDIA: CUDA Parallel Computing Platform. http:\/\/www. nvidia.com\/object\/cuda_home_new.html accessed: March 2015."},{"key":"e_1_3_2_1_21_1","volume-title":"CUDA Toolkit Documentation \u2013 Thrust. http: \/\/docs.nvidia.com\/cuda\/thrust\/, accessed","author":"NVIDIA","year":"2015"},{"key":"e_1_3_2_1_22_1","unstructured":"NVIDIA\n  : GPU Applications. http:\/\/www.nvidia.com\/ object\/gpu-applications.html accessed: March 2015.  NVIDIA: GPU Applications. http:\/\/www.nvidia.com\/ object\/gpu-applications.html accessed: March 2015."},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2047862.2047883"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCC.2012.57"},{"key":"e_1_3_2_1_25_1","first-page":"272","volume-title":"Proceedings of the 12th International Conference on Parallel Computing Technologies (PaCT \u201913)","volume":"7979","author":"Steuwer M."},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2584665"},{"key":"e_1_3_2_1_27_1","first-page":"196","volume-title":"Proceedings of the 11th International Conference on Compiler Construction (CC \u201902)","volume":"2304","author":"Thies W."},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2786822"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03869-3_82"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-013-9247-y"}],"event":{"name":"GPCE'15: Generative Programming: Concepts and Experiences","location":"Pittsburgh PA USA","acronym":"GPCE'15","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2814204.2814216","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2814204.2814216","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:12:47Z","timestamp":1750212767000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2814204.2814216"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,10,26]]},"references-count":30,"alternative-id":["10.1145\/2814204.2814216","10.1145\/2814204"],"URL":"https:\/\/doi.org\/10.1145\/2814204.2814216","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/2936314.2814216","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2015,10,26]]},"assertion":[{"value":"2015-10-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}