lbann: add aluminum dependency (#9523)
* Added support for the Aluminum library to LBANN and Hydrogen. Also fixed several bugs in the grouping of dependencies of both packages. * Updated the conduit package to have the proper dependency on the python variant. * Added new versions for NCCL * Fixed a bug in how Hydrogen set the path for OpenBLAS. * Added support for conduit in LBANN.
This commit is contained in:
committed by
Peter Scheibel
parent
d1db12e153
commit
659d845185
@@ -17,6 +17,7 @@ class Hydrogen(CMakePackage):
|
||||
git = "https://github.com/LLNL/Elemental.git"
|
||||
|
||||
version('develop', branch='hydrogen')
|
||||
version('1.0', sha256='d8a97de3133f2c6b6bb4b80d32b4a4cc25eb25e0df4f0cec0f8cb19bf34ece98')
|
||||
version('0.99', 'b678433ab1d498da47acf3dc5e056c23')
|
||||
|
||||
variant('shared', default=True,
|
||||
@@ -45,6 +46,10 @@ class Hydrogen(CMakePackage):
|
||||
description='Builds with support for GPUs via CUDA and cuDNN')
|
||||
variant('test', default=False,
|
||||
description='Builds test suite')
|
||||
variant('al', default=False,
|
||||
description='Builds with Aluminum communication library')
|
||||
variant('omp_taskloops', default=False,
|
||||
description='Use OpenMP taskloops instead of parallel for loops.')
|
||||
|
||||
# Note that #1712 forces us to enumerate the different blas variants
|
||||
depends_on('openblas', when='blas=openblas ~openmp_blas ~int64_blas')
|
||||
@@ -66,6 +71,10 @@ class Hydrogen(CMakePackage):
|
||||
depends_on('essl threads=openmp +ilp64', when='blas=essl +openmp_blas +int64_blas')
|
||||
depends_on('netlib-lapack +external-blas', when='blas=essl')
|
||||
|
||||
depends_on('aluminum@master', when='+al ~cuda')
|
||||
depends_on('aluminum@master +gpu +mpi-cuda', when='+al +cuda ~nccl')
|
||||
depends_on('aluminum@master +gpu +nccl +mpi_cuda', when='+al +cuda +nccl')
|
||||
|
||||
# Note that this forces us to use OpenBLAS until #1712 is fixed
|
||||
depends_on('lapack', when='blas=openblas ~openmp_blas')
|
||||
|
||||
@@ -123,7 +132,7 @@ def cmake_args(self):
|
||||
args.extend([
|
||||
'-DHydrogen_USE_OpenBLAS:BOOL=%s' % ('blas=openblas' in spec),
|
||||
'-DOpenBLAS_DIR:STRING={0}'.format(
|
||||
spec['hydrogen'].prefix)])
|
||||
spec['openblas'].prefix)])
|
||||
elif 'blas=mkl' in spec:
|
||||
args.extend([
|
||||
'-DHydrogen_USE_MKL:BOOL=%s' % ('blas=mkl' in spec)])
|
||||
@@ -133,4 +142,15 @@ def cmake_args(self):
|
||||
args.extend([
|
||||
'-DHydrogen_USE_ESSL:BOOL=%s' % ('blas=essl' in spec)])
|
||||
|
||||
if '+omp_taskloops' in spec:
|
||||
args.extend([
|
||||
'-DHydrogen_ENABLE_OMP_TASKLOOP:BOOL=%s' %
|
||||
('+omp_taskloops' in spec)])
|
||||
|
||||
if '+al' in spec:
|
||||
args.extend([
|
||||
'-DHydrogen_ENABLE_ALUMINUM:BOOL=%s' % ('+al' in spec),
|
||||
'-DHYDROGEN_Aluminum_DIR={0}'.format(
|
||||
spec['aluminum'].prefix)])
|
||||
|
||||
return args
|
||||
|
||||
Reference in New Issue
Block a user