AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Julia
Frank Sch\"afer, Mohamed Tarek, Lyndon White, Chris Rackauckas

TL;DR
AbstractDifferentiation.jl provides a unified API for multiple Julia AD systems, simplifying user experience and enabling easy switching and composition of AD packages without boilerplate code.
Contribution
It introduces a framework that automates API generation for AD packages in Julia, reducing complexity for users and developers alike.
Findings
Supports multiple AD systems with a unified API
Reduces boilerplate code for AD package developers
Enables easy switching and composition of AD methods
Abstract
No single Automatic Differentiation (AD) system is the optimal choice for all problems. This means informed selection of an AD system and combinations can be a problem-specific variable that can greatly impact performance. In the Julia programming language, the major AD systems target the same input and thus in theory can compose. Hitherto, switching between AD packages in the Julia Language required end-users to familiarize themselves with the user-facing API of the respective packages. Furthermore, implementing a new, usable AD package required AD package developers to write boilerplate code to define convenience API functions for end-users. As a response to these issues, we present AbstractDifferentiation.jl for the automatized generation of an extensive, unified, user-facing API for any AD package. By splitting the complexity between AD users and AD developers, AD package developers…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNumerical Methods and Algorithms · Formal Methods in Verification · Model Reduction and Neural Networks
