Affiliation:
1. Chair for Scientific Computing TU Kaiserslautern Bldg/Geb 34, Paul-Ehrlich-Strasse 67663 Kaiserslautern Germany
Abstract
AbstractThe development of algorithmic differentiation (AD) tools focuses mostly on handling floating point types in the target language. Taping optimizations in these tools mostly focus on specific operations like matrix vector products. Aggregated types like std::complex are usually handled by specifying the AD type as a template argument. This approach provides exact results, but prevents the use of expression templates. If AD tools are extended and specialized such that aggregated types can be added to the expression framework, then this will result in reduced memory utilization and improve the timing for applications where aggregated types such as complex number or matrix vector operations are used. Such an integration requires a reformulation of the stored data per expression and a rework of the tape evaluation process. We will demonstrate the overheads on a synthetic benchmark and show the improvement when aggregated types are handled properly by the expression framework of the AD tool.
Subject
Electrical and Electronic Engineering,Atomic and Molecular Physics, and Optics
Reference14 articles.
1. P. Peltzer J. Lotz and U. Naumann Eigen-AD: Algorithmic Differentiation of the Eigen Library in: Computational Science – ICCS 2020 (Springer International Publishing Cham 2020) pp. 690–704.
2. K. Leppkes J. Lotz and U. Naumann Derivative code by overloading in C++ (dco/c++): Introduction and summary of features Tech. Rep. AIB-2016-08 RWTH Aachen University September 2016.
3. R. Hogan ACM Transactions on Mathematical Software (TOMS) 40(4) 26 (2014).
4. B. Carpenter M. Hoffman M. Brubaker D. Lee P. Li and M. Betancourt arXiv preprintarXiv:1509.07164(2015).
5. M. Sagebaum T. Albring and N. Gauger ACM Transactions on Mathematical Software (TOMS) 45(4) (2019).