Show simple item record

dc.contributor.authorBangaru, Sai Praveen
dc.contributor.authorWu, Lifan
dc.contributor.authorLi, Tzu-Mao
dc.contributor.authorMunkberg, Jacob
dc.contributor.authorBernstein, Gilbert
dc.contributor.authorRagan-Kelley, Jonathan
dc.contributor.authorDurand, Fredo
dc.contributor.authorLefohn, Aaron
dc.contributor.authorHe, Yong
dc.date.accessioned2024-01-03T20:18:05Z
dc.date.available2024-01-03T20:18:05Z
dc.date.issued2023-12-04
dc.identifier.issn0730-0301
dc.identifier.urihttps://hdl.handle.net/1721.1/153273
dc.description.abstractWe introduce SLANG.D, an extension to the Slang shading language that incorporates first-class automatic differentiation support. The new shading language allows us to transform a Direct3D-based path tracer to be fully differentiable with minor modifications to existing code. SLANG.D enables a shared ecosystem between machine learning frameworks and pre-existing graphics hardware API-based rendering systems, promoting the interchange of components and ideas across these two domains. Our contributions include a differentiable type system designed to ensure type safety and semantic clarity in codebases that blend differentiable and non-differentiable code, language primitives that automatically generate both forward and reverse gradient propagation methods, and a compiler architecture that generates efficient derivative propagation shader code for graphics pipelines. Our compiler supports differentiating code that involves arbitrary control-flow, dynamic dispatch, generics and higher-order differentiation, while providing developers flexible control of checkpointing and gradient aggregation strategies for best performance. Our system allows us to differentiate an existing real-time path tracer, Falcor, with minimal changes to its shader code. We show that the compiler-generated derivative kernels perform as efficiently as handwritten ones. In several benchmarks, the SLANG.D code achieves significant speedup when compared to prior automatic differentiation systems.en_US
dc.publisherACMen_US
dc.relation.isversionofhttps://doi.org/10.1145/3618353en_US
dc.rightsCreative Commons Attributionen_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.sourceAssociation for Computing Machineryen_US
dc.titleSLANG.D: Fast, Modular and Differentiable Shader Programmingen_US
dc.typeArticleen_US
dc.identifier.citationBangaru, Sai Praveen, Wu, Lifan, Li, Tzu-Mao, Munkberg, Jacob, Bernstein, Gilbert et al. 2023. "SLANG.D: Fast, Modular and Differentiable Shader Programming." ACM Transactions on Graphics, 42 (6).
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
dc.relation.journalACM Transactions on Graphicsen_US
dc.identifier.mitlicensePUBLISHER_CC
dc.eprint.versionFinal published versionen_US
dc.type.urihttp://purl.org/eprint/type/JournalArticleen_US
eprint.statushttp://purl.org/eprint/status/PeerRevieweden_US
dc.date.updated2024-01-01T08:49:28Z
dc.language.rfc3066en
dc.rights.holderThe author(s)
dspace.date.submission2024-01-01T08:49:29Z
mit.journal.volume42en_US
mit.journal.issue6en_US
mit.licensePUBLISHER_CC
mit.metadata.statusAuthority Work and Publication Information Neededen_US


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record