{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T07:18:26Z","timestamp":1770275906442,"version":"3.49.0"},"publisher-location":"Cham","reference-count":24,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783319633862","type":"print"},{"value":"9783319633879","type":"electronic"}],"license":[{"start":{"date-parts":[[2017,1,1]],"date-time":"2017-01-01T00:00:00Z","timestamp":1483228800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2017,1,1]],"date-time":"2017-01-01T00:00:00Z","timestamp":1483228800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2017]]},"DOI":"10.1007\/978-3-319-63387-9_25","type":"book-chapter","created":{"date-parts":[[2017,7,12]],"date-time":"2017-07-12T08:53:43Z","timestamp":1499849623000},"page":"507-525","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":12,"title":["GPUDrano: Detecting Uncoalesced Accesses in GPU Programs"],"prefix":"10.1007","author":[{"given":"Rajeev","family":"Alur","sequence":"first","affiliation":[]},{"given":"Joseph","family":"Devietti","sequence":"additional","affiliation":[]},{"given":"Omar S.","family":"Navarro Leija","sequence":"additional","affiliation":[]},{"given":"Nimit","family":"Singhania","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2017,7,13]]},"reference":[{"key":"25_CR1","doi-asserted-by":"crossref","unstructured":"Amilkanthwar, M., Balachandran, S.: CUPL: a compile-time uncoalesced memory access pattern locator for CUDA. In: Proceedings of the 27th International ACM Conference on International Conference on Supercomputing, ICS 2013, pp. 459\u2013460. ACM, New York (2013). http:\/\/doi.acm.org\/10.1145\/2464996.2467288","DOI":"10.1145\/2464996.2467288"},{"key":"25_CR2","doi-asserted-by":"crossref","unstructured":"Baskaran, M.M., Bondhugula, U., Krishnamoorthy, S., Ramanujam, J., Rountev, A., Sadayappan, P.: Automatic data movement and computation mapping for multi-level parallel architectures with explicitly managed memories. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2008, pp. 1\u201310. ACM, New York (2008). http:\/\/doi.acm.org\/10.1145\/1345206.1345210","DOI":"10.1145\/1345206.1345210"},{"key":"25_CR3","doi-asserted-by":"crossref","unstructured":"Baskaran, M.M., Bondhugula, U., Krishnamoorthy, S., Ramanujam, J., Rountev, A., Sadayappan, P.: A compiler framework for optimization of affine loop nests for GPGPUs. In: Proceedings of the 22nd Annual International Conference on Supercomputing, ICS 2008, pp. 225\u2013234. ACM, New York (2008). http:\/\/doi.acm.org\/10.1145\/1375527.1375562","DOI":"10.1145\/1375527.1375562"},{"issue":"3","key":"25_CR4","doi-asserted-by":"publisher","first-page":"10:1","DOI":"10.1145\/2743017","volume":"37","author":"A Betts","year":"2015","unstructured":"Betts, A., Chong, N., Donaldson, A.F., Ketema, J., Qadeer, S., Thomson, P., Wickerson, J.: The design and implementation of a verification technique for GPU kernels. ACM Trans. Program. Lang. Syst. 37(3), 10:1\u201310:49 (2015). http:\/\/doi.acm.org\/10.1145\/2743017","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"25_CR5","doi-asserted-by":"crossref","unstructured":"Che, S., Boyer, M., Meng, J., Tarjan, D., Sheaffer, J.W., Lee, S.H., Skadron, K.: Rodinia: a benchmark suite for heterogeneous computing. In: 2009 IEEE International Symposium on Workload Characterization (IISWC), pp. 44\u201354, October 2009","DOI":"10.1109\/IISWC.2009.5306797"},{"key":"25_CR6","doi-asserted-by":"crossref","unstructured":"Che, S., Sheaffer, J.W., Skadron, K.: Dymaxion: optimizing memory access patterns for heterogeneous systems. In: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2011, pp. 13:1\u201313:11. ACM, New York (2011). http:\/\/doi.acm.org\/10.1145\/2063384.2063401","DOI":"10.1145\/2063384.2063401"},{"key":"25_CR7","doi-asserted-by":"crossref","unstructured":"Chen, G., Wu, B., Li, D., Shen, X.: PORPLE: an extensible optimizer for portable data placement on GPU. In: Proceedings of the 47th Annual IEEE\/ACM International Symposium on Microarchitecture, MICRO-47, pp. 88\u2013100. IEEE Computer Society, Washington, DC (2014). http:\/\/dx.doi.org\/10.1109\/MICRO.2014.20","DOI":"10.1109\/MICRO.2014.20"},{"key":"25_CR8","doi-asserted-by":"crossref","unstructured":"Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL 1977, pp. 238\u2013252. ACM, New York (1977). http:\/\/doi.acm.org\/10.1145\/512950.512973","DOI":"10.1145\/512950.512973"},{"key":"25_CR9","doi-asserted-by":"crossref","unstructured":"Fauzia, N., Pouchet, L.N., Sadayappan, P.: Characterizing and enhancing global memory data coalescing on GPUs. In: Proceedings of the 13th Annual IEEE\/ACM International Symposium on Code Generation and Optimization, CGO 2015, pp. 12\u201322. IEEE Computer Society, Washington, DC (2015). http:\/\/dl.acm.org\/citation.cfm?id=2738600.2738603","DOI":"10.1109\/CGO.2015.7054183"},{"key":"25_CR10","unstructured":"Lv, J., Li, G., Humphrey, A., Gopalakrishnan, G.: Performance degradation analysis of GPU kernels. In: Workshop on Exploiting Concurrency Efficiently and Correctly (2011)"},{"key":"25_CR11","doi-asserted-by":"crossref","unstructured":"Kim, Y., Shrivastava, A.: CuMAPz: A tool to analyze memory access patterns in CUDA. In: Proceedings of the 48th Design Automation Conference, DAC 2011, pp. 128\u2013133. ACM, New York (2011). http:\/\/doi.acm.org\/10.1145\/2024724.2024754","DOI":"10.1145\/2024724.2024754"},{"key":"25_CR12","doi-asserted-by":"crossref","unstructured":"Lee, S., Eigenmann, R.: OpenMPC: extended OpenMP programming and tuning for GPUs. In: Proceedings of the 2010 ACM\/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2010, pp. 1\u201311. IEEE Computer Society, Washington, DC (2010). https:\/\/doi.org\/10.1109\/SC.2010.36","DOI":"10.1109\/SC.2010.36"},{"key":"25_CR13","doi-asserted-by":"crossref","unstructured":"Lee, S., Min, S.J., Eigenmann, R.: OpenMP to GPGPU: a compiler framework for automatic translation and optimization. In: Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2009, pp. 101\u2013110. ACM, New York (2009). http:\/\/doi.acm.org\/10.1145\/1504176.1504194","DOI":"10.1145\/1504176.1504194"},{"key":"25_CR14","doi-asserted-by":"crossref","unstructured":"Li, G., Gopalakrishnan, G.: Scalable SMT-based verification of GPU kernel functions. In: Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2010, pp. 187\u2013196. ACM, New York (2010). http:\/\/doi.acm.org\/10.1145\/1882291.1882320","DOI":"10.1145\/1882291.1882320"},{"key":"25_CR15","doi-asserted-by":"crossref","unstructured":"Li, G., Li, P., Sawaya, G., Gopalakrishnan, G., Ghosh, I., Rajan, S.P.: GKLEE: concolic verification and test generation for GPUs. In: Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2012, pp. 215\u2013224. ACM, New York (2012). http:\/\/doi.acm.org\/10.1145\/2145816.2145844","DOI":"10.1145\/2370036.2145844"},{"key":"25_CR16","unstructured":"Microsoft: C++ Accelerated Massive Parallelism. https:\/\/msdn.microsoft.com\/en-us\/library\/hh265137.aspx"},{"key":"25_CR17","volume-title":"Principles of Program Analysis","author":"F Nielson","year":"2010","unstructured":"Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer Publishing Company Incorporated, Heidelberg (2010)"},{"key":"25_CR18","unstructured":"Nvidia: CUDA C Programming Guide v7.5. http:\/\/docs.nvidia.com\/cuda\/cuda-c-programming-guide\/"},{"key":"25_CR19","unstructured":"OpenACC-standard.org: OpenACC: Directives for Accelerators. http:\/\/www.openacc.org\/"},{"key":"25_CR20","doi-asserted-by":"crossref","unstructured":"Sung, I.J., Stratton, J.A., Hwu, W.M.W.: Data layout transformation exploiting memory-level parallelism in structured grid many-core applications. In: Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques, PACT 2010, pp. 513\u2013522. ACM, New York (2010). http:\/\/doi.acm.org\/10.1145\/1854273.1854336","DOI":"10.1145\/1854273.1854336"},{"key":"25_CR21","doi-asserted-by":"crossref","unstructured":"Ueng, S.Z., Lathara, M., Baghsorkhi, S.S., Wen-mei, W.H.: CUDA-Lite: Reducing GPU Programming Complexity, pp. 1\u201315. Springer, Heidelberg (2008). http:\/\/dx.doi.org\/10.1007\/978-3-540-89740-8_1","DOI":"10.1007\/978-3-540-89740-8_1"},{"issue":"4","key":"25_CR22","doi-asserted-by":"publisher","first-page":"54:1","DOI":"10.1145\/2400682.2400713","volume":"9","author":"S Verdoolaege","year":"2013","unstructured":"Verdoolaege, S., Carlos Juega, J., Cohen, A., Ignacio G\u00f3mez, J., Tenllado, C., Catthoor, F.: Polyhedral parallel code generation for CUDA. ACM Trans. Archit. Code Optim. 9(4), 54:1\u201354:23 (2013). http:\/\/doi.acm.org\/10.1145\/2400682.2400713","journal-title":"ACM Trans. Archit. Code Optim."},{"key":"25_CR23","doi-asserted-by":"crossref","unstructured":"Wu, J., Belevich, A., Bendersky, E., Heffernan, M., Leary, C., Pienaar, J., Roune, B., Springer, R., Weng, X., Hundt, R.: Gpucc: An open-source GPGPU compiler. In: Proceedings of the 2016 International Symposium on Code Generation and Optimization, CGO 2016, pp. 105\u2013116. ACM, New York (2016). http:\/\/doi.acm.org\/10.1145\/2854038.2854041","DOI":"10.1145\/2854038.2854041"},{"key":"25_CR24","doi-asserted-by":"crossref","unstructured":"Yang, Y., Xiang, P., Kong, J., Zhou, H.: A GPGPU compiler for memory optimization and parallelism management. In: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2010, pp. 86\u201397. ACM, New York (2010). http:\/\/doi.acm.org\/10.1145\/1806596.1806606","DOI":"10.1145\/1806596.1806606"}],"container-title":["Lecture Notes in Computer Science","Computer Aided Verification"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-319-63387-9_25","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,7,13]],"date-time":"2021-07-13T00:21:35Z","timestamp":1626135695000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-319-63387-9_25"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017]]},"ISBN":["9783319633862","9783319633879"],"references-count":24,"URL":"https:\/\/doi.org\/10.1007\/978-3-319-63387-9_25","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017]]},"assertion":[{"value":"13 July 2017","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"CAV","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Computer Aided Verification","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Heidelberg","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Germany","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2017","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"24 July 2017","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"28 July 2017","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"30","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"cav2017","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/cavconference.org\/2017\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"This content has been made available to all.","name":"free","label":"Free to read"}]}}