dc.contributor.author | Bangaru, Sai Praveen | |
dc.contributor.author | Wu, Lifan | |
dc.contributor.author | Li, Tzu-Mao | |
dc.contributor.author | Munkberg, Jacob | |
dc.contributor.author | Bernstein, Gilbert | |
dc.contributor.author | Ragan-Kelley, Jonathan | |
dc.contributor.author | Durand, Fredo | |
dc.contributor.author | Lefohn, Aaron | |
dc.contributor.author | He, Yong | |
dc.date.accessioned | 2024-01-03T20:18:05Z | |
dc.date.available | 2024-01-03T20:18:05Z | |
dc.date.issued | 2023-12-04 | |
dc.identifier.issn | 0730-0301 | |
dc.identifier.uri | https://hdl.handle.net/1721.1/153273 | |
dc.description.abstract | We 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.publisher | ACM | en_US |
dc.relation.isversionof | https://doi.org/10.1145/3618353 | en_US |
dc.rights | Creative Commons Attribution | en_US |
dc.rights.uri | https://creativecommons.org/licenses/by/4.0/ | en_US |
dc.source | Association for Computing Machinery | en_US |
dc.title | SLANG.D: Fast, Modular and Differentiable Shader Programming | en_US |
dc.type | Article | en_US |
dc.identifier.citation | Bangaru, 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.department | Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory | |
dc.relation.journal | ACM Transactions on Graphics | en_US |
dc.identifier.mitlicense | PUBLISHER_CC | |
dc.eprint.version | Final published version | en_US |
dc.type.uri | http://purl.org/eprint/type/JournalArticle | en_US |
eprint.status | http://purl.org/eprint/status/PeerReviewed | en_US |
dc.date.updated | 2024-01-01T08:49:28Z | |
dc.language.rfc3066 | en | |
dc.rights.holder | The author(s) | |
dspace.date.submission | 2024-01-01T08:49:29Z | |
mit.journal.volume | 42 | en_US |
mit.journal.issue | 6 | en_US |
mit.license | PUBLISHER_CC | |
mit.metadata.status | Authority Work and Publication Information Needed | en_US |