summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorPranav Sivaraman <pranavsivaraman@gmail.com>2023-01-10 07:59:30 -0500
committerGitHub <noreply@github.com>2023-01-10 13:59:30 +0100
commit006969a8cd0e5a1d80eb1ace005a49611d5d5d6e (patch)
treec281ba6b5507a1076a9ed98bf5bbf296b7c70c41 /var
parentd2618cd64052a7076c7ef7499f80de7d5b0d2be4 (diff)
downloadspack-006969a8cd0e5a1d80eb1ace005a49611d5d5d6e.tar.gz
spack-006969a8cd0e5a1d80eb1ace005a49611d5d5d6e.tar.bz2
spack-006969a8cd0e5a1d80eb1ace005a49611d5d5d6e.tar.xz
spack-006969a8cd0e5a1d80eb1ace005a49611d5d5d6e.zip
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
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/xsbench/package.py16
1 files changed, 14 insertions, 2 deletions
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"