IRIS-HEP Fellow
email: maksym[dot]andriichuk[at]icloud[dot]com
Education: Mathematics, University of Wuerzburg, Germany
Completed project:
Activity analysis for reverse-mode differentiation of (CUDA) GPU kernels
Clad is a Clang plugin designed to provide automatic differentiation
(AD) for C++ mathematical functions. It generates code for computing
derivatives modifying Abstract-Syntax-Tree(AST) using LLVM compiler
features. It performs advanced program optimization by implementing more
sophisticated analyses because it has access to a rich program
representation – the Clang AST. Clad supports reverse-mode
differentiation of the CUDA kernels, however it is not always optimal
because the generated code might contain the data-race conditions,
significantly slowing up the execution. Thread Safety Analysis is a
static analysis that detects possible data-race conditions that would
enable reducing atomic operations in the Clad-produced code.
Project Proposal: URL
Mentors: Vassil Vassilev, David Lange
Completed project project:
Optimizing automatic differentiation using activity analysis
Clad has undergone significant optimization in the recent years. One
such optimization is the To-Be-Recorded optimization which reduces the
memory pressure to the clad tape data structure. The next step is to
implement the activity analysis which discards all statements which are
irrelevant for the generated code. That is, if the statements do not
depend on the input/output variables of a routine in a differentiable
way, they are ignored. Combining both analyses could result in a much
greater performance, which is our ultimate goal.
Project Proposal: URL
Mentors: Vassil Vassilev, David Lange, Petro Zarytskyi