ACM Home Page
Please provide us with feedback. Feedback
hiCUDA: a high-level directive-based language for GPU programming
Full text PdfPdf (1.17 MB)
Source ACM International Conference Proceeding Series; Vol. 383 archive
Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units table of contents
Washington, D.C.
Pages 52-61  
Year of Publication: 2009
ISBN:978-1-60558-517-8
Authors
Tianyi David Han  University of Toronto, Toronto, Ontario, Canada
Tarek S. Abdelrahman  University of Toronto, Toronto, Ontario, Canada
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 80,   Downloads (12 Months): 432,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1513895.1513902
What is a DOI?

ABSTRACT

The Compute Unified Device Architecture (CUDA) has become a de facto standard for programming NVIDIA GPUs. However, CUDA places on the programmer the burden of packaging GPU code in separate functions, of explicitly managing data transfer between the host memory and various components of the GPU memory, and of manually optimizing the utilization of the GPU memory. Practical experience shows that the programmer needs to make significant code changes, which are 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. Nonetheless, it supports the same programming paradigm already familiar to CUDA programmers. We have prototyped a source-to-source compiler that translates a hiCUDA program to a CUDA program. Experiments using five standard CUDA bechmarks show that the simplicity and flexibility hiCUDA provides come at no expense to performance.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
OpenMP Architecture Review Board. OpenMP specification v3.0. http://openmp.org/wp/openmp-specifications/, May 2008.
 
2
I. Buck. Brook specification v0.2. http://merrimac.stanford.edu/brook/, October 2003.
3
 
4
AMD Stream SDK. http://ati.amd.com/technology/streamcomputing/.
 
5
IMPACT Research Group. The Parboil benchmark suite. http://www.crhc.uiuc.edu/IMPACT/parboil.php, 2007.
 
6
 
7
NVIDIA. NVIDIA CUDA Compute Unified Device Architecture Programming Guide v1.1. http://developer.download.nvidia.com/compute/cuda/1_1/NVIDIA_CUDA_Programming_Guide_1.1.pdf, November 2007.
 
8
NVIDIA. The CUDA Compiler Driver NVCC v1.1. http://www.nvidia.com/object/cuda_programming_tools.html, November 2007.
 
9
Open64 research compiler. http://open64.sourceforge.net.
 
10
Open Computing Language (OpenCL). http://www.khronos.org/opencl/.
 
11
RapidMind Inc. http://www.rapidmind.net.
12
13
 
14
 
15
L. Wang, S. L. Jacques, and L. Zheng. MCML--Monte Carlo modeling of light transport in multi-layered tissues. Computer Methods and Programs in Biomedicine, 47(2):131--146, 1995.

Collaborative Colleagues:
Tianyi David Han: colleagues
Tarek S. Abdelrahman: colleagues