Single Precision Support on Kokkos

I was wondering if there’s been any progress on the addition of single point compatibility in KOKKOS. The last I heard about this was this post from 2 years ago.


There had been some work in that regard in spring/summer 2020 even up to the point of submitting a pull request: Refactor Kokkos package to support single precision by stanmoore1 · Pull Request #2125 · lammps/lammps · GitHub

However, due to amount of changes required, the additional work required to keep up with the speed of development in the Kokkos library as well as the KOKKOS package in LAMMPS, due to it being a low priority task, and the lack of manpower, this pull request never came close to being production ready and quickly accumulated a large number of merge conflicts so that it was withdrawn a year later.

I am not aware of any active developments for this feature currently, but @stamoor is the person that could answer to your inquiry with more authority than me.

In almost all cases where you would want to use single or mixed precision, you can use the GPU package (and then some where you cannot use KOKKOS). With its (somewhat) recent developments to support Nvidia, AMD, and Intel GPUs equally well (via CUDA, HIP, or OpenCL) it should be more portable and the performance benefit of using mixed over double precision in general is far larger - especially on consumer grade GPUs - than the performance differences between the GPU and KOKKOS package.

We are still planning to add single/mixed precision to the KOKKOS package, but not actively working on it yet. Would like to finish it this next year ideally.