The Tapenade Automatic Differentiation tool: principles, model, and specification
Laurent Hascoët
Valérie Pascual
(INRIA, BP93, 06902 Sophia-Antipolis, France)
Preprint, INRIA Research Report #7957, may 2012 (50 pages)
Abstract:Tapenade is an Automatic Differentiation 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 paper describes the principles
of Tapenade, a subset of the general principles of AD. We motivate and illustrate on
examples the AD model of Tapenade, i.e. 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
study formally the AD model itself, especially for the adjoint mode and its
sophisticated strategies. This paper also describes the architectural choices of the
implementation of Tapenade. We describe the current performances 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.
Keywords:
Automatic Differentiation, Program Transformation, Compilers, Preprocessors,
Operational Semantics, Program Analysis, Adjoint, Gradient
Full text (pdf)
@techreport{TapenadeRef12,
author = {Hasco\"et, L. and Pascual, V.},
title = {The {T}apenade {A}utomatic {D}ifferentiation tool: principles, model, and specification},
institution = {INRIA},
type = {Research Report},
number= {7957},
url = "http://hal.inria.fr/hal-00695839 ",
year=2012
}