diff options
author | Pranav Sivaraman <pranavsivaraman@gmail.com> | 2023-01-10 07:59:30 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-10 13:59:30 +0100 |
commit | 006969a8cd0e5a1d80eb1ace005a49611d5d5d6e (patch) | |
tree | c281ba6b5507a1076a9ed98bf5bbf296b7c70c41 /var | |
parent | d2618cd64052a7076c7ef7499f80de7d5b0d2be4 (diff) | |
download | spack-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.py | 16 |
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" |