Skip to content

Commit

Permalink
Merge pull request #92 from vgvassilev/patch-1
Browse files Browse the repository at this point in the history
Add project for Clad and Kokkos
  • Loading branch information
davidlange6 authored Apr 12, 2024
2 parents a817d11 + 8f7617d commit f25fe06
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
1 change: 1 addition & 0 deletions project_metadata.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
categories:
- Analysis tools
- Generators
- HPC
- Simulation
- Open science
- ML/AI
Expand Down
64 changes: 64 additions & 0 deletions projects/clad_kokkos.yml
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]

0 comments on commit f25fe06

Please sign in to comment.