Yuanming Hu, Luke Anderson, Tzu Mao Li, Qi Sun, Nathan Carr, Jonathan Ragan-Kelley, Frédo Durand

    Research output: Contribution to conferencePaperpeer-review


    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.2× shorter than the hand-engineered CUDA version yet runs as fast, and is 188× faster than the TensorFlow implementation. Using our differentiable programs, neural network controllers are typically optimized within only tens of iterations.

    Original languageEnglish (US)
    StatePublished - 2020
    Event8th International Conference on Learning Representations, ICLR 2020 - Addis Ababa, Ethiopia
    Duration: Apr 30 2020 → …


    Conference8th International Conference on Learning Representations, ICLR 2020
    CityAddis Ababa
    Period4/30/20 → …

    ASJC Scopus subject areas

    • Education
    • Linguistics and Language
    • Language and Linguistics
    • Computer Science Applications


    Dive into the research topics of 'DIFFTAICHI: DIFFERENTIABLE PROGRAMMING FOR PHYSICAL SIMULATION'. Together they form a unique fingerprint.

    Cite this