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