Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients
Not on the map. Why?
Abstract (arXiv)
Applying differentiable programming techniques and machine learning algorithms to foreign programs requires developers to either rewrite their code in a machine learning framework, or otherwise provide derivatives of the foreign code. This paper presents Enzyme, a high-performance automatic differentiation (AD) compiler plugin for the LLVM compiler framework capable of synthesizing gradients of statically analyzable programs expressed in the LLVM intermediate representation (IR). Enzyme synthesizes gradients for programs written in any language whose compiler targets LLVM IR including C, C++, Fortran, Julia, Rust, Swift, MLIR, etc., thereby providing native AD capabilities in these languages. Unlike traditional source-to-source and operator-overloading tools, Enzyme performs AD on optimized IR. On a machine-learning focused benchmark suite including Microsoft's ADBench, AD on optimized IR achieves a geometric mean speedup of 4.5x over AD on IR before optimization allowing Enzyme to achieve state-of-the-art performance. Packaging Enzyme for PyTorch and TensorFlow provides convenient access to gradients of foreign code with state-of-the art performance, enabling foreign code to be directly incorporated into existing machine learning workflows.
Key facts. Cited by 26 papers in the map (data through 7 Oct 2026). First posted on arXiv 4 Oct 2020.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 3; 2022: 5; 2023: 3; 2024: 2; 2025: 7; 2026: 6.
26 papers.
Sort:
- 2021Advances in Neural Renderingcited by 365
- 2022Differentiable Programming for Earth System Modelingcited by 21
- 2022New directions for surrogate models and differentiable programming for High Energy Physics detector simulationcited by 16
- 2023A Review of Change of Variable Formulas for Generative Modelingcited by 12
- 2022Closed-Form Diffeomorphic Transformations for Time Series Alignmentcited by 7
- 2021Swift for TensorFlow: A portable, flexible platform for deep learningcited by 6
- 2026Magellan: Autonomous Discovery of Novel Compiler Optimization Heuristics with AlphaEvolvecited by 5
- 2025Sparser, Better, Faster, Stronger: Sparsity Detection for Efficient Automatic Differentiationcited by 4
- 2021AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Juliacited by 2
- 2022Dressi: A Hardware-Agnostic Differentiable Renderer with Reactive Shader Packing and Soft Rasterizationcited by 2
- 2022Machines of finite depth: towards a formalization of neural networkscited by 2
- 2024Optimizing Automatic Differentiation with Deep Reinforcement Learningcited by 2
14 more
- 2023Understanding Automatic Differentiation Pitfallscited by 1
- 2024JAXbind: Bind any function to JAXcited by 1
- 2025Kolmogorov-Arnold Energy Models: Fast, Interpretable Generative Modelingcited by 1
- 2025DaCe AD: Unifying High-Performance Automatic Differentiation for Machine Learning and Scientific Computingcited by 1
- 2025Stochastic Sample Approximations of (Local) Moduli of Continuitycited by 1
- 2025NORi: An ML-Augmented Ocean Boundary Layer Parameterizationcited by 1
- 2026Deep Adaptive Model-Based Design of Experimentscited by 1
- 2023Bidirectional Reactive Programming for Machine Learningcited by 0
- 2025Action-Gradient Monte Carlo Tree Search for Non-Parametric Continuous (PO)MDPscited by 0
- 2025A Common Interface for Automatic Differentiationcited by 0
- 2026Large-scale empirical tuning and comparison of default optimizers for variational inferencecited by 0
- 2026Stable and Scalable Probabilistic Numerical Solvers for Stiff and High-Dimensional ODEscited by 0
- 2026Mosaic: A Benchmark Suite for Differentiable Physics Solverscited by 0
- 2026Autonomous phase discoverycited by 0
- 2026Autonomous phase discovery27 Sep 2026
- 2026Mosaic: A Benchmark Suite for Differentiable Physics Solvers26 Jun 2026
- 2026Stable and Scalable Probabilistic Numerical Solvers for Stiff and High-Dimensional ODEs6 Jun 2026
- 2026Large-scale empirical tuning and comparison of default optimizers for variational inference5 Jun 2026
- 2026Deep Adaptive Model-Based Design of Experiments17 Mar 2026
- 2026Magellan: Autonomous Discovery of Novel Compiler Optimization Heuristics with AlphaEvolve28 Jan 2026
- 2025NORi: An ML-Augmented Ocean Boundary Layer Parameterization4 Dec 2025
- 2025Stochastic Sample Approximations of (Local) Moduli of Continuity18 Sep 2025
- 2025DaCe AD: Unifying High-Performance Automatic Differentiation for Machine Learning and Scientific Computing2 Sep 2025
- 2025Kolmogorov-Arnold Energy Models: Fast, Interpretable Generative Modeling17 Jun 2025
- 2025A Common Interface for Automatic Differentiation8 May 2025
- 2025Action-Gradient Monte Carlo Tree Search for Non-Parametric Continuous (PO)MDPs15 Mar 2025
14 more
- 2025Sparser, Better, Faster, Stronger: Sparsity Detection for Efficient Automatic Differentiation29 Jan 2025
- 2024Optimizing Automatic Differentiation with Deep Reinforcement Learning7 Jun 2024
- 2024JAXbind: Bind any function to JAX13 Mar 2024
- 2023Bidirectional Reactive Programming for Machine Learning28 Nov 2023
- 2023A Review of Change of Variable Formulas for Generative Modeling4 Aug 2023
- 2023Understanding Automatic Differentiation Pitfalls12 May 2023
- 2022Differentiable Programming for Earth System Modeling29 Aug 2022
- 2022Closed-Form Diffeomorphic Transformations for Time Series Alignment16 Jun 2022
- 2022Machines of finite depth: towards a formalization of neural networks27 Apr 2022
- 2022Dressi: A Hardware-Agnostic Differentiable Renderer with Reactive Shader Packing and Soft Rasterization4 Apr 2022
- 2022New directions for surrogate models and differentiable programming for High Energy Physics detector simulation15 Mar 2022
- 2021Advances in Neural Rendering10 Nov 2021
- 2021AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Julia25 Sep 2021
- 2021Swift for TensorFlow: A portable, flexible platform for deep learning26 Feb 2021
- 2021Advances in Neural Renderingcited by 365
- 2022Differentiable Programming for Earth System Modelingcited by 21
- 2022New directions for surrogate models and differentiable programming for High Energy Physics detector simulationcited by 16
- 2023A Review of Change of Variable Formulas for Generative Modelingcited by 12
- 2022Closed-Form Diffeomorphic Transformations for Time Series Alignmentcited by 7
- 2021Swift for TensorFlow: A portable, flexible platform for deep learningcited by 6
- 2026Magellan: Autonomous Discovery of Novel Compiler Optimization Heuristics with AlphaEvolvecited by 5
- 2025Sparser, Better, Faster, Stronger: Sparsity Detection for Efficient Automatic Differentiationcited by 4
- 2021AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Juliacited by 2
- 2022Dressi: A Hardware-Agnostic Differentiable Renderer with Reactive Shader Packing and Soft Rasterizationcited by 2
- 2022Machines of finite depth: towards a formalization of neural networkscited by 2
- 2024Optimizing Automatic Differentiation with Deep Reinforcement Learningcited by 2
12 most cited of 26 All 26 (JSON)
- 2026Autonomous phase discovery27 Sep 2026
- 2026Mosaic: A Benchmark Suite for Differentiable Physics Solvers26 Jun 2026
- 2026Stable and Scalable Probabilistic Numerical Solvers for Stiff and High-Dimensional ODEs6 Jun 2026
- 2026Large-scale empirical tuning and comparison of default optimizers for variational inference5 Jun 2026
- 2026Deep Adaptive Model-Based Design of Experiments17 Mar 2026
- 2026Magellan: Autonomous Discovery of Novel Compiler Optimization Heuristics with AlphaEvolve28 Jan 2026
- 2025NORi: An ML-Augmented Ocean Boundary Layer Parameterization4 Dec 2025
- 2025Stochastic Sample Approximations of (Local) Moduli of Continuity18 Sep 2025
- 2025DaCe AD: Unifying High-Performance Automatic Differentiation for Machine Learning and Scientific Computing2 Sep 2025
- 2025Kolmogorov-Arnold Energy Models: Fast, Interpretable Generative Modeling17 Jun 2025
- 2025A Common Interface for Automatic Differentiation8 May 2025
- 2025Action-Gradient Monte Carlo Tree Search for Non-Parametric Continuous (PO)MDPs15 Mar 2025
12 newest of 26 All 26 (JSON)