spatter: new package (#50326)
* add spatter package * update license, change default backend * move package to new location * rearrage spack directives --------- Co-authored-by: Patrick Lavin <prlavin@sandia.gov> Co-authored-by: plavin <plavin@users.noreply.github.com>
This commit is contained in:
parent
fb8d6e8ea0
commit
1f0aaafc71
@ -0,0 +1,54 @@
|
|||||||
|
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
|
class Spatter(CMakePackage, CudaPackage):
|
||||||
|
"""A microbenchmark for timing Gather/Scatter kernels on CPUs and GPUs."""
|
||||||
|
|
||||||
|
homepage = "https://github.com/hpcgarage/spatter"
|
||||||
|
git = "https://github.com/hpcgarage/spatter.git"
|
||||||
|
|
||||||
|
maintainers("plavin", "jyoung3131")
|
||||||
|
|
||||||
|
license("MIT", checked_by="plavin")
|
||||||
|
|
||||||
|
version("develop", branch="spatter-devel")
|
||||||
|
version("main", branch="main", preferred=True)
|
||||||
|
version("2.1", tag="v2.1", commit="ec8923711f8dc21eedff7189f12b02eb06845d2f")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"backend",
|
||||||
|
default="openmp",
|
||||||
|
values=["serial", "openmp", "cuda"],
|
||||||
|
description="Configuration string",
|
||||||
|
)
|
||||||
|
variant("mpi", default=False, description="Enable MPI support")
|
||||||
|
variant("cuda_arch", default="none", multi=True, description="CUDA architecture")
|
||||||
|
|
||||||
|
depends_on("cmake@3.25:", type="build")
|
||||||
|
depends_on("mpi", when="+mpi")
|
||||||
|
depends_on("cuda", when="backend=cuda")
|
||||||
|
|
||||||
|
conflicts(
|
||||||
|
"backend=cuda",
|
||||||
|
when="cuda_arch=none",
|
||||||
|
msg="CUDA architecture must be specified when CUDA support is enabled.",
|
||||||
|
)
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
args = []
|
||||||
|
|
||||||
|
if self.spec.satisfies("backend=openmp"):
|
||||||
|
args.append(self.define("USE_OPENMP", "On"))
|
||||||
|
elif self.spec.satisfies("backend=cuda"):
|
||||||
|
args.append(self.define("USE_CUDA", "On"))
|
||||||
|
args.append(
|
||||||
|
self.define("CMAKE_CUDA_ARCHITECTURES", self.spec.variants["cuda_arch"].value)
|
||||||
|
)
|
||||||
|
|
||||||
|
args.append(self.define_from_variant("USE_MPI", "mpi"))
|
||||||
|
|
||||||
|
return args
|
Loading…
Reference in New Issue
Block a user