Eric Jang: Differentiable Path Tracing on the GPU/TPU
blog.evjang.com · 5,403 words · saved by 1 readers
You can download a PDF (typset in LaTeX) of this blog post here . Jupyter Notebook Code on GitHub: https://github.com/ericjang/pt-jax ...
You can download a PDF (typset in LaTeX) of this blog post here. This blog post is a tutorial on implementing path tracing, a physically-based rendering algorithm, in JAX. This code runs on the CPU, GPU, and Google Cloud TPU, and is implemented in a way that also makes it end-to-end differentiable. You can compute gradients of the rendered pixels with respect to geometry, materials, whatever your heart desires. I love JAX because it is equally suited for pedagogy and high-performance computing. We will implement a path tracer for a single pixel in numpy-like syntax, slap a jax.vmap…
saved by
related reading
- Ray Tracing in One Weekendraytracing.github.io
- Differentiable Programming from Scratchthenumb.at
- How to think in JAX — JAX documentationdocs.jax.dev
- Tiny TPUtinytpu.com
- GitHub - jax-ml/jax: Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and moregithub.com
- On Rendering the Sky, Sunsets, and Planets - The Blog of Maxime Heckelblog.maximeheckel.com
- How to Think About GPUs | How To Scale Your Modeljax-ml.github.io
- JAX core from scratch — JAX documentationdocs.jax.dev
- PyTorch internals : ezyang's blogblog.ezyang.com
- How to Think About TPUs | How To Scale Your Modeljax-ml.github.io
- GPT in 60 Lines of NumPy | Jay Modyjaykmody.com
- Ray Tracingdeveloper.nvidia.com