“SLANG.D: Fast, Modular and Differentiable Shader Programming” by Bangaru, Wu, Li, Munkberg, Bernstein, et al. … – ACM SIGGRAPH HISTORY ARCHIVES

“SLANG.D: Fast, Modular and Differentiable Shader Programming” by Bangaru, Wu, Li, Munkberg, Bernstein, et al. …

  • 2023 SA_Technical_Papers_Bangaru_SLANG.D_Fast, Modular and Differentiable Shader Programming

Conference:


Type(s):


Title:

    SLANG.D: Fast, Modular and Differentiable Shader Programming

Session/Category Title:   \nabla f = ?


Presenter(s)/Author(s):



Abstract:


    We introduce SLANG.D, a shading language that incorporates first-class automatic differentiation support derived from the Slang language. 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 change 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.


Overview Page:



Submit a story:

If you would like to submit a story about this presentation, please contact us: historyarchives@siggraph.org