|
ABSTRACT
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.
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
|
ARTIS, 2004. X3DToolKit homepage. http://artis.imag.fr/Software/X3D/.
|
| |
2
|
ATI, 2006. Researcher CTM documentation. http://ati.amd.com/companyinfo/researcher/documents.html.
|
 |
3
|
Ian Buck , Tim Foley , Daniel Horn , Jeremy Sugerman , Kayvon Fatahalian , Mike Houston , Pat Hanrahan, Brook for GPUs: stream computing on graphics hardware, ACM Transactions on Graphics (TOG), v.23 n.3, August 2004
|
 |
4
|
|
 |
5
|
|
| |
6
|
Ford, L. R., and Fulkerson, D. R. 1962. Flows in Networks. Princeton University Press.
|
 |
7
|
|
| |
8
|
Gress, A., and Zachmann, G. 2006. GPU-ABiSort: optimal parallel sorting on stream architectures. In Parallel and Distributed Processing Symposium, 45--54.
|
| |
9
|
Harris, M., Owens, J., Sengupta, S., Zhang, Y., and Davidson, A., 2007. CUDPP homepage. http://www.gpgpu.org/developer/cudpp/.
|
| |
10
|
Jonathan M. D. Hill , Bill McColl , Dan C. Stefanescu , Mark W. Goudreau , Kevin Lang , Satish B. Rao , Torsten Suel , Thanasis Tsantilas , Rob H. Bisseling, BSPlib: The BSP programming library, Parallel Computing, v.24 n.14, p.1947-1980, Dec. 1998
[doi> 10.1016/S0167-8191(98)00093-3]
|
 |
11
|
|
 |
12
|
|
 |
13
|
|
| |
14
|
|
| |
15
|
|
 |
16
|
|
 |
17
|
|
| |
18
|
NVIDIA, 2007. CUDA homepage. http://developer.nvidia.com/object/cuda.html.
|
 |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
Popov, S., Günther, J., Seidel, H.-P., and Slusallek, P. 2007. Stackless kd-tree traversal for high performance gpu ray tracing. In Proceedings of Eurographics'07, 415--424.
|
 |
23
|
|
| |
24
|
|
| |
25
|
Skillicorn, D. B., Hill, J. M. D., and McColl, W. F. 1997. Questions and Answers about BSP. Scientific Programming 6, 3, 249--274.
|
 |
26
|
|
 |
27
|
|
 |
28
|
|
|