Brook for GPUs: stream computing on graphics hardware
ACM SIGGRAPH 2004 Papers
Finite Differences And Partial Differential Equations
Finite Differences And Partial Differential Equations
Parallel Programmability and the Chapel Language
International Journal of High Performance Computing Applications
OpenMP to GPGPU: a compiler framework for automatic translation and optimization
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
hiCUDA: a high-level directive-based language for GPU programming
Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units
Communications of the ACM - Scratch Programming for All
Ypnos: declarative, parallel structured grid programming
Proceedings of the 5th ACM SIGPLAN workshop on Declarative aspects of multicore programming
CUDA by Example: An Introduction to General-Purpose GPU Programming
CUDA by Example: An Introduction to General-Purpose GPU Programming
Proceedings of the 2010 Workshop on Parallel Programming Patterns
Mint: realizing CUDA performance in 3D stencil methods with annotated C
Proceedings of the international conference on Supercomputing
Hi-index | 0.00 |
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.