diff --git a/project_metadata.yml b/project_metadata.yml index 0462fc6..9de26ed 100644 --- a/project_metadata.yml +++ b/project_metadata.yml @@ -1,6 +1,7 @@ categories: - Analysis tools - Generators + - HPC - Simulation - Open science - ML/AI diff --git a/projects/clad_kokkos.yml b/projects/clad_kokkos.yml new file mode 100644 index 0000000..1ff2ade --- /dev/null +++ b/projects/clad_kokkos.yml @@ -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: vaibhav.thakkar@cern.ch + - name: Petro Zarytskyi + email: petro.zarytskyi@gmail.com + - name: Vassil Vasilev + email: vvasilev@cern.ch