1-5 September 2014
Faculty of Civil Engineering
Europe/Prague timezone

Clad - Automatic Differentiation Using Cling/Clang/LLVM

1 Sep 2014, 16:35
C219 (Faculty of Civil Engineering)


Faculty of Civil Engineering

Faculty of Civil Engineering, Czech Technical University in Prague Thakurova 7/2077 Prague 166 29 Czech Republic
Oral Data Analysis - Algorithms and Tools Data Analysis - Algorithms and Tools


Vasil Georgiev Vasilev (CERN)


Differentiation is ubiquitous in high energy physics, for instance for minimization algorithms in fitting and statistical analysis, detector alignment and calibration, theory. Automatic differentiation (AD) avoids well-known limitations in round-offs and speed, which symbolic and numerical differentiation suffer from, by transforming the source code of functions. We will present how AD can be used to compute the gradient of multi-variate functions and functor objects. We will explain approaches to implement an AD tool. We will show how LLVM, Clang and Cling (ROOT's C++11 interpreter) simplifies creation of such a tool. We describe how the tool could be integrated within any framework. We will demonstrate a simple proof-of-concept prototype, called clad, which is able to generate n-th order derivatives of C++ functions and other language constructs. We also demonstrate how clad can offload laborious computations from the CPU using OpenCL.

Primary author

Vasil Georgiev Vasilev (CERN)


Lorenzo Moneta (CERN)

Presentation Materials