ucc: add new package (#38357)

This commit is contained in:
Carlos Bederián 2023-12-28 05:33:54 -03:00 committed by GitHub
parent 6855512301
commit c4394822d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View 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