ucc: add new package (#38357)
This commit is contained in:
parent
6855512301
commit
c4394822d5
55
var/spack/repos/builtin/packages/ucc/package.py
Normal file
55
var/spack/repos/builtin/packages/ucc/package.py
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
|
class Ucc(AutotoolsPackage, CudaPackage):
|
||||||
|
"""UCC is a collective communication operations API and library that is
|
||||||
|
flexible, complete, and feature-rich for current and emerging programming
|
||||||
|
models and runtimes."""
|
||||||
|
|
||||||
|
homepage = "https://openucx.github.io/ucc/"
|
||||||
|
url = "https://github.com/openucx/ucc/archive/refs/tags/v1.2.0.tar.gz"
|
||||||
|
|
||||||
|
maintainers("zzzoom")
|
||||||
|
|
||||||
|
version("1.2.0", sha256="c1552797600835c0cf401b82dc89c4d27d5717f4fb805d41daca8e19f65e509d")
|
||||||
|
|
||||||
|
variant("cuda", default=False, description="Enable CUDA TL")
|
||||||
|
variant("nccl", default=False, description="Enable NCCL TL", when="+cuda")
|
||||||
|
# RCCL build not tested
|
||||||
|
# variant("rccl", default=False, description="Enable RCCL TL")
|
||||||
|
|
||||||
|
# https://github.com/openucx/ucc/pull/847
|
||||||
|
patch(
|
||||||
|
"https://github.com/openucx/ucc/commit/9d716eb9c964ec7a7a23e9ec663f28265ff8a357.patch?full_index=1",
|
||||||
|
sha256="f99d1ba6b94360375d2ea59b04de9cbf6bb3290458bc86ce13891ba90522f7e2",
|
||||||
|
when="@1.2.0 +cuda",
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("autoconf", type="build")
|
||||||
|
depends_on("automake", type="build")
|
||||||
|
depends_on("libtool", type="build")
|
||||||
|
|
||||||
|
depends_on("ucx")
|
||||||
|
|
||||||
|
depends_on("nccl", when="+nccl")
|
||||||
|
# depends_on("rccl", when="+rccl")
|
||||||
|
|
||||||
|
with when("+nccl"):
|
||||||
|
for arch in CudaPackage.cuda_arch_values:
|
||||||
|
depends_on(
|
||||||
|
"nccl +cuda cuda_arch={0}".format(arch), when="+cuda cuda_arch={0}".format(arch)
|
||||||
|
)
|
||||||
|
|
||||||
|
def autoreconf(self, spec, prefix):
|
||||||
|
Executable("./autogen.sh")()
|
||||||
|
|
||||||
|
def configure_args(self):
|
||||||
|
args = []
|
||||||
|
args.extend(self.with_or_without("cuda", activation_value="prefix"))
|
||||||
|
args.extend(self.with_or_without("nccl", activation_value="prefix"))
|
||||||
|
# args.extend(self.with_or_without("rccl", activation_value="prefix"))
|
||||||
|
return args
|
Loading…
Reference in New Issue
Block a user