summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorBrian Van Essen <vanessen1@llnl.gov>2022-10-05 05:08:32 -0700
committerGitHub <noreply@github.com>2022-10-05 14:08:32 +0200
commitf463666f0e41c46d4cec738aec5fafafb8b74625 (patch)
treedab7df69c3cc3c5f5e9fb4f5eba79f6f6c17ee32 /var
parent6c12630e956129343b075ca538d4059c03634ef2 (diff)
downloadspack-f463666f0e41c46d4cec738aec5fafafb8b74625.tar.gz
spack-f463666f0e41c46d4cec738aec5fafafb8b74625.tar.bz2
spack-f463666f0e41c46d4cec738aec5fafafb8b74625.tar.xz
spack-f463666f0e41c46d4cec738aec5fafafb8b74625.zip
Add aws-ofi-nccl library (#32906)
* Added a package for the aws-ofi-nccl plug-in from to enable NCCL to use libfabric communication library as a network provider. Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/aws-ofi-nccl/package.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/aws-ofi-nccl/package.py b/var/spack/repos/builtin/packages/aws-ofi-nccl/package.py
new file mode 100644
index 0000000000..a6ac281b8b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/aws-ofi-nccl/package.py
@@ -0,0 +1,61 @@
+# Copyright 2013-2022 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 AwsOfiNccl(AutotoolsPackage):
+ """AWS OFI NCCL is a plug-in which enables EC2 developers to use
+ libfabric as a network provider while running NVIDIA's NCCL based
+ applications."""
+
+ homepage = "https://github.com/aws/aws-ofi-nccl"
+ git = "https://github.com/aws/aws-ofi-nccl.git"
+ url = "https://github.com/aws/aws-ofi-nccl.git"
+
+ maintainers = ["bvanessen"]
+
+ version("master", branch="master", default=True)
+
+ variant("trace", default=False, description="Enable printing trace messages")
+ variant("tests", default=False, description="Build tests")
+
+ depends_on("libfabric")
+ depends_on("cuda")
+ depends_on("nccl")
+ depends_on("mpi")
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("libtool", type="build")
+
+ # To enable this plug-in to work with NCCL add it to the LD_LIBRARY_PATH
+ def setup_run_environment(self, env):
+ aws_ofi_nccl_home = self.spec.prefix
+ env.append_path("LD_LIBRARY_PATH", aws_ofi_nccl_home.lib)
+
+ # To enable this plug-in to work with NCCL add it to the LD_LIBRARY_PATH
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ aws_ofi_nccl_home = self.spec["aws-ofi-nccl"].prefix
+ env.append_path("LD_LIBRARY_PATH", aws_ofi_nccl_home.lib)
+
+ def configure_args(self):
+ spec = self.spec
+ args = []
+
+ # Always set configure's external paths to use the Spack
+ # provided dependencies
+ args.extend(
+ [
+ "--with-libfabric={0}".format(spec["libfabric"].prefix),
+ "--with-cuda={0}".format(spec["cuda"].prefix),
+ "--with-nccl={0}".format(spec["nccl"].prefix),
+ "--with-mpi={0}".format(spec["mpi"].prefix),
+ ]
+ )
+
+ args.extend(self.enable_or_disable("trace"))
+ args.extend(self.enable_or_disable("tests"))
+
+ return args