Summary
Enable optional Kokkos Kernels support in IPPL and add a linear-map eigenanalysis unit test inspired by OPALX's unit_tests/Algorithms/TestLinearMapEigenAnalysis.cpp.
Dependency requirements
Kokkos does not automatically install Kokkos Kernels or external numerical libraries.
In Kokkos Kernels 5.2.0, SerialEigendecomposition requires host LAPACKE or MKL. Its native/device implementation is unfinished. CUDA and HIP builds therefore still need a host provider for this eigenanalysis.
Dependencies by platform:
- Serial/OpenMP: host LAPACKE with LAPACK/BLAS, or MKL. Including MAC Os
- CUDA: the same host dependency, plus cuBLAS and cuSOLVER for supported GPU operations.
- HIP: the same host dependency, plus rocBLAS and rocSOLVER for supported GPU operations.
Enabling GPU libraries does not move this eigenanalysis onto the GPU.
CMake tasks
Configuration options cannot change the capabilities of an already installed Kokkos Kernels package. Validate the selected package rather than assuming it provides the requested backend.
Unit test
Use small 4x4 maps with analytically known spectra, inspired by the OPALX tests.
Run eigenanalysis on host memory, with explicit device-to-host transfer when needed. Check numerical results rather than relying solely on the upstream wrapper's return status.
Acceptance criteria
Reference
Kokkos Kernels 5.2.0 eigenanalysis implementation:
https://github.com/kokkos/kokkos-kernels/blob/5.2.0/batched/dense/impl/KokkosBatched_Eigendecomposition_Serial_Internal.hpp
Summary
Enable optional Kokkos Kernels support in IPPL and add a linear-map eigenanalysis unit test inspired by OPALX's
unit_tests/Algorithms/TestLinearMapEigenAnalysis.cpp.Dependency requirements
Kokkos does not automatically install Kokkos Kernels or external numerical libraries.
In Kokkos Kernels 5.2.0,
SerialEigendecompositionrequires host LAPACKE or MKL. Its native/device implementation is unfinished. CUDA and HIP builds therefore still need a host provider for this eigenanalysis.Dependencies by platform:
Enabling GPU libraries does not move this eigenanalysis onto the GPU.
CMake tasks
IPPL_ENABLE_KOKKOS_KERNELSoption.Configuration options cannot change the capabilities of an already installed Kokkos Kernels package. Validate the selected package rather than assuming it provides the requested backend.
Unit test
Use small 4x4 maps with analytically known spectra, inspired by the OPALX tests.
Run eigenanalysis on host memory, with explicit device-to-host transfer when needed. Check numerical results rather than relying solely on the upstream wrapper's return status.
Acceptance criteria
Reference
Kokkos Kernels 5.2.0 eigenanalysis implementation:
https://github.com/kokkos/kokkos-kernels/blob/5.2.0/batched/dense/impl/KokkosBatched_Eigendecomposition_Serial_Internal.hpp