Glift: Generic, efficient, random-access GPU data structures

  • Authors:
  • Aaron E. Lefohn;Shubhabrata Sengupta;Joe Kniss;Robert Strzodka;John D. Owens

  • Affiliations:
  • University of California, Davis, Davis, CA;University of California, Davis, Davis, CA;University of Utah, Salt Lake City, UT;Stanford University, Stanford, CA;University of California, Davis, Davis, CA

  • Venue:
  • ACM Transactions on Graphics (TOG)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

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.