Research Intern at CERN, Google Summer of Code 2023 Contributor
email: vaibhav.thakkar.22.12.99@gmail.com
Education: Electrical Engineering and Computer Science, Indian Institute of Technology, Kanpur, India
Ongoing project:
Add support for pointers in reverse mode AD in Clad
In mathematics and computer algebra, automatic differentiation (AD) is a set of techniques
to numerically evaluate the derivative of a function specified by a computer program.
Automatic differentiation is an alternative technique to Symbolic differentiation and
Numerical differentiation (the method of finite differences).
Clad is based on Clang which provides the necessary facilities for code transformation.
The AD library is able to differentiate non-trivial functions, to find a partial derivative
for trivial cases and has good unit test coverage.
Clad currently supports differentiation with respect to single-dimensional arrays but has
limited support for pointers in reverse mode AD. This project aims to add support for
pointers in Clad.
Project Proposal: URL
Mentors: Vassil Vassilev, David Lange
Completed project:
Implement vector mode in forward mode automatic differentiation in Clad
Clad is an automatic differentiation library based on Clang which provides the
necessary facilities for code transformation.
Automatic Differentiation (AD) is a set of techniques to numerically evaluate the
derivative of a function specified by a computer program.
Automatic differentiation is an alternative technique to Symbolic differentiation and
Numerical differentiation (the method of finite differences).
Vector mode support will facilitate the computation of gradients using the forward
mode AD in a single pass and thus without explicitly performing differentiation n times
for n function arguments.
The major benefit of using vector mode is that computationally expensive operations
do not need to be recomputed n times for n function arguments.
Project Proposal: URL
Project Reports: Final Report
Mentors: Parth Arora, Vassil Vassilev, David Lange, Alexander Penev