IRIS-HEP Fellow
email: maksym.andriichuk@icloud.com
Education: Mathematics, University of Wuerzburg, Germany
Ongoing 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