hiCUDA: High-Level GPGPU Programming

被引:117
作者
Han, Tianyi David [1 ]
Abdelrahman, Tarek S. [1 ]
机构
[1] Univ Toronto, Edward S Rogers Sr Dept Elect & Comp Engn, Toronto, ON M5S 3G4, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
CUDA; GPGPU; data-parallel programming; directive-based language; source-to-source compiler;
D O I
10.1109/TPDS.2010.62
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Graphics Processing Units (GPUs) have become a competitive accelerator for applications outside the graphics domain, mainly driven by the improvements in GPU programmability. Although the Compute Unified Device Architecture ( CUDA) is a simple C-like interface for programming NVIDIA GPUs, porting applications to CUDA remains a challenge to average programmers. In particular, CUDA places on the programmer the burden of packaging GPU code in separate functions, of explicitly managing data transfer between the host and GPU memories, and of manually optimizing the utilization of the GPU memory. Practical experience shows that the programmer needs to make significant code changes, often tedious and error-prone, before getting an optimized program. We have designed hiCUDA, a high-level directive-based language for CUDA programming. It allows programmers to perform these tedious tasks in a simpler manner and directly to the sequential code, thus speeding up the porting process. In this paper, we describe the hiCUDA directives as well as the design and implementation of a prototype compiler that translates a hiCUDA program to a CUDA program. Our compiler is able to support real-world applications that span multiple procedures and use dynamically allocated arrays. Experiments using nine CUDA benchmarks show that the simplicity hiCUDA provides comes at no expense to performance.
引用
收藏
页码:78 / 90
页数:13
相关论文
共 25 条
[1]  
[Anonymous], 1997, Advanced compiler design implementation
[2]  
[Anonymous], 2007, NVIDIA CUDA PROGR GU
[3]  
[Anonymous], 2006, Nvidia geforce 8800 GPU architecture overview
[4]  
Baskaran MM, 2008, ICS'08: PROCEEDINGS OF THE 2008 ACM INTERNATIONAL CONFERENCE ON SUPERCOMPUTING, P225
[5]   Brook for GPUs: Stream computing on graphics hardware [J].
Buck, I ;
Foley, T ;
Horn, D ;
Sugerman, J ;
Fatahalian, K ;
Houston, M ;
Hanrahan, P .
ACM TRANSACTIONS ON GRAPHICS, 2004, 23 (03) :777-786
[6]  
CLEMENTSON AT, 1983, J OPER RES SOC, V34, P503
[7]  
Fabri J., 1979, SIGPLAN Notices, V14, P83, DOI 10.1145/872732.806957
[8]  
*GASS, 2010, JCUDA JAV CUDA
[9]  
HAN TD, 2009, THESIS U TORONTO
[10]  
IMPACT Research Group, 2007, PARB BENCHM SUIT