DiffTaichi: Differentiable Programming for Physical Simulation
arXiv:1910.00935
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.
Published at ICLR 2020
Cited by in corpus (26)
- Learning to Simulate Complex Physics with Graph Networks
- DiffCloth: Differentiable Cloth Simulation with Dry Frictional Contact
- An End-to-End Differentiable Framework for Contact-Aware Robot Design
- Back to Newton's Laws: Learning Vision-based Agile Flight via Differentiable Physics
- Differentiable Molecular Simulations for Control and Learning
- Computational synthesis of locomotive soft robots by topology optimization
- Fast and Feature-Complete Differentiable Physics for Articulated Rigid Bodies with Contact
- Brax -- A Differentiable Physics Engine for Large Scale Rigid Body Simulation
- Sparse Surface Constraints for Combining Physics-based Elasticity Simulation and Correspondence-Free Object Reconstruction
- DiffSDFSim: Differentiable Rigid-Body Dynamics With Implicit Shapes
- Differentiable Physics: A Position Piece
- Hardware as Policy: Mechanical and Computational Co-Optimization using Deep Reinforcement Learning
- Ab Initio Particle-based Object Manipulation
- Learning Stable Galerkin Models of Turbulence with Differentiable Programming
- Neurally Integrated Finite Elements for Differentiable Elasticity on Evolving Domains
- A First Principles Approach for Data-Efficient System Identification of Spring-Rod Systems via Differentiable Physics Engines
- Deluca -- A Differentiable Control Library: Environments, Methods, and Benchmarking
- Design, Validation, and Case Studies of 2D-VSR-Sim, an Optimization-friendly Simulator of 2-D Voxel-based Soft Robots
- Deep Differentiable Grasp Planner for High-DOF Grippers
- Additive manufacturing process design with differentiable simulations
- Differentiable Spline Approximations
- Spring-Rod System Identification via Differentiable Physics Engine
- Differentiable Computational Geometry for 2D and 3D machine learning
- A good body is all you need: avoiding catastrophic interference via agent architecture search
- Learning to Predict with Supporting Evidence: Applications to Clinical Risk Prediction
- Learning to Manipulate Amorphous Materials