EN FR
Homepage Inria website


Section: New Software and Platforms

TAPENADE

Keywords: Static analysis - Optimization - Compilation - Gradients

Scientific Description

Tapenade implements the results of our research about models and static analyses for AD. For a full specification and description, see [10] . AD produces analytical derivatives, that are exact up to machine precision. Adjoint AD computes gradients at a cost which is independent from the number of input variables. Tapenade performs sophisticated flow- and context-sensitive data-flow analysis on the complete source program to produce an efficient differentiated code. Analyses include Type-Checking, Read-Write analysis, Pointer analysis. AD-specific analyses include:

  • Activity analysis: Detects variables whose derivative is either null or useless, to reduce the number of derivative instructions.

  • Adjoint Liveness analysis: Detects the source statements that are dead code for the computation of derivatives.

  • TBR analysis: In Adjoint AD, reduces the set of source variables that need to be recovered.

Functional Description

Tapenade transforms an original program into a new program that computes derivatives of the original program. Tapenade accepts source programs written in Fortran77, Fortran90, or C. Tapenade can differentiate in tangent, vector tangent, adjoint, and vector adjoint modes. Tapenade can be downloaded and installed on most architectures. Alternatively, it can be used as a web server. Higher-order derivatives can be obtained through repeated application.