spiner: add v1.6.3 (#48871)

* spiner: update package logic

* singularity-eos: remove spiner cuda_arch propagation

* spiner: add version 1.6.3
This commit is contained in:
Richard Berger 2025-02-06 03:47:44 -07:00 committed by GitHub
parent b0d5f272b0
commit 31312a379f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 17 deletions

View File

@ -111,7 +111,6 @@ class SingularityEos(CMakePackage, CudaPackage):
for _flag in ("~cuda", "+cuda", "~openmp", "+openmp"):
depends_on("kokkos ~shared" + _flag, when="+kokkos" + _flag)
depends_on("kokkos-kernels" + _flag, when="+kokkos-kernels" + _flag)
depends_on("spiner" + _flag, when="+kokkos" + _flag)
# specfic specs when using GPU/cuda offloading
depends_on("kokkos +wrapper+cuda_lambda", when="+cuda+kokkos")
@ -123,7 +122,6 @@ class SingularityEos(CMakePackage, CudaPackage):
for _flag in list(CudaPackage.cuda_arch_values):
depends_on("kokkos cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag)
depends_on("kokkos-kernels cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag)
depends_on("spiner cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag)
conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required")

View File

@ -5,7 +5,7 @@
from spack.package import *
class Spiner(CMakePackage, CudaPackage):
class Spiner(CMakePackage):
"""Spiner:
Performance portable routines for generic, tabulated, multi-dimensional data"""
@ -18,6 +18,7 @@ class Spiner(CMakePackage, CudaPackage):
license("BSD-3-Clause")
version("main", branch="main")
version("1.6.3", sha256="f78c50e0b4d7c4fd3f380432f12a528941e2bee5171d6f200e9a52bbcea940e9")
version("1.6.2", sha256="91fb403ce3b151fbdf8b6ff5aed0d8dde1177749f5633951027b100ebc7080d3")
version("1.6.1", sha256="52774322571d3b9b0dc3c6b255257de9af0e8e6170834360f2252c1ac272cbe7")
version("1.6.0", sha256="afa5526d87c78c1165ead06c09c5c2b9e4a913687443e5adff7b709ea4dd7edf")
@ -44,7 +45,6 @@ class Spiner(CMakePackage, CudaPackage):
# "when" clauses. Therefore, call the whens FIRST then the non-whens.
# https://spack.readthedocs.io/en/latest/packaging_guide.html#overriding-variants
variant("kokkos", default=False, description="Enable kokkos")
variant("openmp", default=False, description="Enable openmp kokkos backend")
variant("hdf5", default=False, description="Enable hdf5")
variant("mpi", default=False, description="Support parallel hdf5")
@ -61,11 +61,8 @@ class Spiner(CMakePackage, CudaPackage):
# Currently the raw cuda backend of ports-of-call is not supported.
depends_on("ports-of-call portability_strategy=Kokkos", when="@:1.5.1 +kokkos")
depends_on("ports-of-call portability_strategy=None", when="@:1.5.1 ~kokkos")
for _flag in list(CudaPackage.cuda_arch_values):
depends_on("kokkos@3.3.00: cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag)
for _flag in ("~cuda", "+cuda", "~openmp", "+openmp"):
depends_on("kokkos@3.3.00: " + _flag, when="+kokkos" + _flag)
depends_on("kokkos@3.3.00: ~shared+wrapper+cuda_lambda+cuda_constexpr", when="+cuda+kokkos")
depends_on("kokkos@3.3.00:", when="+kokkos")
requires("^kokkos+cuda_lambda+cuda_constexpr", when="+kokkos ^kokkos+cuda")
depends_on("hdf5+hl~mpi", when="+hdf5~mpi")
depends_on("hdf5+hl+mpi", when="+hdf5+mpi")
@ -75,26 +72,31 @@ class Spiner(CMakePackage, CudaPackage):
depends_on("py-matplotlib", when="+python")
conflicts("+mpi", when="~hdf5")
conflicts("+cuda", when="~kokkos")
conflicts("+openmp", when="~kokkos")
conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required")
def cmake_args(self):
if self.spec.satisfies("@1.6.0:"):
use_kokkos_option = "SPINER_TEST_USE_KOKKOS"
use_cuda_option = "SPINER_TEST_USE_CUDA"
else:
use_kokkos_option = "SPINER_USE_KOKKOS"
use_cuda_option = "SPINER_USE_CUDA"
args = [
self.define("BUILD_TESTING", self.run_tests),
self.define("SPINER_BUILD_TESTS", self.run_tests),
self.define(
"SPINER_TEST_USE_KOKKOS", self.run_tests and self.spec.satisfies("+kokkos")
),
self.define_from_variant(use_kokkos_option, "kokkos"),
self.define_from_variant(use_cuda_option, "cuda"),
self.define_from_variant("SPINER_USE_HDF", "hdf5"),
]
if "+cuda" in self.spec:
if self.spec.satisfies("^kokkos+cuda"):
args.append(
self.define("CMAKE_CUDA_ARCHITECTURES", self.spec.variants["cuda_arch"].value)
self.define(
"CMAKE_CUDA_ARCHITECTURES", self.spec["kokkos"].variants["cuda_arch"].value
)
)
if self.spec.satisfies("^kokkos+rocm"):
args.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
args.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc))
if self.spec.satisfies("^kokkos+cuda"):
args.append(self.define("CMAKE_CXX_COMPILER", self.spec["kokkos"].kokkos_cxx))
return args