16th International workshop on Advanced Computing and Analysis Techniques in physics research | |
Clad — Automatic Differentiation Using Clang and LLVM | |
物理学;计算机科学 | |
Vassilev, V.^1,2 ; Vassilev, M.^2 ; Penev, A.^2 ; Moneta, L.^1 ; Ilieva, V.^3 | |
CERN, PH-SFT, Geneva, Switzerland^1 | |
FMI, University of Plovdiv Paisii Hilendarski, Plovdiv, Bulgaria^2 | |
Princeton University, Princeton | |
NJ, United States^3 | |
关键词: Automatic differentiations; Functors; Language constructs; Minimization algorithms; Numerical differentiation; Proof of concept; Source codes; | |
Others : https://iopscience.iop.org/article/10.1088/1742-6596/608/1/012055/pdf DOI : 10.1088/1742-6596/608/1/012055 |
|
学科分类:计算机科学(综合) | |
来源: IOP | |
![]() |
【 摘 要 】
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.
【 预 览 】
Files | Size | Format | View |
---|---|---|---|
Clad — Automatic Differentiation Using Clang and LLVM | 801KB | ![]() |