|
ABSTRACT
This article presents Glift, an abstraction and generic template library for defining complex, random-access graphics processor (GPU) data structures. Like modern CPU data structure libraries, Glift enables GPU programmers to separate algorithms from data structure definitions; thereby greatly simplifying algorithmic development and enabling reusable and interchangeable data structures. We characterize a large body of previously published GPU data structures in terms of our abstraction and present several new GPU data structures. The structures, a stack, quadtree, and octree, are explained using simple Glift concepts and implemented using reusable Glift components. We also describe two applications of these structures not previously demonstrated on GPUs: adaptive shadow maps and octree three-dimensional paint. Last, we show that our example Glift data structures perform comparably to handwritten implementations while requiring only a fraction of the programming effort.
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
|
|
| |
2
|
An, P., Jula, A., Rus, S., Saunders, S., Smith, T., Tanase, G., Thomas, N., Amato, N., and Rauchwerger, L. 2001. STAPL: An adaptive, generic parallel C++ library. In Proceedings of the Workshop on Languages and Compilers for Parallel Computing. 193--208.
|
 |
3
|
|
 |
4
|
|
| |
5
|
Beyond3D. 2003. DirectX next early preview. Go online to http://www.beyond3d.com/articles/directxnext/.
|
| |
6
|
|
 |
7
|
|
| |
8
|
Boost. 2005. Boost C++ libraries. Go online to http://www.boost.org/.
|
| |
9
|
Buck, I. 2005. Taking the plunge into GPU computing. In GPU Gems 2, M. Pharr, Ed. Addison-Wesley, Reading, MA, Chap. 32, 509--519.
|
| |
10
|
Buck, I., Fatahalian, K., and Hanrahan, P. 2004a. GPUBench: Evaluating GPU performance for numerical and scientific applications. In Proceedings of the 2004 ACM Workshop on General-Purpose Computing on Graphics Processors. C-20.
|
 |
11
|
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
|
 |
12
|
|
| |
13
|
Christensen, P. H. and Batali, D. 2004. An irradiance atlas for global illumination in complex production scenes. In Proceedings of Rendering Techniques 2004. 133--141.
|
| |
14
|
Cole, M. and Parker, S. 2003. Dynamic compilation of C++ template code. In Scientific Programming, vol. 11. IOS Press, Amsterdam, The Netherlands, 321--327.
|
| |
15
|
Greg Coombe , Mark J. Harris , Anselmo Lastra, Radiosity on graphics hardware, Proceedings of the 2004 conference on Graphics interface, p.161-168, May 17-19, 2004, London, Ontario, Canada
|
 |
16
|
|
| |
17
|
Ernst, M., Vogelgsang, C., and Greiner, G. 2004. Stack implementation on programmable graphics hardware. In Proceedings of Vision, Modeling, and Visualization. 255--262.
|
 |
18
|
|
 |
19
|
|
| |
20
|
Nolan Goodnight , Cliff Woolley , Gregory Lewin , David Luebke , Greg Humphreys, A multigrid solver for boundary value problems using programmable graphics hardware, Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, July 26-27, 2003, San Diego, California
|
| |
21
|
Govindaraju, N. K., Raghuvanshi, N., Henson, M., Tuft, D., and Manocha, D. 2005. A cache-efficient sorting algorithm for database and data mining computations using graphics processors. Tech. rep. TR05-016. University of North Carolina, Chapel Hill, NC.
|
 |
22
|
|
| |
23
|
Harris, M. and Buck, I. 2005. GPU flow control idioms. In GPU Gems 2, M. Pharr, Ed. Addison Wesley, Reading, MA, Chap. 34, 547--555.
|
| |
24
|
|
 |
25
|
|
| |
26
|
Hoel, E. G. and Samet, H. 1995. Data-parallel primitives for spatial operations. In Proceedings of the 1995 International Conference on Parallel Processing. III:184--191.
|
| |
27
|
Horn, D. 2005. Stream reduction operations for GPGPU applications. In GPU Gems 2, M. Pharr, Ed. Addison Wesley, Reading, MA, Chap. 36, 573--589.
|
 |
28
|
|
| |
29
|
Karmesin, S., Haney, S., Humphrey, B., Cummings, J., Williams, T., Crotinger, J., Smith, S., and Gavrilov, E. 2002. Pooma: Parallel object-oriented methods and applications. Go online to http://acts.nersc.gov/pooma/.
|
| |
30
|
Kendall, R. A., Sosonkina, M., Gropp, W. D., Numrich, R. W., and Sterling, T. 2005. Parallel programming models applicable to cluster computing and beyond. In Numerical Solution of Partial Differential Equations on Parallel Computers, A. M. Bruaset and A. Tveito, Eds. Lecture Notes in Computational Science and Engineering, vol. 51. Springer-Verlag, Berlin, Germany.
|
| |
31
|
Kessenich, J., Baldwin, D., and Rost, R. 2004. The OpenGL Shading Language version 1.10.59. Go online to http://www.opengl.org/documentation/oglsl.html.
|
| |
32
|
Kilburn, T., Edwards, D. B. G., Lanigan, M. J., and Sumner, F. H. 1962. One-level storage system. IRE Trans. Electron. Comput. EC-11, 223--235.
|
| |
33
|
|
| |
34
|
Lefebvre, S., Hornus, S., and Neyret, F. 2004. All-purpose texture sprites. Tech. rep. 5209. INRIA, Rocquencourt, France.
|
| |
35
|
Lefohn, A., Kniss, J., and Owens, J. 2005. Implementing efficient parallel data structures on GPUs. In GPU Gems 2, M. Pharr, Ed. Addison Wesley, Reading, MA, Chap. 33, 521--545.
|
| |
36
|
|
| |
37
|
Lefohn, A. E., Kniss, J. M., Hansen, C. D., and Whitaker, R. T. 2004. A streaming narrow-band algorithm: Interactive computation and visualization of level-set surfaces. IEEE Trans. Visual. Comput. Graph. 10, 4 (July/Aug.), 422--433.
|
 |
38
|
|
 |
39
|
|
 |
40
|
|
 |
41
|
|
| |
42
|
|
| |
43
|
NVIDIA Developer Relations. 2003. Cg: C for graphics. Go online to http://developer.nvidia.com/.
|
| |
44
|
Owens, J. D., Luebke, D., Govindaraju, N., Harris, M., Krüger, J., Lefohn, A. E., and Purcell, T. 2005. A survey of general-purpose computation on graphics hardware. In Proceedings of Eurographics 2005, State of the Art Reports. 21--51.
|
| |
45
|
Pharr, M. 2004. An introduction to shader interfaces. In GPU Gems, R. Fernando, Ed. Addison Wesley, Reading, MA, Chap. 32, 537--550.
|
 |
46
|
|
 |
47
|
|
| |
48
|
Timothy J. Purcell , Craig Donner , Mike Cammarano , Henrik Wann Jensen , Pat Hanrahan, Photon mapping on programmable graphics hardware, Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, July 26-27, 2003, San Diego, California
|
| |
49
|
|
 |
50
|
|
 |
51
|
|
 |
52
|
|
| |
53
|
Strzodka, R. and Telea, A. 2004. Generalized distance transforms and skeletons in graphics hardware. In Proceedings of EG/IEEE TCVG Symposium on Visualization (VisSym '04). 221--230.
|
 |
54
|
|
| |
55
|
Thrane, N. and Simonsen, L. O. 2005. A comparison of acceleration structures for GPU assisted ray tracing. M.S. thesis. University of Aarhus, Aarhus, Denmark.
|
| |
56
|
Wimmer, M., Scherzer, D., and Purgathofer, W. 2004. Light space perspective shadow maps. In Proceedings of the Eurographics Symposium on Rendering. 143--151.
|
CITED BY 19
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aaron Lefohn , Shubhabrata Sengupta , Joe Kniss , Robert Strzodka , John D. Owens, Dynamic adaptive shadow maps on graphics hardware, ACM SIGGRAPH 2005 Sketches, July 31-August 04, 2005, Los Angeles, California
|
|
|
Joe Kniss , Aaron Lefohn , Robert Strzodka , Shubhabrata Sengupta , John D. Owens, Octree textures on graphics hardware, ACM SIGGRAPH 2005 Sketches, July 31-August 04, 2005, Los Angeles, California
|
|
|
|
|
|
|
|
|
|
|
|
Patrick McCormick , Jeff Inman , James Ahrens , Jamaludin Mohd-Yusof , Greg Roth , Sharen Cummins, Scout: a data-parallel programming language for graphics processors, Parallel Computing, v.33 n.10-11, p.648-662, November, 2007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|