Kokkos complex_align variant, Trilinos+PETSc enforcement for Kokkos~complex_align (#47686)

This commit is contained in:
finkandreas 2024-11-23 15:45:22 +01:00 committed by GitHub
parent 71b65bb424
commit 39a081d7fd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 22 additions and 17 deletions

View File

@ -179,6 +179,7 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
options_variants = {
"aggressive_vectorization": [False, "Aggressively vectorize loops"],
"compiler_warnings": [False, "Print all compiler warnings"],
"complex_align": [True, "Align complex numbers"],
"cuda_constexpr": [False, "Activate experimental constexpr features"],
"cuda_lambda": [False, "Activate experimental lambda features"],
"cuda_ldg_intrinsic": [False, "Use CUDA LDG intrinsics"],

View File

@ -374,6 +374,7 @@ def check_fortran_compiler(self):
depends_on("libyaml", when="+libyaml")
depends_on("hwloc", when="+hwloc")
depends_on("kokkos", when="+kokkos")
depends_on("kokkos~complex_align", when="+kokkos+complex")
depends_on("kokkos-kernels", when="+kokkos")
for cuda_arch in CudaPackage.cuda_arch_values:
depends_on(

View File

@ -407,23 +407,25 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
# ###################### Dependencies ##########################
# External Kokkos
depends_on("kokkos@4.4.01", when="@master: +kokkos")
depends_on("kokkos@4.3.01", when="@16.0.0 +kokkos")
depends_on("kokkos@4.2.01", when="@15.1.0:15.1.1 +kokkos")
depends_on("kokkos@4.1.00", when="@14.4.0:15.0.0 +kokkos")
depends_on("kokkos +wrapper", when="trilinos@14.4.0: +kokkos +wrapper")
depends_on("kokkos ~wrapper", when="trilinos@14.4.0: +kokkos ~wrapper")
with when("@14.4: +kokkos"):
depends_on("kokkos+wrapper", when="+wrapper")
depends_on("kokkos~wrapper", when="~wrapper")
depends_on("kokkos~complex_align")
depends_on("kokkos@4.4.01", when="@master:")
depends_on("kokkos@4.3.01", when="@16")
depends_on("kokkos@4.2.01", when="@15.1:15")
depends_on("kokkos@4.1.00", when="@14.4:15.0")
depends_on("kokkos-kernels@4.4.01", when="@master:")
depends_on("kokkos-kernels@4.3.01", when="@16")
depends_on("kokkos-kernels@4.2.01", when="@15.1:15")
depends_on("kokkos-kernels@4.1.00", when="@14.4:15.0")
for a in CudaPackage.cuda_arch_values:
arch_str = "+cuda cuda_arch={0}".format(a)
kokkos_spec = "kokkos {0}".format(arch_str)
depends_on(kokkos_spec, when="@14.4.0: +kokkos {0}".format(arch_str))
arch_str = f"+cuda cuda_arch={a}"
depends_on(f"kokkos{arch_str}", when=arch_str)
for a in ROCmPackage.amdgpu_targets:
arch_str = "+rocm amdgpu_target={0}".format(a)
kokkos_spec = "kokkos {0}".format(arch_str)
depends_on(kokkos_spec, when="@14.4.0: +kokkos {0}".format(arch_str))
arch_str = f"+rocm amdgpu_target={a}"
depends_on(f"kokkos{arch_str}", when=arch_str)
depends_on("adios2", when="+adios2")
depends_on("binder@1.3:", when="@15: +python", type="build")
@ -899,8 +901,9 @@ def define_tpl(trilinos_name, spack_name, have_dep):
define_tpl(tpl_name, dep_name, dep_name in spec)
# External Kokkos
if spec.satisfies("@14.4.0 +kokkos"):
if spec.satisfies("@14.4.0: +kokkos"):
options.append(define_tpl_enable("Kokkos"))
options.append(define_tpl_enable("KokkosKernels", True))
# MPI settings
options.append(define_tpl_enable("MPI"))