The Tapenade Automatic Differentiation Tool: Principles, Model, and Specification

被引:299
作者
Hascoet, Laurent [1 ]
Pascual, Valerie [1 ]
机构
[1] INRIA Sophia Antipolis, Sophia Antipolis, France
来源
ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE | 2013年 / 39卷 / 03期
关键词
Algorithms; Performance; Source transformation; adjoint compiler;
D O I
10.1145/2450153.2450158
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页数:43
相关论文
共 29 条
[1]  
[Anonymous], 1998, OPA8.1 Ocean general Circulation Model reference manual
[2]  
[Anonymous], CAAMTR0002 RIC U
[3]  
[Anonymous], 2008, OTHER TITLES APPL MA
[4]  
[Anonymous], 2007, Compilers: principles, techniques and tools
[5]  
Bischof C.H., 2008, LECT NOTES COMPUTATI, V64
[6]  
BUCKER HM, 2005, LECT NOTES COMPUTATI, V50
[7]  
Corliss G., 2002, AUTOMATIC DIFFERENTI
[8]  
Dervieux A., 2005, RECENT TRENDS AEROSP, P363
[9]  
Fagan M., 2006, P 6 IEEE INT WORKSH
[10]  
Forth S., 2012, LECT NOTES COMPUTATI, V87