Retargeting and Respecializing GPU Workloads for Performance Portability

被引:1
作者
Ivanov, Ivan R. [1 ]
Zinenko, Oleksandr [2 ]
Domke, Jens [3 ]
Endo, Toshio [4 ]
Moses, William S. [5 ]
机构
[1] Tokyo Inst Technol, RIKEN RCCS, Tokyo, Japan
[2] Google DeepMind, Paris, France
[3] RIKEN R CCS, Kobe, Hyogo, Japan
[4] Tokyo Inst Technol, Tokyo, Japan
[5] Univ Illinois, Google DeepMind, Champaign, IL USA
来源
2024 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, CGO | 2024年
关键词
D O I
10.1109/CGO57630.2024.10444828
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
In order to come close to peak performance, accelerators like GPUs require significant architecture-specific tuning that understand the availability of shared memory, parallelism, tensor cores, etc. Unfortunately, the pursuit of higher performance and lower costs have led to a significant diversification of architecture designs, even from the same vendor. This creates the need for performance portability across different GPUs, especially important for programs in a particular programming model with a certain architecture in mind. Even when the program can be seamlessly executed on a different architecture, it may suffer a performance penalty due to it not being sized appropriately to the available hardware resources such as fast memory and registers, let alone not using newer advanced features of the architecture. We propose a new approach to improving performance of (legacy) CUDA programs for modern machines by automatically adjusting the amount of work each parallel thread does, and the amount of memory and register resources it requires. By operating within the MLIR compiler infrastructure, we are able to also target AMD GPUs by performing automatic translation from CUDA and simultaneously adjust the program granularity to fit the size of target GPUs. Combined with autotuning assisted by the platform-specific compiler, our approach demonstrates 27% geomean speedup on the Rodinia benchmark suite over baseline CUDA implementation as well as performance parity between similar NVIDIA and AMD GPUs executing the same CUDA program.
引用
收藏
页码:119 / 132
页数:14
相关论文
共 50 条
[41]   Providing Source Code Level Portability Between CPU and GPU with MapCG [J].
Hong, Chun-Tao ;
Chen, De-Hao ;
Chen, Yu-Bei ;
Chen, Wen-Guang ;
Zheng, Wei-Min ;
Lin, Hai-Bo .
JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY, 2012, 27 (01) :42-56
[42]   Demonstrating GPU code portability and scalability for radiative heat transfer computations [J].
Peterson, Brad ;
Humphrey, Alan ;
Holmen, John ;
Harman, Todd ;
Berzins, Martin ;
Sunderland, Dan ;
Edwards, H. Carter .
JOURNAL OF COMPUTATIONAL SCIENCE, 2018, 27 :303-319
[43]   Providing Source Code Level Portability Between CPU and GPU with MapCG [J].
Chun-Tao Hong ;
De-Hao Chen ;
Yu-Bei Chen ;
Wen-Guang Chen ;
Wei-Min Zheng ;
Hai-Bo Lin .
Journal of Computer Science and Technology, 2012, 27 :42-56
[44]   Providing Source Code Level Portability Between CPU and GPU with MapCG [J].
洪春涛 ;
陈德颢 ;
陈羽北 ;
陈文光 ;
郑纬民 ;
林海波 .
Journal of Computer Science & Technology, 2012, (01) :42-56
[45]   An investigation of the performance portability of OpenCL [J].
Pennycook, S. J. ;
Hammond, S. D. ;
Wright, S. A. ;
Herdman, J. A. ;
Miller, I. ;
Jarvis, S. A. .
JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2013, 73 (11) :1439-1450
[46]   Navigating Performance, Portability, and Productivity [J].
Pennycook, S. John ;
Sewall, Jason D. ;
Jacobsen, Douglas W. ;
Deakin, Tom ;
McIntosh-Smith, Simon .
COMPUTING IN SCIENCE & ENGINEERING, 2021, 23 (05) :28-38
[47]   SPIRAL: Extreme Performance Portability [J].
Franchetti, Franz ;
Low, Tze Meng ;
Popovici, Doru Thom ;
Veras, Richard M. ;
Spampinato, Daniele G. ;
Johnson, Jeremy R. ;
Puschel, Markus ;
Hoe, James C. ;
Moura, Jose M. F. .
PROCEEDINGS OF THE IEEE, 2018, 106 (11) :1935-1968
[48]   Implications of a metric for performance portability [J].
Pennycook, S. J. ;
Sewall, J. D. ;
Lee, V. W. .
FUTURE GENERATION COMPUTER SYSTEMS-THE INTERNATIONAL JOURNAL OF ESCIENCE, 2019, 92 :947-958
[49]   On Applying Performance Portability Metrics [J].
Daniel, Daniela F. ;
Panetta, Jairo .
PROCEEDINGS OF P3HPC 2019: 2019 IEEE/ACM INTERNATIONAL WORKSHOP ON PERFORMANCE, PORTABILITY AND PRODUCTIVITY IN HPC (P3HPC), 2019, :50-59
[50]   Reformulation of the performance portability metric [J].
Marowka, Ami .
SOFTWARE-PRACTICE & EXPERIENCE, 2022, 52 (01) :154-171