PSolverKokkos

psolver is the library of the BigDFT suite that computes the electrostatic potential of a charge density discretized on the wavelet basis. It solves the Poisson equation with a 3D Fast Fourier Transform, and it comes with several backends for different hardware and programming models (pure Fortran/OpenMP, SYCL, CUDA, …).
PSolverKokkos is the new Kokkos backend for psolver. It is packaged as the external library libpsolverkokkos and offers two execution paths, KOKKOSCPU and KOKKOSGPU, that map onto the device backends of Kokkos (Serial, OpenMP and C++ Threads on CPUs, CUDA, HIP and SYCL on GPUs). One implementation covers the whole range of hardware targeted by psolver. It was developed as a joint project between L_Sim (CEA Grenoble) and the Maison de la Simulation (CEA Saclay) within the CExA initiative.
Kokkos Tea Time
I presented this work on 21 October 2026 at the Kokkos Tea Time, a monthly webinar about Kokkos.
Bringing Kokkos Performance Portability to BigDFT’s Poisson Solver: a Fortran/C++ Interoperability Journey
The talk covers the design of the backend, with a focus on what it takes to embed a modern C++ performance-portability library in a large Fortran code: memory ownership, lifetime of views across the language boundary, runtime selection of the backend and integration in the build system. It also compares the performance with the native backends of psolver, for example KOKKOSGPU on CUDA against the hand-written CUDA backend.
- Slides (press
pfor the presenter view) - Slides as a PDF
- Everything needed to rebuild the slides: sources, figure scripts and the parsed benchmark data
