From 006969a8cd0e5a1d80eb1ace005a49611d5d5d6e Mon Sep 17 00:00:00 2001 From: Pranav Sivaraman Date: Tue, 10 Jan 2023 07:59:30 -0500 Subject: xsbench: update version and add cuda support (#34597) * Update xsbench to version 20 XSBench version 20 has implementations for new architectures and accelerators. * Added CUDA support for XSBench * Fixed style issues --- var/spack/repos/builtin/packages/xsbench/package.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/xsbench/package.py b/var/spack/repos/builtin/packages/xsbench/package.py index 5edd363a23..fea28cf7bd 100644 --- a/var/spack/repos/builtin/packages/xsbench/package.py +++ b/var/spack/repos/builtin/packages/xsbench/package.py @@ -7,7 +7,7 @@ from spack.package import * -class Xsbench(MakefilePackage): +class Xsbench(MakefilePackage, CudaPackage): """XSBench is a mini-app representing a key computational kernel of the Monte Carlo neutronics application OpenMC. A full explanation of the theory and purpose of XSBench @@ -18,6 +18,7 @@ class Xsbench(MakefilePackage): tags = ["proxy-app", "ecp-proxy-app"] + version("20", sha256="3430328267432b4c29605f248809caec3e8b0e3442d4dcd672fa09b8bb9aa1b6") version("19", sha256="57cc44ae3b0a50d33fab6dd48da13368720d2aa1b91cde47d51da78bf656b97e") version("18", sha256="a9a544eeacd1be8d687080d2df4eeb701c04eda31d3806e7c3ea1ff36c26f4b0") version("14", sha256="595afbcba8c1079067d5d17eedcb4ab0c1d115f83fd6f8c3de01d74b23015e2d") @@ -25,22 +26,33 @@ class Xsbench(MakefilePackage): variant("mpi", default=True, description="Build with MPI support") variant("openmp", default=True, description="Build with OpenMP support") + variant("cuda", default=False, when="@19:", description="Build with CUDA support") depends_on("mpi", when="+mpi") + conflicts("cuda_arch=none", when="+cuda", msg="Must select a CUDA architecture") + conflicts("+cuda", when="+openmp", msg="OpenMP must be disabled to support CUDA") + @property def build_directory(self): if self.spec.satisfies("@:18"): return "src" - else: + + if "+openmp" in self.spec: return "openmp-threading" + if "+cuda" in self.spec: + return "cuda" + @property def build_targets(self): targets = [] cflags = "" + if "+cuda" in self.spec: + return ["SM_VERSION={0}".format(self.spec.variants["cuda_arch"].value[0])] + if not self.spec.satisfies("%nvhpc@:20.11"): cflags = "-std=gnu99" -- cgit v1.2.3-60-g2f50