BSGP: bulk-synchronous GPU programming
Tsinghua University
In SIGGRAPH ’08: ACM SIGGRAPH 2008 papers (2008), pp. 1-12
@conference{hou2008bsgp,
title={BSGP: bulk-synchronous GPU programming},
author={Hou, Q. and Zhou, K. and Guo, B.},
booktitle={ACM SIGGRAPH 2008 papers},
pages={1–12},
year={2008},
organization={ACM}
}
We present BSGP, a new programming language for general purpose computation on the GPU. A BSGP program looks much the same as a sequential C program. Programmers only need to supply a bare minimum of extra information to describe parallel processing on GPUs. As a result, BSGP programs are easy to read, write, and maintain. Moreover, the ease of programming does not come at the cost of performance. A well-designed BSGP compiler converts BSGP programs to kernels and combines them using optimally allocated temporary streams. In our benchmark, BSGP programs achieve similar or better performance than well-optimized CUDA programs, while the source code complexity and programming time are significantly reduced. To test BSGP’s code efficiency and ease of programming, we implemented a variety of GPU applications, including a highly sophisticated X3D parser that would be extremely difficult to develop with existing GPU programming languages.
December 7, 2010 by hgpu