ELPA: compile-time choice for solver-kind

- For the OpenCL based GPU code-path, or by choice, ELPA may not be built with GPU support.
- Introduced __NO_OFFLOAD_ELPA to allow CPU-only ELPA (related to #4617).
- Allow compile-time selection of ELPA solver-kind (1-stage vs 2-stage).
- For ELPA/SYCL, use 1-stage ELPA solver by default for the time being.
- ELPA/SYCL (MKL in general?) has an index-fix currently only in a branch.

Index/ILP issue (undefined behavior):
- ELPA eventually mismatches index-kinds (LP64 vs ILP64 when linking BLAS/MKL).
- For static linkage it usually does not not matter (at least CPU-only).
- CP2K links the correct BLAS flavor (SO and GPU-build may be affected?).
- ELPA 2-stage may be even affected beyond MKL (or for GPU in general).
- ELPA 1-stage is apparently not affected by index issue.
This commit is contained in:
Hans Pabst 2026-01-09 08:59:02 +01:00
parent 62f3f8ee30
commit ffde6a3702
7 changed files with 75 additions and 50 deletions

View file

@ -51,8 +51,8 @@ FLAG_EXCEPTIONS = (
r"__FORCE_USE_FAST_MATH",
r"__INTEL_LLVM_COMPILER",
r"__INTEL_COMPILER",
r"OFFLOAD_MEMPOOL_OMPALLOC",
r"OFFLOAD_BUFFER_MEMPOOL",
r"OFFLOAD_MEMPOOL_.+",
r"OFFLOAD_CHECK",
r"__OFFLOAD_CUDA",
r"__OFFLOAD_HIP",
@ -75,6 +75,7 @@ FLAG_EXCEPTIONS = (
r"TEST_LIBGRPP_.+",
r"__LIBXSMM2",
r"CPVERSION",
r"CPELPA_SOLVER_STAGES",
r"_WIN32",
r"OPENPMDAPI_VERSION_GE",
r"openPMD_HAVE_MPI",