Speaker
Description
In this talk we report our initial steps on the interoperability between Kokkos and AMReX within an internal codebase. Our goal is to explore how Kokkos capabilities can be integrated into an existing AMReX-based code. In addition to CUDA and HIP, the parallel dispatch provided by Kokkos::parallel_for enables the use of OpenMP for parallel loop constructs. Furthermore, we investigate whether cache local arrays and nested parallelism can enhance the performance of selected kernels. Finally, we consider the interoperability of the Kokkos::View with std::mdspan introduced in C++23. The application of interest is our geometric particle-in-cell code GEMPICX which is currently based on the AMReX framework.
We start by adding the Kokkos library to our build system implemented
through CMake, which already facilitates AMReX. Afterwards, we identify over-
lapping data structures and how AMReX data structures map to Kokkos data
structures. Our work is concluded by comparing the runtime of the selected
kernels.