* Awarded the2006 Best Doctoral Dissertationfrom the Computer Science Department at UC Davis *

- A data structure abstraction for graphics processing units (GPUs) can simplify the description of new and existing data structures, stimulate development of complex GPU algorithms, and perform equivalently to hand-coded implementations.

- Future interactive rendering solutions will be an inseparable mix of general-purpose, data-parallel GPU programming (GPGPU) and traditional graphics programming.

This dissertation demonstrates that a data structure abstraction for graphics processing units (GPUs) can simplify the description of new and existing data structures, stimulate development of complex GPU algorithms, and perform equivalently to hand-coded implementations. We define the GPU computation model in terms of parallel iteration over data structure elements and demonstrate iteration over complex structures. We also present a case that future interactive rendering solutions will be an inseparable mix of general-purpose, data-parallel GPU programming (GPGPU) and traditional graphics programming.We introduce an abstraction, Glift, for easily creating, accessing, and traversing parallel, random-access data structures on graphics hardware. The abstraction factors GPU data structures into four components: physical memory, programmable address translation, virtual memory, and iterators. We implement the abstraction as a C++ and Cg template library and show that the resulting code is nearly as efficient as low-level, hand-written code. Glift makes it possible to separate GPU data structure and algorithm development and description, and demonstrate how this separation reduces programming complexity. We characterize a large number of previous GPU data structures in terms of Glift abstractions, thereby illuminating many similarities between seemingly diverse structures. We describe novel, complex GPU data structures—a GPU stack, quadtree, and octree—in terms of generic Glift components. Lastly, we demonstrate four novel interactive rendering algorithms built using Glift data structures: octree 3D paint, dynamic adaptive shadow maps, resolution-matched shadow maps, and a heat-diffusion depth-of-field algorithm.

36.1 MB PDF (high-res images)

6.3 MB PDF (low-res images)

Bibtex

5.0 MB PDF

Resolution-Matched Shadow MapsA. E. Lefohn, S. Sengupta, J. D. Owens

ACM Transactions on Graphics, 26 (4), pp. 20:1 - 20:17, Oct. 2007

Dynamic Adaptive Shadow Maps on Graphics HardwareA. Lefohn, S. Sengupta, J. Kniss, R. Strzodka, J. D. Owens

Technical Sketch at ACM SIGGRAPH 2005

Octree Textures on Graphics HardwareJ. Kniss, A. Lefohn, R. Strzodka, S. Sengupta, J. D. Owens

Technical Sketch at ACM SIGGRAPH 2005

Implementing Efficient Parallel Data Structures on GPUs

A. Lefohn, J. Kniss, J. Owens

Chapter 33 in GPU Gems II: Programming Techniques for High-Performance Graphics and General-Purpose Computation

Addison Wesley, pp. 521–545, 2005