Skip to content

Enable Kokkos Kernels with host and GPU dependency configuration - #601

Merged
aaadelmann merged 7 commits into
masterfrom
enable-kokkos-kernels
Sep 10, 2026
Merged

Enable Kokkos Kernels with host and GPU dependency configuration#601
aaadelmann merged 7 commits into
masterfrom
enable-kokkos-kernels

Conversation

@aaadelmann

Copy link
Copy Markdown
Member

Enable Kokkos Kernels by default, supporting installed packages and FetchContent builds. Configure host LAPACKE/MKL independently of CUDA/HIP libraries and validate provider capabilities, linkage, and integer ABI.

Add OPALX-inspired linear-map tests covering analytic eigenvalues and eigenvector residuals. Use Kernels GEMM and direct host LAPACKE because the upstream 5.2.0 eigenanalysis header fails with GCC 15 and Clang 21.

Fix build-tree/install dependency propagation, add a standalone consumer test, document configuration, and forward dependency options through CI.

Validated Serial and OpenMP builds, GCC and Clang, 1/2/4 MPI ranks, disabled configurations, and build-tree/install consumers. CUDA, HIP, MKL, and a working ILP64 provider remain unverified.

Refs #600

Enable Kokkos Kernels by default, supporting installed packages and
FetchContent builds. Configure host LAPACKE/MKL independently of CUDA/HIP
libraries and validate provider capabilities, linkage, and integer ABI.

Add OPALX-inspired linear-map tests covering analytic eigenvalues and
eigenvector residuals. Use Kernels GEMM and direct host LAPACKE because
the upstream 5.2.0 eigenanalysis header fails with GCC 15 and Clang 21.

Fix build-tree/install dependency propagation, add a standalone consumer
test, document configuration, and forward dependency options through CI.

Validated Serial and OpenMP builds, GCC and Clang, 1/2/4 MPI ranks,
disabled configurations, and build-tree/install consumers.
CUDA, HIP, MKL, and a working ILP64 provider remain unverified.

Refs #600
@aaadelmann
aaadelmann requested a review from srikrrish September 8, 2026 19:24
@aaadelmann
aaadelmann marked this pull request as draft September 8, 2026 19:24
@aaadelmann aaadelmann self-assigned this Sep 8, 2026
@aaadelmann aaadelmann added enhancement New feature or request feature request Used to label a feature request in the issue tracker. labels Sep 8, 2026
@aaadelmann

Copy link
Copy Markdown
Member Author

cscs-ci run cscs-ci-gh200, cscs-ci-mi300, cscs-ci-openmp

Fetch and build reference LAPACK when a compatible LAPACKE installation
cannot be found. Build the host BLAS, LAPACK, and LAPACKE libraries in an
isolated C/Fortran project so CUDA and HIP compiler settings do not leak
into the host dependency.

Export and install the fallback libraries through a relocatable CMake
package, support LP64 and ILP64 interfaces, preserve explicitly supplied
LAPACKE libraries, and allow automatic fetching to be disabled with
IPPL_FETCH_LAPACKE.
Preserve linker options beginning with -. A clean configure using an explicit LAPACKE link line containing -lm now passes, including the native eigenvalue probes. All five linear-map tests pass locally.
Placing Kokkos’s bundled desul headers first. I reproduced the CSCS collision locally with an intentionally invalid desul header beside lapacke.h; Kokkos Kernels still compiled successfully.
@aaadelmann
aaadelmann marked this pull request as ready for review September 8, 2026 21:02

@srikrrish srikrrish left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, we need this only for very small matrices (like 6x6 etc.) if I am not wrong right? Isn't it a bit overkill to expose these many options? I am also worried about the dependency chain but since we need it and I currently don't see a work around at least to be consistent with rest of IPPL enables it can be OFF by default?

Comment thread cmake/BuildSystem.md Outdated
Comment thread cmake/BuildSystem.md
Comment thread cmake/BuildSystem.md
Comment thread cmake/BuildSystem.md
Comment thread cmake/BuildSystem.md
Comment thread cmake/BuildSystem.md
Describe the opt-in setting, host LAPACKE and MKL providers, LP64 and
ILP64 selection, source-build fallback, offline FetchContent overrides,
compiler selection, and automatic CUDA and HIP TPL configuration.
@aaadelmann
aaadelmann requested a review from srikrrish September 9, 2026 18:30
@aaadelmann
aaadelmann enabled auto-merge September 9, 2026 18:50
@aaadelmann

Copy link
Copy Markdown
Member Author

cscs-ci run cscs-ci-openmp

@aaadelmann
aaadelmann added this pull request to the merge queue Sep 10, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 10, 2026
@aaadelmann
aaadelmann merged commit edb8794 into master Sep 10, 2026
6 checks passed
@aaadelmann
aaadelmann deleted the enable-kokkos-kernels branch September 10, 2026 09:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request feature request Used to label a feature request in the issue tracker.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants