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
This commit is contained in:
parent
d2618cd640
commit
006969a8cd
1 changed files with 14 additions and 2 deletions
|
@ -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"
|
||||
|
||||
|
|
Loading…
Reference in a new issue