Updating LBANN and related packages (#10305)

Updated LBANN, Hydrogen, and Aluminum to not require CUDA-aware MPI
even when using CUDA.  Fixed small bugs within both LBANN and Hydrogen
packages.  Added requirements for breathe and cereal to LBANN.
This commit is contained in:
Brian Van Essen 2019-01-10 17:10:11 -08:00 committed by Peter Scheibel
parent 08c4b9d47a
commit 9102cd5790
3 changed files with 13 additions and 11 deletions

View File

@ -29,8 +29,7 @@ class Aluminum(CMakePackage):
depends_on('cuda', when='+gpu')
depends_on('cudnn', when='+gpu')
depends_on('cub', when='+gpu')
depends_on('mpi', when='~mpi_cuda')
depends_on('mpi +cuda', when='+mpi_cuda')
depends_on('mpi')
depends_on('nccl', when='+nccl')
depends_on('hwloc')

View File

@ -73,14 +73,12 @@ class Hydrogen(CMakePackage):
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')
depends_on('aluminum@master +gpu +mpi_cuda', when='+al +cuda')
# Note that this forces us to use OpenBLAS until #1712 is fixed
depends_on('lapack', when='blas=openblas ~openmp_blas')
depends_on('mpi', when='~cuda')
depends_on('mpi +cuda', when='+cuda')
depends_on('mpi')
depends_on('scalapack', when='+scalapack')
depends_on('gmp', when='+mpfr')
@ -154,7 +152,7 @@ def cmake_args(self):
if '+al' in spec:
args.extend([
'-DHydrogen_ENABLE_ALUMINUM:BOOL=%s' % ('+al' in spec),
'-DHYDROGEN_Aluminum_DIR={0}'.format(
'-DALUMINUM_DIR={0}'.format(
spec['aluminum'].prefix)])
return args

View File

@ -35,9 +35,10 @@ class Lbann(CMakePackage):
variant('build_type', default='Release',
description='The build type to build',
values=('Debug', 'Release'))
variant('al', default=False, description='Builds with support for Aluminum Library')
variant('al', default=True, description='Builds with support for Aluminum Library')
variant('conduit', default=False, description='Builds with support for Conduit Library')
variant('vtune', default=False, description='Builds with support for Intel VTune')
variant('docs', default=False, description='Builds with support for building documentation')
# It seems that there is a need for one statement per version bounds
depends_on('hydrogen +openmp_blas +shared +int64', when='@:0.90,0.95: ~al')
@ -64,14 +65,13 @@ class Lbann(CMakePackage):
when='build_type=Debug @0.91:0.94')
depends_on('aluminum@master', when='@:0.90,0.95: +al ~gpu')
depends_on('aluminum@master +gpu +mpi-cuda', when='@:0.90,0.95: +al +gpu ~nccl')
depends_on('aluminum@master +gpu +mpi_cuda', when='@:0.90,0.95: +al +gpu ~nccl')
depends_on('aluminum@master +gpu +nccl +mpi_cuda', when='@:0.90,0.95: +al +gpu +nccl')
depends_on('cuda', when='+gpu')
depends_on('cudnn', when='+gpu')
depends_on('cub', when='+gpu')
depends_on('mpi', when='~gpu')
depends_on('mpi +cuda', when='+gpu')
depends_on('mpi')
depends_on('hwloc')
# LBANN wraps OpenCV calls in OpenMP parallel loops, build without OpenMP
@ -90,6 +90,11 @@ class Lbann(CMakePackage):
depends_on('conduit@master +hdf5', when='+conduit')
depends_on('py-breathe', type='build', when='+docs')
depends_on('py-m2r', type='build', when='+docs')
depends_on('cereal')
generator = 'Ninja'
depends_on('ninja', type='build')