Glift: Generic, efficient, random-access GPU data structures
University of California, Davis
ACM Transactions on Graphics, Vol. 25 (2006), pp. 60-99
@article{lefohn2006glift,
title={Glift: Generic, efficient, random-access GPU data structures},
author={Lefohn, A.E. and Sengupta, S. and Kniss, J. and Strzodka, R. and Owens, J.D.},
journal={ACM Transactions on Graphics (TOG)},
volume={25},
number={1},
pages={60–99},
issn={0730-0301},
year={2006},
publisher={ACM}
}
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.
December 2, 2010 by hgpu