Glift: an abstraction for generic, efficient GPU data structures

Recent work in shading languages and programming models for graphics hardware has given graphics processor (GPU) programmers effective abstractions for expressing computation. However, no comparable abstraction properly expresses the equally important task of data storage and access. This paper presents programmable address translation as a powerful abstraction for defining complex, point-indexable GPU data structures. This abstraction enables GPU programmers to separate algorithm and data structure definitions, 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 define the basic operations that these high-performance structures must support. We also present Glift, a generic template library implementation of the abstraction. We demonstrate the use of Glift in simple examples, and describe two applications not previously possible on GPUs due to the complexity of the required data structures: adaptive shadow maps and octree 3D textures. Lastly, we show that our example Glift data structures perform comparably to or better than handwritten implementations while requiring only a fraction of the programming effort. CR Categories: I.3.1 [Computer Graphics]: Methodology and Techniques—Graphics data structures and data types; I.3.1 [Computer Graphics]: Hardware Architecture—Graphics processors

[1]  Tom Kilburn,et al.  One-Level Storage System , 1962, IRE Trans. Electron. Comput..

[2]  W. Daniel Hillis,et al.  Data parallel algorithms , 1986, CACM.

[3]  Donald P. Greenberg,et al.  Adaptive shadow maps , 2001, SIGGRAPH.

[4]  Pat Hanrahan,et al.  A real-time procedural shading system for programmable graphics hardware , 2001, SIGGRAPH.

[5]  Jonathan Gibbs,et al.  Painting and rendering textures on unparameterized models , 2002, ACM Trans. Graph..

[6]  David Benson,et al.  Octree textures , 2002, SIGGRAPH.

[7]  Michael D. McCool,et al.  Low latency photon mapping using block hashing , 2002, HWWS '02.

[8]  Martin Kraus,et al.  Adaptive texture maps , 2002, HWWS '02.

[9]  George Drettakis,et al.  Perspective shadow maps , 2002, ACM Trans. Graph..

[10]  Pat Hanrahan,et al.  Shadow silhouette maps , 2003, ACM Trans. Graph..

[11]  Ross T. Whitaker,et al.  Interactive deformation and visualization of level set surfaces using graphics hardware , 2003, IEEE Visualization, 2003. VIS 2003..

[12]  Anselmo Lastra,et al.  Simulation of cloud dynamics on graphics hardware , 2003, HWWS '03.

[13]  Steven G. Parker,et al.  Dynamic compilation of C++ template code , 2003, Sci. Program..

[14]  Greg Humphreys,et al.  A multigrid solver for boundary value problems using programmable graphics hardware , 2003, HWWS '03.

[15]  Jens Schneider,et al.  Compression domain volume rendering , 2003, IEEE Visualization, 2003. VIS 2003..

[16]  Pat Hanrahan,et al.  Photon mapping on programmable graphics hardware , 2003, HWWS '03.

[17]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[18]  Carla Maria Dal Sasso Freitas,et al.  Real-time volume rendering of time-varying data using a fragment-shader compression approach , 2003, IEEE Symposium on Parallel and Large-Data Visualization and Graphics, 2003. PVG 2003..

[19]  William R. Mark,et al.  The Irregular Z-Buffer and its Application to Shadow Mapping , 2004 .

[20]  Michael Wimmer,et al.  Light Space Perspective Shadow Maps , 2004, Rendering Techniques.

[21]  Pradeep Sen,et al.  Silhouette maps for improved texture magnification , 2004, Graphics Hardware.

[22]  Ross T. Whitaker,et al.  A Streaming Narrow-Band Algorithm: Interactive Computation and Visualization of Level Sets , 2004, IEEE Trans. Vis. Comput. Graph..

[23]  Ronald Fedkiw,et al.  Simulating water and smoke with an octree data structure , 2004, ACM Trans. Graph..

[24]  Samuel Hornus,et al.  All-Purpose Texture Sprites , 2004 .

[25]  John C. Hart,et al.  Painting detail , 2004, ACM Trans. Graph..

[26]  Per H. Christensen,et al.  An Irradiance Atlas for Global Illumination in Complex Production Scenes , 2004, Rendering Techniques.

[27]  Bryan Chan,et al.  Shader algebra , 2004, SIGGRAPH 2004.

[28]  Pat Hanrahan,et al.  Brook for GPUs: stream computing on graphics hardware , 2004, SIGGRAPH 2004.

[29]  Anselmo Lastra,et al.  Radiosity on graphics hardware , 2004, Graphics Interface.

[30]  Pat Hanrahan,et al.  Ray tracing on programmable graphics hardware , 2002, SIGGRAPH Courses.