{"title":"Glift: an abstraction for generic, efficient GPU data structures","authors":"A. Lefohn","doi":"10.1145/1198555.1198777","DOIUrl":null,"url":null,"abstract":"Recent work in shading languages and programming models for graphics hardware has given graphics processor (GPU) programmers effective abstractions for expressing computation. However, no comparable abstraction properly expresses the equally important task of data storage and access. This paper presents programmable address translation as a powerful abstraction for defining complex, point-indexable GPU data structures. This abstraction enables GPU programmers to separate algorithm and data structure definitions, 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 define the basic operations that these high-performance structures must support. We also present Glift, a generic template library implementation of the abstraction. We demonstrate the use of Glift in simple examples, and describe two applications not previously possible on GPUs due to the complexity of the required data structures: adaptive shadow maps and octree 3D textures. Lastly, we show that our example Glift data structures perform comparably to or better than handwritten implementations while requiring only a fraction of the programming effort. CR Categories: I.3.1 [Computer Graphics]: Methodology and Techniques—Graphics data structures and data types; I.3.1 [Computer Graphics]: Hardware Architecture—Graphics processors","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"10 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"13","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM SIGGRAPH 2005 Courses","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1198555.1198777","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 13
Abstract
Recent work in shading languages and programming models for graphics hardware has given graphics processor (GPU) programmers effective abstractions for expressing computation. However, no comparable abstraction properly expresses the equally important task of data storage and access. This paper presents programmable address translation as a powerful abstraction for defining complex, point-indexable GPU data structures. This abstraction enables GPU programmers to separate algorithm and data structure definitions, 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 define the basic operations that these high-performance structures must support. We also present Glift, a generic template library implementation of the abstraction. We demonstrate the use of Glift in simple examples, and describe two applications not previously possible on GPUs due to the complexity of the required data structures: adaptive shadow maps and octree 3D textures. Lastly, we show that our example Glift data structures perform comparably to or better than handwritten implementations while requiring only a fraction of the programming effort. CR Categories: I.3.1 [Computer Graphics]: Methodology and Techniques—Graphics data structures and data types; I.3.1 [Computer Graphics]: Hardware Architecture—Graphics processors