{"title":"Session details: Open source 2005 and beyond: thriving despite the DMCA and patent threats to Linux","authors":"","doi":"10.1145/3245719","DOIUrl":"https://doi.org/10.1145/3245719","url":null,"abstract":"","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114780313","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A major challenge in building practical wearable computer systems is the development of output devices to display or transmit information to the human user. Much effort has been devoted to visual displays that are lightweight and have high resolution. Such efforts are warranted since visual displays are still the dominant output devices used by most computing systems. Auditory displays are now becoming the norm of multimedia systems in addition to visual displays. Whereas vision is best suited for perceiving text and graphics, and audition for speech and music, the sense of touch is intimately involved in nonverbal communication. Whether it is a tap on the shoulder to get someone's attention or a firm handshake to convey trust, touch enables us to exchange information directly with people and the environment through physical contact. The skin is the largest organ of our body, yet only a small portion of it (i.e., the hands) is engaged in most human-computer interactions.
{"title":"Tactual displays for sensory substitution and wearable computers","authors":"H. Tan, A. Pentland","doi":"10.1145/1198555.1198611","DOIUrl":"https://doi.org/10.1145/1198555.1198611","url":null,"abstract":"A major challenge in building practical wearable computer systems is the development of output devices to display or transmit information to the human user. Much effort has been devoted to visual displays that are lightweight and have high resolution. Such efforts are warranted since visual displays are still the dominant output devices used by most computing systems. Auditory displays are now becoming the norm of multimedia systems in addition to visual displays. Whereas vision is best suited for perceiving text and graphics, and audition for speech and music, the sense of touch is intimately involved in nonverbal communication. Whether it is a tap on the shoulder to get someone's attention or a firm handshake to convey trust, touch enables us to exchange information directly with people and the environment through physical contact. The skin is the largest organ of our body, yet only a small portion of it (i.e., the hands) is engaged in most human-computer interactions.","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114729732","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In this part of the course, we'll look at some tricks and traps for programming the GPU for general purpose computation more effectively. This first part of this section will attempt to get you, the CPU programmer, to start to think in "GPU terms." There are some mistakes that every beginning GPU programmer (even those who are experienced CPU programmers) seem to make; those are the things I'm aiming to address in this part of the talk. After this introduction to "GPU thinking," Aaron and Ian will delve into more details about exactly how you can sculpt your algorithms so that they make the best use of what the GPU has to offer.
{"title":"Efficient data parallel computing on GPUs","authors":"Cliff Woolley","doi":"10.1145/1198555.1198774","DOIUrl":"https://doi.org/10.1145/1198555.1198774","url":null,"abstract":"In this part of the course, we'll look at some tricks and traps for programming the GPU for general purpose computation more effectively. This first part of this section will attempt to get you, the CPU programmer, to start to think in \"GPU terms.\" There are some mistakes that every beginning GPU programmer (even those who are experienced CPU programmers) seem to make; those are the things I'm aiming to address in this part of the talk. After this introduction to \"GPU thinking,\" Aaron and Ian will delve into more details about exactly how you can sculpt your algorithms so that they make the best use of what the GPU has to offer.","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125272585","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The overall design decisions of the RTRT/OpenRT framework are described in detail in [Wald04]. To summarize the most important points, we have chosen to only support triangles, to exploit SIMD extensions in a data-parallel way, to optimize for memory and caches, and to use BSP trees as an acceleration structure. In this chapter, we are now going to discuss the actual algorithms and implementation of these topics in more detail.
{"title":"The RTRT core","authors":"I. Wald","doi":"10.1145/1198555.1198744","DOIUrl":"https://doi.org/10.1145/1198555.1198744","url":null,"abstract":"The overall design decisions of the RTRT/OpenRT framework are described in detail in [Wald04]. To summarize the most important points, we have chosen to only support triangles, to exploit SIMD extensions in a data-parallel way, to optimize for memory and caches, and to use BSP trees as an acceleration structure. In this chapter, we are now going to discuss the actual algorithms and implementation of these topics in more detail.","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125287885","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
P. Slusallek, P. Shirley, W. Mark, Gordon Stoll, I. Wald
{"title":"Rendering massive models","authors":"P. Slusallek, P. Shirley, W. Mark, Gordon Stoll, I. Wald","doi":"10.1145/1198555.1198755","DOIUrl":"https://doi.org/10.1145/1198555.1198755","url":null,"abstract":"","PeriodicalId":192758,"journal":{"name":"ACM SIGGRAPH 2005 Courses","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126968850","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
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
{"title":"Glift: an abstraction for generic, efficient GPU data structures","authors":"A. Lefohn","doi":"10.1145/1198555.1198777","DOIUrl":"https://doi.org/10.1145/1198555.1198777","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.0,"publicationDate":"2005-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128202148","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}