DR.JIT

DR.JIT is a new just-in-time compiler for physically based rendering and its derivative. DR.JIT expedites research on these topics in two ways: first, it traces high-level simulation code (e.g., written in Python) and aggressively simplifies and specializes the resulting program representation, producing data-parallel kernels with state-of-the-art performance on CPUs and GPUs. Second, it simplifies the development of differentiable rendering algorithms. Efficient methods in this area turn the derivative of a simulation into a simulation of the derivative. DR.JIT provides fine-grained control over the process of automatic differentiation to help with this transformation. Specialization is particularly helpful in the context of differentiation, since large parts of the simulation ultimately do not influence the computed gradients. DR.JIT tracks data dependencies globally to find and remove redundant computation.

[1]  William S. Moses,et al.  Reverse-Mode Automatic Differentiation and Optimization of GPU Kernels via Enzyme , 2021, SC21: International Conference for High Performance Computing, Networking, Storage and Analysis.

[2]  Wenzel Jakob,et al.  Monte Carlo estimators for differential light transport , 2021, ACM Trans. Graph..

[3]  Wenzel Jakob,et al.  Path replay backpropagation , 2021, ACM Trans. Graph..

[4]  Daniel D. Johnson,et al.  Getting to the point: index sets and parallelism-preserving autodiff for pointful array programming , 2021, Proc. ACM Program. Lang..

[5]  Frédo Durand,et al.  Unbiased warped-area sampling for differentiable rendering , 2020, ACM Trans. Graph..

[6]  Merlin Nimier-David,et al.  Radiative backpropagation , 2020, ACM Trans. Graph..

[7]  Cheng Zhang,et al.  Path-space differentiable rendering , 2020, ACM Trans. Graph..

[8]  Merlin Nimier-David,et al.  Mitsuba 2 , 2019, ACM Trans. Graph..

[9]  Li-Yi Wei,et al.  Reducing simulator sickness with perceptual camera control , 2019, ACM Trans. Graph..

[10]  Wenzel Jakob,et al.  Reparameterizing discontinuous integrands for differentiable rendering , 2019, ACM Trans. Graph..

[11]  Philipp Slusallek,et al.  Rodent: generating renderers without writing a generator , 2019, ACM Trans. Graph..

[12]  Simon L. Peyton Jones,et al.  Efficient differentiable programming in a functional array-processing language , 2018, Proc. ACM Program. Lang..

[13]  Jaakko Lehtinen,et al.  Differentiable Monte Carlo ray tracing through edge sampling , 2018, ACM Trans. Graph..

[14]  Luca Fascione,et al.  Manuka , 2018, ACM Trans. Graph..

[15]  Yong He,et al.  Slang: language mechanisms for extensible real-time shading systems , 2018, ACM Trans. Graph..

[16]  Frédo Durand,et al.  Differentiable programming for image processing and deep learning in halide , 2018, ACM Trans. Graph..

[17]  Conal Elliott,et al.  The simple essence of automatic differentiation , 2018, Proc. ACM Program. Lang..

[18]  Barak A. Pearlmutter,et al.  Divide-and-conquer checkpointing for arbitrary programs with no user annotation , 2017, Optim. Methods Softw..

[19]  Mark Lee,et al.  Vectorized production path tracing , 2017, High Performance Graphics.

[20]  Ingo Wald,et al.  Embree: a kernel framework for efficient CPU ray tracing , 2014, ACM Trans. Graph..

[21]  Timo Aila,et al.  Megakernels considered harmful: wavefront path tracing on GPUs , 2013, HPG '13.

[22]  Laurent Hascoët,et al.  The Tapenade automatic differentiation tool: Principles, model, and specification , 2013, TOMS.

[23]  Frédo Durand,et al.  Decoupling algorithms from schedules for easy optimization of image processing pipelines , 2012, ACM Trans. Graph..

[24]  T. Lawson,et al.  Spark , 2011 .

[25]  Barak A. Pearlmutter,et al.  Reverse-mode AD in a functional framework: Lambda the ultimate backpropagator , 2008, TOPL.

[26]  Michael D. McCool,et al.  Shader algebra , 2004, ACM Trans. Graph..

[27]  Pat Hanrahan,et al.  A language for shading and lighting calculations , 1990, SIGGRAPH.

[28]  James T. Kajiya,et al.  The rendering equation , 1986, SIGGRAPH.