Publication: Clad -- Automatic Differentiation Using Clang and LLVM
Introduction
Applications
Tools
Research Groups
Workshops
Publications
   List Publications
   Advanced Search
   Info
   Add Publications
My Account
About
Impress

Clad -- Automatic Differentiation Using Clang and LLVM

- Article in a journal -
 

Author(s)
V. Vassilev , M. Vassilev , A. Penev , L. Moneta , V. Ilieva

Published in
Journal of Physics: Conference Series

Year
2015

Abstract
Differentiation is ubiquitous in high energy physics, for instance in minimization algorithms and statistical analysis, in detector alignment and calibration, and in 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.

AD Tools
Clad

BibTeX
@ARTICLE{
         Vassilev2015CAD,
       author = "V. Vassilev and M. Vassilev and A. Penev and L. Moneta and V. Ilieva",
       title = "Clad -- {A}utomatic Differentiation Using {C}lang and {LLVM}",
       journal = "Journal of Physics: Conference Series",
       volume = "608",
       number = "1",
       pages = "012055",
       url = "http://stacks.iop.org/1742-6596/608/i=1/a=012055",
       doi = "10.1088/1742-6596/608/1/012055",
       year = "2015",
       abstract = "Differentiation is ubiquitous in high energy physics, for instance in minimization
         algorithms and statistical analysis, in detector alignment and calibration, and in 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.",
       ad_tools = "Clad"
}


back
  

Contact:
autodiff.org
Username:
Password:
(lost password)