about
DiffTaichi: Differentiable Programming for Physical Simulation (arxiv.org)
1 point by tanto on Jan 29, 2020 | hide | past | pdf | discuss on HN

In plain words: Built a language that turns physics simulations into ones that compute gradients, so controllers can be tuned: it rewrites the code and replays it backwards. An elastic simulator written this way is 4.2 times shorter than hand-written graphics-chip code yet runs as fast.

Abstract

We present DiffTaichi, a new differentiable programming language tailored for building high-performance differentiable physical simulators. Based on an imperative programming language, DiffTaichi generates gradients of simulation steps using source code transformations that preserve arithmetic intensity and parallelism. A light-weight tape is used to record the whole simulation program structure and replay the gradient kernels in a reversed order, for end-to-end backpropagation. We demonstrate the performance and productivity of our language in gradient-based learning and optimization tasks on 10 different physical simulators. For example, a differentiable elastic object simulator written in our language is 4.2x shorter than the hand-engineered CUDA version yet runs as fast, and is 188x faster than the TensorFlow implementation. Using our differentiable programs, neural network controllers are typically optimized within only tens of iterations.

Yuanming Hu, Luke Anderson, Tzu-Mao Li, Qi Sun, Nathan Carr, Jonathan Ragan-Kelley, Frédo Durand
arXiv:1910.00935 · cs.LG, cs.GR, physics.comp-ph, stat.ML · submitted Oct 1, 2019 · updated Feb 14, 2020
abstract · pdf · html · Published at ICLR 2020

add comment on HN
Also discussed: Oct 2019 (3 points, 0 comments)