{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,1]],"date-time":"2026-05-01T22:46:54Z","timestamp":1777675614122,"version":"3.51.4"},"reference-count":48,"publisher":"SAGE Publications","issue":"6","license":[{"start":{"date-parts":[[2021,6,3]],"date-time":"2021-06-03T00:00:00Z","timestamp":1622678400000},"content-version":"vor","delay-in-days":365,"URL":"http:\/\/www.sagepub.com\/licence-information-for-chorus"}],"funder":[{"DOI":"10.13039\/100000006","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["N00014-14-1-0117"],"award-info":[{"award-number":["N00014-14-1-0117"]}],"id":[{"id":"10.13039\/100000006","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["journals.sagepub.com"],"crossmark-restriction":true},"short-container-title":["The International Journal of High Performance Computing Applications"],"published-print":{"date-parts":[[2020,11]]},"abstract":"<jats:p>The ability to model, analyze, and predict execution time of computations is an important building block that supports numerous efforts, such as load balancing, benchmarking, job scheduling, developer-guided performance optimization, and the automation of performance tuning for high performance, parallel applications. In today\u2019s increasingly heterogeneous computing environment, this task must be accomplished efficiently across multiple architectures, including massively parallel coprocessors like GPUs, which are increasingly prevalent in the world\u2019s fastest supercomputers. To address this challenge, we present an approach for constructing customizable, cross-machine performance models for GPU kernels, including a mechanism to automatically and symbolically gather performance-relevant kernel operation counts, a tool for formulating mathematical models using these counts, and a customizable parameterized collection of benchmark kernels used to calibrate models to GPUs in a black-box fashion. With this approach, we empower the user to manage trade-offs between model accuracy, evaluation speed, and generalizability. A user can define their own model and customize the calibration process, making it as simple or complex as desired, and as application-targeted or general as desired. As application examples of our approach, we demonstrate both linear and nonlinear models; these examples are designed to predict execution times for multiple variants of a particular computation: two matrix-matrix multiplication variants, four discontinuous Galerkin differentiation operation variants, and two 2D five-point finite difference stencil variants. For each variant, we present accuracy results on GPUs from multiple vendors and hardware generations. We view this highly user-customizable approach as a response to a central question arising in GPU performance modeling: how can we model GPU performance in a cost-explanatory fashion while maintaining accuracy, evaluation speed, portability, and ease of use, an attribute we believe precludes approaches requiring manual collection of kernel or hardware statistics.<\/jats:p>","DOI":"10.1177\/1094342020921340","type":"journal-article","created":{"date-parts":[[2020,6,3]],"date-time":"2020-06-03T07:18:31Z","timestamp":1591168711000},"page":"589-614","update-policy":"https:\/\/doi.org\/10.1177\/sage-journals-update-policy","source":"Crossref","is-referenced-by-count":1,"title":["A mechanism for balancing accuracy and scope in cross-machine black-box GPU performance modeling"],"prefix":"10.1177","volume":"34","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3329-3279","authenticated-orcid":false,"given":"James D","family":"Stevens","sequence":"first","affiliation":[{"name":"Department of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andreas","family":"Kl\u00f6ckner","sequence":"additional","affiliation":[{"name":"Department of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"179","published-online":{"date-parts":[[2020,6,3]]},"reference":[{"key":"bibr1-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/1693453.1693470"},{"key":"bibr2-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1287\/moor.19.4.769"},{"key":"bibr3-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/1176760.1176765"},{"key":"bibr4-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1177\/1094342013507960"},{"key":"bibr5-1094342020921340","first-page":"3393","volume-title":"Advances in neural information processing systems","author":"Chen T","year":"2018"},{"key":"bibr6-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/1735688.1735702"},{"key":"bibr7-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/2.982918"},{"key":"bibr8-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/5666.5673"},{"key":"bibr9-1094342020921340","volume-title":"Modelo de estimaci\u00f3n de rendimiento para arquitecturas paralelas heterog\u00e9neas","author":"Garc\u00eda CYG","year":"2013"},{"key":"bibr10-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2019.00036"},{"key":"bibr11-1094342020921340","doi-asserted-by":"crossref","unstructured":"Hammer J, Eitzinger J, Hager G, et al. (2017) Kerncraft: a tool for analytic performance modeling of loop kernels.\n                      CoRR\n                      abs\/1702.04653.","DOI":"10.1007\/978-3-319-56702-0_1"},{"key":"bibr47-1094342020921340","volume-title":"Nodal discontinuous Galerkin methods: algorithms, analysis, and applications","author":"Hesthaven JS","year":"2007"},{"key":"bibr12-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555775"},{"key":"bibr13-1094342020921340","doi-asserted-by":"crossref","unstructured":"Hong S, Kim H (2010) An integrated GPU power and performance model. In: ACM SIGARCH Computer Architecture News, volume 38. ACM, pp. 280\u2013289. New York, NY, USA. DOI: 10.1145\/1816038.1815998","DOI":"10.1145\/1816038.1815998"},{"key":"bibr14-1094342020921340","doi-asserted-by":"crossref","unstructured":"Jia W, Shaw KA, Martonosi M (2012) Stargazer: automated regression-based GPU design space exploration. In: 2012 IEEE international symposium on performance analysis of systems software, New Brunswick, NJ, USA, April 2012, pp. 2\u201313. New York, NY, USA: IEEE. DOI: 10.1109\/ISPASS.2012.6189201.","DOI":"10.1109\/ISPASS.2012.6189201"},{"key":"bibr15-1094342020921340","doi-asserted-by":"crossref","unstructured":"Johnston B, Falzon G, Milthorpe J (2018) OpenCL performance prediction using architecture-independent features.\n                      CoRR\n                      abs\/1811.00156.","DOI":"10.1109\/HPCS.2018.00095"},{"key":"bibr16-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.6"},{"key":"bibr17-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/HiPC.2012.6507525"},{"key":"bibr18-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/1735688.1735696"},{"key":"bibr19-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627387"},{"key":"bibr20-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/2774959.2774969"},{"key":"bibr49-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2009.06.041"},{"key":"bibr21-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/2935323.2935325"},{"key":"bibr22-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2017.04.002"},{"key":"bibr23-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/HIPC.2009.5433179"},{"key":"bibr24-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/2749246.2749265"},{"key":"bibr25-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346318"},{"key":"bibr26-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2014.2308216"},{"key":"bibr27-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2016.04.002"},{"key":"bibr28-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/2063384.2063402"},{"key":"bibr29-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1177\/1094342012468180"},{"key":"bibr30-1094342020921340","volume-title":"OpenCL Programming Guide","author":"Munshi A","year":"2011"},{"key":"bibr31-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/1365490.1365500"},{"key":"bibr32-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/2212908.2212937"},{"key":"bibr33-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/ICPPW.2005.72"},{"key":"bibr34-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1145\/2370036.2145819"},{"key":"bibr35-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2013.73"},{"key":"bibr36-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2012.20"},{"key":"bibr37-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14390-8_64"},{"key":"bibr38-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1177\/1094342014568690"},{"key":"bibr39-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2003.1178879"},{"key":"bibr40-1094342020921340","doi-asserted-by":"crossref","unstructured":"Verdoolaege S (2010)\n                      isl\n                      : an integer set library for the polyhedral model. In: Mathematical software-ICMS 2010, Berlin Heidelberg. pp. 299\u2013302. Berlin, Heidelberg: Springer. DOI: 10.1007\/978-3-642-15582-6_49.","DOI":"10.1007\/978-3-642-15582-6_49"},{"key":"bibr41-1094342020921340","unstructured":"Verdoolaege S, Grosser T (2012) Polyhedral extraction tool. In: Second international workshop on polyhedral compilation techniques (IMPACT\u201912), Paris, France, 23 January 2012, pp. 1\u201316. Paris, France. DOI: 10.13140\/RG.2.1.4213.4562."},{"key":"bibr42-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1007\/s00453-006-1231-0"},{"key":"bibr43-1094342020921340","unstructured":"Wikipedia contributors (2019) List of Nvidia graphics processing units. Available at: https:\/\/en.wikipedia.org\/w\/index.php?title=List_of_Nvidia_graphics_processing_unitsoldid=923612324 (accessed 1 November 2019)."},{"key":"bibr44-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2015.7056063"},{"key":"bibr45-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/NAS.2011.51"},{"key":"bibr46-1094342020921340","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2011.5749745"}],"container-title":["The International Journal of High Performance Computing Applications"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1094342020921340","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/full-xml\/10.1177\/1094342020921340","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1094342020921340","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/1094342020921340","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T08:16:00Z","timestamp":1777450560000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.1177\/1094342020921340"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,6,3]]},"references-count":48,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2020,11]]}},"alternative-id":["10.1177\/1094342020921340"],"URL":"https:\/\/doi.org\/10.1177\/1094342020921340","relation":{},"ISSN":["1094-3420","1741-2846"],"issn-type":[{"value":"1094-3420","type":"print"},{"value":"1741-2846","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,6,3]]}}}