Supporting Unified Shader Specialization by Co-opting C++ Features

dc.contributor.authorSeitz, Kerry A.en_US
dc.contributor.authorFoley, Theresaen_US
dc.contributor.authorPorumbescu, Serban D.en_US
dc.contributor.authorOwens, John D.en_US
dc.contributor.editorJosef Spjuten_US
dc.contributor.editorMarc Stammingeren_US
dc.contributor.editorVictor Zordanen_US
dc.date.accessioned2023-01-23T10:23:43Z
dc.date.available2023-01-23T10:23:43Z
dc.date.issued2022
dc.description.abstractModern unified programming models (such as CUDA and SYCL) that combine host (CPU) code and GPU code into the same programming language, same file, and same lexical scope lack adequate support for GPU code specialization, which is a key optimization in real-time graphics. Furthermore, current methods used to implement specialization do not translate to a unified environment. In this paper, we create a unified shader programming environment in C++ that provides first-class support for specialization by co-opting C++'s attribute and virtual function features and reimplementing them with alternate semantics to express the services required. By co-opting existing features, we enable programmers to use familiar C++ programming techniques to write host and GPU code together, while still achieving efficient generated C++ and HLSL code via our source-to-source translator.en_US
dc.description.number3
dc.description.sectionheadersGraphics Systems
dc.description.seriesinformationProceedings of the ACM on Computer Graphics and Interactive Techniques
dc.description.volume5
dc.identifier.doi10.1145/3543866
dc.identifier.issn2577-6193
dc.identifier.urihttps://doi.org/10.1145/3543866
dc.identifier.urihttps://diglib.eg.org:443/handle/10.1145/3543866
dc.publisherACM Association for Computing Machineryen_US
dc.subjectCCS Concepts: Computing methodologies -> Computer graphics; Software and its engineering -> General programming languages; Compilers Additional Key Words and Phrases: Shaders, Shading Languages, Real-Time Rendering, Heterogeneous Programming, Unified Programming
dc.subjectComputing methodologies
dc.subjectComputer graphics
dc.subjectSoftware and its engineering
dc.subjectGeneral programming languages
dc.subjectCompilers Additional Key Words and Phrases
dc.subjectShaders
dc.subjectShading Languages
dc.subjectReal
dc.subjectTime Rendering
dc.subjectHeterogeneous Programming
dc.subjectUnified Programming
dc.titleSupporting Unified Shader Specialization by Co-opting C++ Featuresen_US
Files