BibTeX
@PROCEEDINGS{
Jing2021CAa,
title = "Cache-Aware and Roofline-Ideal Automatic Differentiation",
abstract = "Automatic differentiation software libraries augment arithmetic operations with
their derivatives, thereby relieving the programmer of deriving, implementing, debugging, and
maintaining derivative code. With this encapsulation however, the responsibility of code
optimization relies more heavily on the AD system itself (as opposed to the programmer and the
compiler). Moreover, given that there are multiple contexts in reservoir simulation software for
which derivatives are required (e.g. property package and discrete operator evaluations), the AD
infrastructure must also be adaptable. An Operator Overloading AD design is proposed and tested to
provide scalability and computational efficiency seemlessly across memory- and compute-bound
applications. This is achieved by 1) use of portable and standard programming language constructs
(C++17 and OpenMP 4.5 standards), 2) adopting a vectorized programming interface, 3) lazy evaluation
via expression templates, and 4) multiple memory alignment and layout policies. Empirical analysis
is conducted on various kernels spanning various arithmetic intensity and working set sizes. Cache-
aware roofline analysis results show that the performance and scalability attained are reliably
ideal. In terms of floapting point operations executed per second, the performance of the AD system
matches optimized hand-code. Finally, the implementation is benchmarked using the Automatically
Differentiable Expression Templates Library (ADETL).",
author = "Jing, Yuxuan and Younis, Rami M.",
volume = "Day 1 Tue, October 26, 2021",
series = "{SPE} Reservoir Simulation Conference",
year = "2021",
doi = "10.2118/203933-MS",
url = "https://doi.org/10.2118/203933-MS",
ad_area = "Reservoir Simulation",
ad_tools = "MXCSL"
}
|