Lbann update (#6987)
* Added new link line flag * Refactored some of the common components out of the different version's build commands. Also corrected the when commands to properly capture non-numeric names such as local. * Added support to the Elemental package for the Hydrogen branch.
This commit is contained in:
parent
8bdf7e6baa
commit
a62e1a0451
@ -34,6 +34,8 @@ class Elemental(CMakePackage):
|
|||||||
homepage = "http://libelemental.org"
|
homepage = "http://libelemental.org"
|
||||||
url = "https://github.com/elemental/Elemental/archive/v0.87.6.tar.gz"
|
url = "https://github.com/elemental/Elemental/archive/v0.87.6.tar.gz"
|
||||||
|
|
||||||
|
version('hydrogen-develop', git='https://github.com/LLNL/Elemental.git', branch='hydrogen')
|
||||||
|
|
||||||
version('develop', git='https://github.com/elemental/Elemental.git', branch='master')
|
version('develop', git='https://github.com/elemental/Elemental.git', branch='master')
|
||||||
version('0.87.7', '6c1e7442021c59a36049e37ea69b8075')
|
version('0.87.7', '6c1e7442021c59a36049e37ea69b8075')
|
||||||
version('0.87.6', '9fd29783d45b0a0e27c0df85f548abe9')
|
version('0.87.6', '9fd29783d45b0a0e27c0df85f548abe9')
|
||||||
@ -105,6 +107,7 @@ def libs(self):
|
|||||||
'libEl', root=self.prefix, shared=shared, recurse=True
|
'libEl', root=self.prefix, shared=shared, recurse=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@when('@0.87.6:')
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
|
|
||||||
@ -170,3 +173,37 @@ def cmake_args(self):
|
|||||||
'-DPYTHON_SITE_PACKAGES:STRING={0}'.format(site_packages_dir)])
|
'-DPYTHON_SITE_PACKAGES:STRING={0}'.format(site_packages_dir)])
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
@when('@:0.87.6')
|
||||||
|
def cmake_args(self):
|
||||||
|
spec = self.spec
|
||||||
|
|
||||||
|
if '@:0.87.7' in spec and '%intel@:17.0.2' in spec:
|
||||||
|
raise UnsupportedCompilerError(
|
||||||
|
"Elemental {0} has a known bug with compiler: {1} {2}".format(
|
||||||
|
spec.version, spec.compiler.name, spec.compiler.version))
|
||||||
|
|
||||||
|
args = [
|
||||||
|
'-DCMAKE_INSTALL_MESSAGE:STRING=LAZY',
|
||||||
|
'-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
|
||||||
|
'-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
|
||||||
|
'-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
|
||||||
|
'-DBUILD_SHARED_LIBS:BOOL=%s' % ('+shared' in spec),
|
||||||
|
'-DHydrogen_ENABLE_OPENMP:BOOL=%s' % ('+hybrid' in spec),
|
||||||
|
'-DHydrogen_ENABLE_QUADMATH:BOOL=%s' % ('+quad' in spec),
|
||||||
|
'-DHydrogen_USE_64BIT_INTS:BOOL=%s' % ('+int64' in spec),
|
||||||
|
'-DHydrogen_USE_64BIT_BLAS_INTS:BOOL=%s' % ('+int64_blas' in spec),
|
||||||
|
'-DHydrogen_ENABLE_MPC:BOOL=%s' % ('+mpfr' in spec),
|
||||||
|
'-DHydrogen_GENERAL_LAPACK_FALLBACK=ON',
|
||||||
|
]
|
||||||
|
|
||||||
|
if 'blas=openblas' in spec:
|
||||||
|
args.extend([
|
||||||
|
'-DHydrogen_USE_OpenBLAS:BOOL=%s' % ('blas=openblas' in spec),
|
||||||
|
'-DOpenBLAS_DIR:STRING={0}'.format(
|
||||||
|
spec['elemental'].prefix)])
|
||||||
|
elif 'blas=mkl' in spec:
|
||||||
|
args.extend([
|
||||||
|
'-DHydrogen_USE_MKL:BOOL=%s' % ('blas=mkl' in spec)])
|
||||||
|
|
||||||
|
return args
|
||||||
|
@ -62,16 +62,27 @@ class Lbann(CMakePackage):
|
|||||||
depends_on('cnpy')
|
depends_on('cnpy')
|
||||||
depends_on('nccl', when='+gpu +nccl')
|
depends_on('nccl', when='+gpu +nccl')
|
||||||
|
|
||||||
@when('@0.94:')
|
@property
|
||||||
def cmake_args(self):
|
def common_config_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
# Environment variables
|
# Environment variables
|
||||||
CPPFLAGS = []
|
CPPFLAGS = []
|
||||||
CPPFLAGS.append('-DLBANN_SET_EL_RNG')
|
CPPFLAGS.append('-DLBANN_SET_EL_RNG -ldl')
|
||||||
|
|
||||||
args = [
|
return [
|
||||||
'-DCMAKE_INSTALL_MESSAGE=LAZY',
|
'-DCMAKE_INSTALL_MESSAGE=LAZY',
|
||||||
'-DCMAKE_CXX_FLAGS=%s' % ' '.join(CPPFLAGS),
|
'-DCMAKE_CXX_FLAGS=%s' % ' '.join(CPPFLAGS),
|
||||||
|
'-DLBANN_VERSION=spack',
|
||||||
|
'-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
|
||||||
|
]
|
||||||
|
|
||||||
|
# Get any recent versions or non-numeric version
|
||||||
|
# Note that develop > numeric and non-develop < numeric
|
||||||
|
@when('@:0.91' or '@0.94:')
|
||||||
|
def cmake_args(self):
|
||||||
|
spec = self.spec
|
||||||
|
args = self.common_config_args
|
||||||
|
args.extend([
|
||||||
'-DLBANN_WITH_TOPO_AWARE:BOOL=%s' % ('+gpu +nccl' in spec),
|
'-DLBANN_WITH_TOPO_AWARE:BOOL=%s' % ('+gpu +nccl' in spec),
|
||||||
'-DLBANN_SEQUENTIAL_INITIALIZATION:BOOL=%s' %
|
'-DLBANN_SEQUENTIAL_INITIALIZATION:BOOL=%s' %
|
||||||
('+seq_init' in spec),
|
('+seq_init' in spec),
|
||||||
@ -79,10 +90,8 @@ def cmake_args(self):
|
|||||||
'-DLBANN_WITH_VTUNE=OFF',
|
'-DLBANN_WITH_VTUNE=OFF',
|
||||||
'-DElemental_DIR={0}/CMake/elemental'.format(
|
'-DElemental_DIR={0}/CMake/elemental'.format(
|
||||||
spec['elemental'].prefix),
|
spec['elemental'].prefix),
|
||||||
'-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
|
|
||||||
'-DLBANN_DATATYPE={0}'.format(spec.variants['dtype'].value),
|
'-DLBANN_DATATYPE={0}'.format(spec.variants['dtype'].value),
|
||||||
'-DLBANN_VERBOSE=0',
|
'-DLBANN_VERBOSE=0'])
|
||||||
'-DLBANN_VERSION=spack']
|
|
||||||
|
|
||||||
if '+opencv' in spec:
|
if '+opencv' in spec:
|
||||||
args.extend(['-DOpenCV_DIR:STRING={0}'.format(
|
args.extend(['-DOpenCV_DIR:STRING={0}'.format(
|
||||||
@ -108,16 +117,11 @@ def cmake_args(self):
|
|||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
@when('@:0.93')
|
@when('@0.91:0.93')
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
# Environment variables
|
args = self.common_config_args
|
||||||
CPPFLAGS = []
|
args.extend([
|
||||||
CPPFLAGS.append('-DLBANN_SET_EL_RNG')
|
|
||||||
|
|
||||||
args = [
|
|
||||||
'-DCMAKE_INSTALL_MESSAGE=LAZY',
|
|
||||||
'-DCMAKE_CXX_FLAGS=%s' % ' '.join(CPPFLAGS),
|
|
||||||
'-DWITH_CUDA:BOOL=%s' % ('+gpu' in spec),
|
'-DWITH_CUDA:BOOL=%s' % ('+gpu' in spec),
|
||||||
'-DWITH_CUDNN:BOOL=%s' % ('+gpu' in spec),
|
'-DWITH_CUDNN:BOOL=%s' % ('+gpu' in spec),
|
||||||
'-DELEMENTAL_USE_CUBLAS:BOOL=%s' % (
|
'-DELEMENTAL_USE_CUBLAS:BOOL=%s' % (
|
||||||
@ -125,13 +129,11 @@ def cmake_args(self):
|
|||||||
'-DWITH_TBINF=OFF',
|
'-DWITH_TBINF=OFF',
|
||||||
'-DWITH_VTUNE=OFF',
|
'-DWITH_VTUNE=OFF',
|
||||||
'-DElemental_DIR={0}'.format(spec['elemental'].prefix),
|
'-DElemental_DIR={0}'.format(spec['elemental'].prefix),
|
||||||
'-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
|
|
||||||
'-DELEMENTAL_MATH_LIBS={0}'.format(
|
'-DELEMENTAL_MATH_LIBS={0}'.format(
|
||||||
spec['elemental'].libs),
|
spec['elemental'].libs),
|
||||||
'-DSEQ_INIT:BOOL=%s' % ('+seq_init' in spec),
|
'-DSEQ_INIT:BOOL=%s' % ('+seq_init' in spec),
|
||||||
'-DVERBOSE=0',
|
'-DVERBOSE=0',
|
||||||
'-DLBANN_HOME=.',
|
'-DLBANN_HOME=.'])
|
||||||
'-DLBANN_VER=spack']
|
|
||||||
|
|
||||||
if spec.variants['dtype'].value == 'float':
|
if spec.variants['dtype'].value == 'float':
|
||||||
args.extend(['-DDATATYPE=4'])
|
args.extend(['-DDATATYPE=4'])
|
||||||
|
Loading…
Reference in New Issue
Block a user