Differentiable Programming in C++
summary
Claims that integrating automatic differentiation into the compiler yields concrete speed and compatibility wins: two implementations — Clad (AST-level) and Enzyme (LLVM IR) — produce gradients from real C++ and other front ends, Enzyme achieves about 4.2x speedup over a reference pipeline on a mixed ML/scientific suite, and compiler-level AD enables differentiating arbitrary GPU kernels and supports OpenMP and MPI. The approach avoids rewriting code, reduces maintenance, and is actively pushed toward standardization via SG19.
AI-written summary · about
chapters (35)
- 0:00Speakers
- 0:15What is this talk about?
- 0:25Outline
- 2:29How fast he ran? What does that even mean?
- 3:26Measuring the rate of change
- 5:13Derivatives: measure the rate of change
- 6:55The longer the distance the more parameters
- 9:41Computing Derivatives
- 11:26Numerical Differentiation
- 14:28Automatic and Symbolic Differentiation
- 16:40AD. Algorithm Decomposition
- 17:42AD. Chain Rule
- 19:14AD step-by-step. Forward Mode
- 20:18AD step-by-step. Reverse Mode
- 21:38AD Control Flow
- 23:10AD. Cheap Gradient Principle
- 23:42Uses of AD outside of Deep Learning
- 24:23Deep Learning & Automatic Differentiation
- 24:58Backpropagation
- 27:17Differentiable Programming
- 30:50C++ Automatic Differentiation Wish List
- 32:42Existing AD Approaches (2/3)
- 38:42Implementation of AD in Clang/LLVM
- 40:03Case Study 1: Clad - AD of Clang AST
- 43:00Clad Key Insights
- 43:27Existing Automatic Differentiation Pipelines
- 45:33Vector Normalization: LICM then AD
- 46:20Vector Normalization: AD, then LICM
- 47:17Optimization & Automatic Differentiation
- 48:11Case Study 2: Enzyme - AD of LLVM IR
- 49:27Enzyme Evaluation
- 50:41Speedup of Enzyme
- 53:12Key . Enzyme Insights
- 54:12Overall AD Compiler Insights
- 56:24Standardization Efforts
related talks
39mDifferentiable Functional Programming
15mCoarsening Optimization for Differentiable Programming
36mProgramming Languages for Automatic Differentiation: What Now?
16mAlgorithmic Differentiation: C++ & Extremum Estimation
54mGeneralized Physics-Informed Learning through Language-Wide Differentiable Programming
26mAdding AD to Scheme by Differentiating the Interpreter
05mPartial Evaluation of Forward-Mode Automatic Differentiation
29mPartial Evaluation of Automatic Differentiation for Differential-Algebraic Equati...
