|
121 | 121 | [Final Report](/assets/docs/Aaron_Jomy_GSoC23_Report.pdf)
|
122 | 122 |
|
123 | 123 | - name: Petro Zarytskyi
|
124 |
| - info: "IRIS-HEP Fellow" |
| 124 | + info: "Google Summer of Code 2025 Contributor" |
125 | 125 | photo: Petro.jpg
|
126 | 126 | email: petro.zarytskyi@gmail.com
|
127 | 127 | education: Applied Mathematics, Taras Shevchenko National University of Kyiv, Ukraine, 2021-present
|
128 | 128 | active: 1
|
129 | 129 | projects:
|
130 |
| - - title: "Optimizing reverse-mode automatic differentiation with advanced activity-analysis" |
| 130 | + - title: "Improve automatic differentiation of object-oriented paradigms using Clad" |
131 | 131 | status: Ongoing
|
| 132 | + description: | |
| 133 | + Clad is a Clang plugin enabling automatic differentiation (AD) for C++ mathematical |
| 134 | + functions by modifying the abstract syntax tree using LLVM's compiler capabilities. |
| 135 | + It integrates into existing codebases without modifications and supports forward and |
| 136 | + reverse mode differentiation. Reverse mode is efficient for Machine Learning and |
| 137 | + inverse problems involving backpropagation. |
| 138 | + Reverse mode AD requires two passes: forward pass stores intermediate values, reverse |
| 139 | + pass computes derivatives. Currently, Clad only supports storing trivially copyable |
| 140 | + types for function call arguments, limiting support for C-style arrays and non-copyable |
| 141 | + types like unique pointers, constraining Object-Oriented Programming usage. |
| 142 | + The project aims to enhance Clad's capability to store intermediate values for non-copyable |
| 143 | + types. One of the challenges lies in determining which expressions are modified in nested |
| 144 | + functions, potentially requiring run-time memory location tracking, which can be inefficient. |
| 145 | + The solution involves enhancing To-Be-Recorded (TBR) analysis, currently limited with |
| 146 | + poor nested function call support and no pointer reassignment handling. Improved TBR |
| 147 | + analysis will enable predictable memory handling, generating optimal code, and |
| 148 | + supporting both non-copyable types and efficient storage of copyable structures. |
| 149 | + proposal: /assets/docs/Petro_Zarytskyi_Proposal_2025.pdf |
| 150 | + mentors: Vassil Vassilev, David Lange |
| 151 | + - title: "Optimizing reverse-mode automatic differentiation with advanced activity-analysis" |
| 152 | + status: Completed project |
132 | 153 | description: |
|
133 | 154 | Clad is an automatic differentiation clang plugin for C++. It automatically
|
134 | 155 | generates code that computes derivatives of functions given by the user.
|
|
0 commit comments