Glift: Generic Data Structures for Graphics Hardware

* Awarded the 2006 Best Doctoral Dissertation from the Computer Science Department at UC Davis *

Thesis Statement

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.

Abstract

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.