TitleGlift: Generic, Efficient, Random-Access GPU Data Structures (Article)
inACM Transactions on Graphics
Author(s) Aaron Lefohn, Joe M. Kniss, Robert Strzodka, Shubhabrata Sengupta, John D. Owens
Year January 2006
Abstract This paper 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 3D paint. Lastly, we show that our example Glift data structures perform comparably to handwritten implementations while requiring only a fraction of the programming effort.
Note Thanks to our funding agencies: NSF (Graduate Fellowship + Award 0541448), DOE (Graduate Fellowship + VIEWs + ECPI Award DE-FG02-04ER25609), LANL, Chevron, UC MICRO, and the Caesar Research Institute.