-
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.
Merge pull request #92 from vgvassilev/patch-1
Add project for Clad and Kokkos
- Loading branch information
Showing
2 changed files
with
65 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 |
---|---|---|
@@ -1,6 +1,7 @@ | ||
categories: | ||
- Analysis tools | ||
- Generators | ||
- HPC | ||
- Simulation | ||
- Open science | ||
- ML/AI | ||
|
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,64 @@ | ||
--- | ||
name: Implement Differentiating of the Kokkos Framework With Clad | ||
postdate: 2024-04-11 | ||
categories: | ||
- ML/AI | ||
- HPC | ||
durations: | ||
- 3 months | ||
skillset: | ||
- C++ | ||
experiments: | ||
- Any | ||
project: | ||
- compiler research | ||
location: | ||
- Remote | ||
program: | ||
- Any | ||
commitment: | ||
- Any | ||
status: | ||
- Available | ||
shortdescription: Implement Differentiating of the Kokkos Framework With Clad | ||
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 based on Clang which provides the necessary | ||
facilities for code transformation. The AD library can differentiate | ||
non-trivial functions, to find a partial derivative for trivial cases and has | ||
good unit test coverage. | ||
The Kokkos C++ Performance Portability Ecosystem is a production level solution | ||
for writing modern C++ applications in a hardware agnostic way. It is part of | ||
the US Department of Energies Exascale Project – the leading effort in the US | ||
to prepare the HPC community for the next generation of super computing | ||
platforms. The Ecosystem consists of multiple libraries addressing the primary | ||
concerns for developing and maintaining applications in a portable way. The | ||
three main components are the Kokkos Core Programming Model, the Kokkos Kernels | ||
Math Libraries and the Kokkos Profiling and Debugging Tools. | ||
The Kokkos framework is used in several domains including climate modeling where | ||
gradients are important part of the simulation process. This project aims at | ||
teaching Clad to differentiate Kokkos entities in a performance portable way. | ||
Task ideas and expected results: | ||
* Implement common test cases for Kokkos in Clad | ||
* Add support for Kokkos functors | ||
* Add support for Kokkos lambdas | ||
* Incorporate the changes from the [initial Kokkos PR](https://github.com/vgvassilev/clad/pull/783) | ||
* Enhance existing benchmarks demonstrating effectiveness of Clad for Kokkos | ||
* [Stretch goal] Performance benchmarks | ||
Candidate requirements: | ||
* Experience with C++, experience with ML and backpropagation | ||
* Knowledge of Clang. | ||
contacts: | ||
- name: Vaibhav Thakkar | ||
email: [email protected] | ||
- name: Petro Zarytskyi | ||
email: [email protected] | ||
- name: Vassil Vasilev | ||
email: [email protected] |