summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Reeve <6740307+streeve@users.noreply.github.com>2023-09-07 15:36:09 -0400
committerGitHub <noreply@github.com>2023-09-07 13:36:09 -0600
commit5c409f794ad314d050a4377623e1c78795ae6fce (patch)
tree2a0f924cc414142e3df6c6db3cefed3c211237f5
parent06b30842e4a83eaf328dc0508272badd8142299a (diff)
downloadspack-5c409f794ad314d050a4377623e1c78795ae6fce.tar.gz
spack-5c409f794ad314d050a4377623e1c78795ae6fce.tar.bz2
spack-5c409f794ad314d050a4377623e1c78795ae6fce.tar.xz
spack-5c409f794ad314d050a4377623e1c78795ae6fce.zip
Make Cabana a Cuda/ROCm package (matching ArborX) (#39809)
-rw-r--r--var/spack/repos/builtin/packages/cabana/package.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/cabana/package.py b/var/spack/repos/builtin/packages/cabana/package.py
index eb43abc034..afc94278dd 100644
--- a/var/spack/repos/builtin/packages/cabana/package.py
+++ b/var/spack/repos/builtin/packages/cabana/package.py
@@ -7,7 +7,7 @@ from spack.package import *
from spack.pkg.builtin.kokkos import Kokkos
-class Cabana(CMakePackage):
+class Cabana(CMakePackage, CudaPackage, ROCmPackage):
"""The Exascale Co-Design Center for Particle Applications Toolkit"""
homepage = "https://github.com/ECP-copa/Cabana"
@@ -53,9 +53,24 @@ class Cabana(CMakePackage):
_kk_spec = "kokkos-legacy+pthreads"
elif _kk_version == "-legacy" and _backend not in ["serial", "openmp", "cuda"]:
continue
+ # Handled separately by Cuda/ROCmPackage below
+ elif _backend == "cuda" or _backend == "hip":
+ continue
else:
_kk_spec = "kokkos{0}+{1}".format(_kk_version, _backend)
depends_on(_kk_spec, when="@{0}+{1}".format(_version, _backend))
+
+ for arch in CudaPackage.cuda_arch_values:
+ cuda_dep = "+cuda cuda_arch={0}".format(arch)
+ depends_on("kokkos {0}".format(cuda_dep), when=cuda_dep)
+
+ for arch in ROCmPackage.amdgpu_targets:
+ rocm_dep = "+rocm amdgpu_target={0}".format(arch)
+ depends_on("kokkos {0}".format(rocm_dep), when=rocm_dep)
+
+ conflicts("+cuda", when="cuda_arch=none")
+ depends_on("kokkos+cuda_lambda", when="+cuda")
+
depends_on("arborx", when="@0.3.0:+arborx")
depends_on("hypre-cmake@2.22.0:", when="@0.4.0:+hypre")
depends_on("hypre-cmake@2.22.1:", when="@0.5.0:+hypre")