Chestnut: A GPU Programming Language For Non-Experts
Document Type
Conference Proceeding
Publication Date
2012
Published In
Proceedings Of The 2012 International Workshop On Programming Models And Applications For Multicores And Manycores
Abstract
Graphics processing units (GPUs) are powerful devices capable of rapid parallel computation. GPU programming, however, can be quite difficult, limiting its use to experienced programmers and keeping it out of reach of a large number of potential users. We present Chestnut, a domain-specific GPU parallel programming language for parallel multidimensional grid applications. Chestnut is designed to greatly simplify the process of programming on the GPU, making GPU computing accessible to computational scientists who have little or no parallel programming experience, as well as a useful and powerful language for more experienced programmers. In addition, Chestnut has an optional GUI programming interface that makes GPU computing accessible to even novice programmers. Chestnut is intuitive and easy to use, while still powerful in the types of parallelism it can express. The language provides a single simple parallel construct that allows a Chestnut programmer to "think sequentially" in expressing her Chestnut program; the programmer is freed from having to think about parallelization, data layout, GPU to CPU memory transfers, and synchronization. We demonstrate Chestnut's programmability with example solutions to a variety of parallel applications. Performance results from our prototype implementation of Chestnut show that Chestnut applications perform almost as well as hand-written CUDA code for a set of several parallel applications. In addition, Chestnut code is much simpler and much smaller than handwritten CUDA code.
Keywords
GPU, parallel programming language
Published By
ACM
Conference
8th International Workshop On Programming Models And Applications For Multicores And Manycores
Conference Dates
February 26, 2012
Conference Location
New Orleans, LA
Recommended Citation
Andrew B. Stromme , '12; Ryan A. Carlson , '11; and Tia Newhall.
(2012).
"Chestnut: A GPU Programming Language For Non-Experts".
Proceedings Of The 2012 International Workshop On Programming Models And Applications For Multicores And Manycores.
156-167.
DOI: 10.1145/2141702.2141720
https://works.swarthmore.edu/fac-comp-sci/73