-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Max Andriychuk
committed
Jun 19, 2024
1 parent
35ec697
commit 17b3960
Showing
1 changed file
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
name: Optimizing automatic differentiation using activity analysis | ||
postdate: 2024-06-15 | ||
categories: | ||
- ML/AI | ||
- HPC | ||
durations: | ||
- 3 months | ||
skillset: | ||
- C++ | ||
experiments: | ||
- Any | ||
project: | ||
- compiler research | ||
location: | ||
- Remote | ||
program: | ||
- Any | ||
commitment: | ||
- Any | ||
status: | ||
- Available | ||
shortdescription: Optimizing automatic differentiation using activity analysis | ||
description: | | ||
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 a source transformation based AD tool which can perform more advanced | ||
program optimization by implementing more sophisticated analyses because it | ||
has access to a rich program representation – the Clang AST. These optimizations | ||
investigate which parts of the computation graph are relevant for the AD rules. | ||
One such optimization is the To-Be-Recorded optimization which reduces the memory | ||
pressure to the clad tape data structure. TBR analysis is a part of an adjoint | ||
mode of AD. It finds variables whose present value is used in a derivative | ||
instruction and reduces the number of statements by not creating temporary variables | ||
for dependent variables that are being overwritten and not being used. Another | ||
optimization is the activity analysis optimization 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. The advantage is that this improves the performance of the generated code | ||
and reduces the phase space of features needed to be supported to enable | ||
differentiable STL, for example. | ||
contacts: | ||
- name: Maksym Andriichuk | ||
email: [email protected] | ||
- name: Petro Zarytskyi | ||
email: [email protected] | ||
- name: Vassil Vasilev | ||
email: [email protected] |