Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
4th Annual Symposium on Theoretical Aspects of Computer Sciences on STACS 87
Evaluating derivatives: principles and techniques of algorithmic differentiation
Evaluating derivatives: principles and techniques of algorithmic differentiation
Automatic differentiation of algorithms: from simulation to optimization
Automatic differentiation of algorithms: from simulation to optimization
Adjoining independent computations
Automatic differentiation of algorithms
Control Flow Reversal for Adjoint Code Generation
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
An efficient overloaded implementation of forward mode automatic differentiation in MATLAB
ACM Transactions on Mathematical Software (TOMS)
Data Representation Alternatives in Semantically Augmented Numerical Models
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
OpenAD/F: A Modular Open-Source Tool for Automatic Differentiation of Fortran Codes
ACM Transactions on Mathematical Software (TOMS)
Advances in Automatic Differentiation
Advances in Automatic Differentiation
"To be recorded" analysis in reverse-mode automatic differentiation
Future Generation Computer Systems
The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation
The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation
Recent Advances in Algorithmic Differentiation
Recent Advances in Algorithmic Differentiation
Hi-index | 0.00 |
Tapenade is an Automatic Differentiation (AD) tool which, given a Fortran or C code that computes a function, creates a new code that computes its tangent or adjoint derivatives. Tapenade puts particular emphasis on adjoint differentiation, which computes gradients at a remarkably low cost. This article describes the principles of Tapenade, a subset of the general principles of AD. We motivate and illustrate with examples the AD model of Tapenade, that is, the structure of differentiated codes and the strategies used to make them more efficient. Along with this informal description, we formally specify this model by means of data-flow equations and rules of Operational Semantics, making this the reference specification of the tangent and adjoint modes of Tapenade. One benefit we expect from this formal specification is the capacity to formally study the AD model itself, especially for the adjoint mode and its sophisticated strategies. This article also describes the architectural choices of the implementation of Tapenade. We describe the current performance of Tapenade on a set of codes that include industrial-size applications. We present the extensions of the tool that are planned in a foreseeable future, deriving from our ongoing research on AD.