{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,5]],"date-time":"2026-10-05T22:38:34Z","timestamp":1791239914858,"version":"4.1.0"},"reference-count":49,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2013,1,1]],"date-time":"2013-01-01T00:00:00Z","timestamp":1356998400000},"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":[[2013,1]]},"abstract":"<jats:p>This article addresses the compilation of a sequential program for parallel execution on a modern GPU. To this end, we present a novel source-to-source compiler called PPCG. PPCG singles out for its ability to accelerate computations from any static control loop nest, generating multiple CUDA kernels when necessary. We introduce a multilevel tiling strategy and a code generation scheme for the parallelization and locality optimization of imperfectly nested loops, managing memory and exposing concurrency according to the constraints of modern GPUs. We evaluate our algorithms and tool on the entire PolyBench suite.<\/jats:p>","DOI":"10.1145\/2400682.2400713","type":"journal-article","created":{"date-parts":[[2013,1,22]],"date-time":"2013-01-22T15:28:56Z","timestamp":1358868536000},"page":"1-23","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":305,"title":["Polyhedral parallel code generation for CUDA"],"prefix":"10.1145","volume":"9","author":[{"given":"Sven","family":"Verdoolaege","sequence":"first","affiliation":[{"name":"INRIA and \u00c9cole Normale Sup\u00e9rieure"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Juan","family":"Carlos Juega","sequence":"additional","affiliation":[{"name":"Universidad Complutense de Madrid"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Albert","family":"Cohen","sequence":"additional","affiliation":[{"name":"INRIA and \u00c9cole Normale Sup\u00e9rieure"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jos\u00e9","family":"Ignacio G\u00f3mez","sequence":"additional","affiliation":[{"name":"Universidad Complutense de Madrid"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Christian","family":"Tenllado","sequence":"additional","affiliation":[{"name":"Universidad Complutense de Madrid"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Francky","family":"Catthoor","sequence":"additional","affiliation":[{"name":"IMEC"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2013,1,20]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/29873.29875"},{"key":"e_1_2_1_2_1","unstructured":"Allen R. and Kennedy K. 2001. Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers.   Allen R. and Kennedy K. 2001. Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers."},{"key":"e_1_2_1_3_1","volume-title":"Workshop on Languages and Compilers for Parallel Computing (LCPC'11)","author":"Amini M.","unstructured":"Amini , M. , Coelho , F. , Irigoin , F. , and Keryell , R . 2011. Static compilation analysis for host-accelerator communication optimization . In Workshop on Languages and Compilers for Parallel Computing (LCPC'11) . Lecture Notes in Computer Science. Springer. Amini, M., Coelho, F., Irigoin, F., and Keryell, R. 2011. Static compilation analysis for host-accelerator communication optimization. In Workshop on Languages and Compilers for Parallel Computing (LCPC'11). Lecture Notes in Computer Science. Springer."},{"key":"e_1_2_1_4_1","unstructured":"AMP 2011. C&plus;&plus; accelerated massive parallelism. http:\/\/msdn.microsoft.com\/en-us\/library\/hh265137  AMP 2011. C&plus;&plus; accelerated massive parallelism. http:\/\/msdn.microsoft.com\/en-us\/library\/hh265137"},{"key":"e_1_2_1_5_1","volume-title":"Proceedings of the International Workshop Compilers for Parallel Computer (CPC).","author":"Baghdadi S.","unstructured":"Baghdadi , S. , Gr\u00f6sslinger , A. , and Cohen , A . 2010. Putting automatic polyhedral compilation for GPGPU to work . In Proceedings of the International Workshop Compilers for Parallel Computer (CPC). Baghdadi, S., Gr\u00f6sslinger, A., and Cohen, A. 2010. Putting automatic polyhedral compilation for GPGPU to work. In Proceedings of the International Workshop Compilers for Parallel Computer (CPC)."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11970-5_14"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/1025127.1025992"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11970-5_16"},{"key":"e_1_2_1_9_1","volume-title":"The Software Vectorization Handbook. Applying Multimedia Extensions for Maximum Performance","author":"Bik A. J. C.","unstructured":"Bik , A. J. C. 2004. The Software Vectorization Handbook. Applying Multimedia Extensions for Maximum Performance . Intel Press . Bik, A. J. C. 2004. The Software Vectorization Handbook. Applying Multimedia Extensions for Maximum Performance. Intel Press."},{"key":"e_1_2_1_10_1","unstructured":"Bondhugula U. 2012. PLuTo: An automatic parallelizer and locality optimizer for multicores version 0.7. http:\/\/pluto-compiler.sourceforge.net\/  Bondhugula U. 2012. PLuTo: An automatic parallelizer and locality optimizer for multicores version 0.7. http:\/\/pluto-compiler.sourceforge.net\/"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1379022.1375595"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375595"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-8191(98)00020-9"},{"key":"e_1_2_1_14_1","unstructured":"Chen C. Chame J. and Hall M. 2008. A framework for composing high-level loop transformations. Tech. rep. USC Computer Science.  Chen C. Chame J. and Hall M. 2008. A framework for composing high-level loop transformations. Tech. rep. USC Computer Science."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11515-8_25"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01407931"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01407835"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01407835"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11515-8_24"},{"key":"e_1_2_1_20_1","volume-title":"1st Interantional Workshop on Polyhedral Compilation Techniques (IMPACT'11)","author":"Grosser T.","unstructured":"Grosser , T. , Zheng , H., A, R. , Simb\u00fcrger , A. , Gr\u00f6sslinger , A. , and Pouchet , L . -N. 2011. Polly: Polyhedral optimization in llvm . In 1st Interantional Workshop on Polyhedral Compilation Techniques (IMPACT'11) . Grosser, T., Zheng, H., A, R., Simb\u00fcrger, A., Gr\u00f6sslinger, A., and Pouchet, L.-N. 2011. Polly: Polyhedral optimization in llvm. In 1st Interantional Workshop on Polyhedral Compilation Techniques (IMPACT'11)."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00722-4_17"},{"key":"e_1_2_1_22_1","unstructured":"HMPP 2010. HMPP workbench: directive-based multi-language and multi-target hybrid programming model. http:\/\/www.caps-entreprise.com\/hmpp.html  HMPP 2010. HMPP workbench: directive-based multi-language and multi-target hybrid programming model. http:\/\/www.caps-entreprise.com\/hmpp.html"},{"key":"e_1_2_1_23_1","unstructured":"HPC Project. 2012. Par4All automatic parallelization version 1.3. http:\/\/www.par4all.org  HPC Project. 2012. Par4All automatic parallelization version 1.3. http:\/\/www.par4all.org"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2010.36"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1504176.1504194"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1735688.1735698"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2009.5160988"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1133997"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1454115.1454119"},{"key":"e_1_2_1_31_1","volume-title":"NVIDIA CUDA Programming guide 4.0","author":"NVIDIA Corporation 2011.","unstructured":"NVIDIA Corporation 2011. NVIDIA CUDA Programming guide 4.0 . NVIDIA Corporation . NVIDIA Corporation 2011. NVIDIA CUDA Programming guide 4.0. NVIDIA Corporation."},{"key":"e_1_2_1_32_1","unstructured":"OpenACC 2011. OpenACC: Directives for accelerators. http:\/\/www.openacc-standard.org  OpenACC 2011. OpenACC: Directives for accelerators. http:\/\/www.openacc-standard.org"},{"key":"e_1_2_1_33_1","unstructured":"PoCC 2012. PoCC: the polyhedral compiler collection version 1.1. http:\/\/www.cse.ohio-state.edu\/~pouchet\/software\/pocc\/  PoCC 2012. PoCC: the polyhedral compiler collection version 1.1. http:\/\/www.cse.ohio-state.edu\/~pouchet\/software\/pocc\/"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2304576.2304585"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250780"},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the 23rd international conference on Languages and Compilers for Parallel Computing (LCPC'10)","author":"Rudy G.","unstructured":"Rudy , G. , Khan , M. M. , Hall , M. , Chen , C. , and Jacqueline , C . 2011. A programming language interface to describe transformations and code generation . In Proceedings of the 23rd international conference on Languages and Compilers for Parallel Computing (LCPC'10) . Springer, 136--150. Rudy, G., Khan, M. M., Hall, M., Chen, C., and Jacqueline, C. 2011. A programming language interface to describe transformations and code generation. In Proceedings of the 23rd international conference on Languages and Compilers for Parallel Computing (LCPC'10). Springer, 136--150."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1345206.1345220"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1356058.1356084"},{"key":"e_1_2_1_39_1","volume-title":"International Conference on Parallel Architecture and Compilation Techniques (PACT'02)","author":"Shin J.","unstructured":"Shin , J. , Chame , J. , and Hall , M. W . 2002. Compiler-controlled caching in superword register files for multimedia extension architectures . In International Conference on Parallel Architecture and Compilation Techniques (PACT'02) . Shin, J., Chame, J., and Hall, M. W. 2002. Compiler-controlled caching in superword register files for multimedia extension architectures. In International Conference on Parallel Architecture and Compilation Techniques (PACT'02)."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2005.33"},{"key":"e_1_2_1_41_1","volume-title":"PGI Accelerator Programming Model for Fortran & C v1.3 ed","author":"The Portland Group 2010.","unstructured":"The Portland Group 2010. PGI Accelerator Programming Model for Fortran & C v1.3 ed . The Portland Group . The Portland Group 2010. PGI Accelerator Programming Model for Fortran & C v1.3 ed. The Portland Group."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2009.18"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-89740-8_1"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28652-0_2"},{"key":"e_1_2_1_45_1","volume-title":"Proceedings of the International workshop on Polyhedral Compilation Techniques (IMPACT'12)","author":"Vasilache N.","unstructured":"Vasilache , N. , Meister , B. , Baskaran , M. , and Lethin , R . 2012. Joint scheduling and layout optimization to enable multi-level vectorization . In Proceedings of the International workshop on Polyhedral Compilation Techniques (IMPACT'12) . Vasilache, N., Meister, B., Baskaran, M., and Lethin, R. 2012. Joint scheduling and layout optimization to enable multi-level vectorization. In Proceedings of the International workshop on Polyhedral Compilation Techniques (IMPACT'12)."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.5555\/1888390.1888455"},{"key":"e_1_2_1_47_1","volume-title":"Proceedings of the International Workshop on Polyhedral Compilation Techniques (IMPACT'12)","author":"Verdoolaege S.","unstructured":"Verdoolaege , S. and Grosser , T . 2012. Polyhedral extraction tool . In Proceedings of the International Workshop on Polyhedral Compilation Techniques (IMPACT'12) . Verdoolaege, S. and Grosser, T. 2012. Polyhedral extraction tool. In Proceedings of the International Workshop on Polyhedral Compilation Techniques (IMPACT'12)."},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.v35:2"},{"key":"e_1_2_1_49_1","volume-title":"High Performance Compilers for Parallel Computing","author":"Wolfe M.","unstructured":"Wolfe , M. 1996. High Performance Compilers for Parallel Computing . Addison Wesley . Wolfe, M. 1996. High Performance Compilers for Parallel Computing. Addison Wesley."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1088149.1088172"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2400682.2400713","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2400682.2400713","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:18:52Z","timestamp":1750234732000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2400682.2400713"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,1]]},"references-count":49,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2013,1]]}},"alternative-id":["10.1145\/2400682.2400713"],"URL":"https:\/\/doi.org\/10.1145\/2400682.2400713","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2013,1]]},"assertion":[{"value":"2012-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-01-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}