Maksym Andriichuk

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

Presentations



Activity Analysis: Summary, Slides, Team Meeting, 29 January 2025
Progress on Activity Analysis, Slides, Team Meeting, 9 October 2024
Optimizing automatic differentiation using activity analysis, Slides, Team Meeting, 12 June 2024