Update ucx to 1.12.0; add variants (#29944)
This commit is contained in:
parent
2474609395
commit
b92a6d106b
@ -2,6 +2,7 @@
|
|||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
import shutil
|
||||||
|
|
||||||
from spack import *
|
from spack import *
|
||||||
|
|
||||||
@ -43,6 +44,8 @@ class Ucx(AutotoolsPackage, CudaPackage):
|
|||||||
version('1.2.1', sha256='fc63760601c03ff60a2531ec3c6637e98f5b743576eb410f245839c84a0ad617')
|
version('1.2.1', sha256='fc63760601c03ff60a2531ec3c6637e98f5b743576eb410f245839c84a0ad617')
|
||||||
version('1.2.0', sha256='1e1a62d6d0f89ce59e384b0b5b30b416b8fd8d7cedec4182a5319d0dfddf649c')
|
version('1.2.0', sha256='1e1a62d6d0f89ce59e384b0b5b30b416b8fd8d7cedec4182a5319d0dfddf649c')
|
||||||
|
|
||||||
|
simd_values = ('avx', 'sse41', 'sse42')
|
||||||
|
|
||||||
variant('thread_multiple', default=False,
|
variant('thread_multiple', default=False,
|
||||||
description='Enable thread support in UCP and UCT')
|
description='Enable thread support in UCP and UCT')
|
||||||
variant('optimizations', default=True,
|
variant('optimizations', default=True,
|
||||||
@ -51,6 +54,8 @@ class Ucx(AutotoolsPackage, CudaPackage):
|
|||||||
description='Enable logging')
|
description='Enable logging')
|
||||||
variant('debug', default=False,
|
variant('debug', default=False,
|
||||||
description='Enable debugging')
|
description='Enable debugging')
|
||||||
|
variant('opt', default='0', values=('0', '1', '2', '3'), multi=False,
|
||||||
|
description='Set optimization level')
|
||||||
variant('assertions', default=False,
|
variant('assertions', default=False,
|
||||||
description='Enable assertions')
|
description='Enable assertions')
|
||||||
variant('parameter_checking', default=False,
|
variant('parameter_checking', default=False,
|
||||||
@ -85,9 +90,30 @@ class Ucx(AutotoolsPackage, CudaPackage):
|
|||||||
description="Compile with IB Connection Manager support")
|
description="Compile with IB Connection Manager support")
|
||||||
variant('backtrace-detail', default=False,
|
variant('backtrace-detail', default=False,
|
||||||
description="Enable using BFD support for detailed backtrace")
|
description="Enable using BFD support for detailed backtrace")
|
||||||
|
variant('openmp', default=True,
|
||||||
|
description="Use OpenMP")
|
||||||
|
variant('shared', default=True,
|
||||||
|
description="Build shared libraries")
|
||||||
|
variant('static', default=False,
|
||||||
|
description="Build static libraries")
|
||||||
|
variant('ucg', default=False,
|
||||||
|
description="Enable the group collective operations " +
|
||||||
|
"(experimental component)")
|
||||||
|
variant('doc', default=True,
|
||||||
|
description="Generate doxygen documentation")
|
||||||
|
variant('simd', values=disjoint_sets(
|
||||||
|
('auto',),
|
||||||
|
simd_values).with_default('auto').with_non_feature_values('auto'))
|
||||||
|
variant('verbs', default=False,
|
||||||
|
description='Build OpenFabrics support')
|
||||||
|
variant('rdmacm', default=False,
|
||||||
|
description='Enable the use of RDMACM')
|
||||||
|
variant('examples', default=True,
|
||||||
|
description='Keep examples')
|
||||||
|
|
||||||
depends_on('numactl')
|
depends_on('numactl')
|
||||||
depends_on('rdma-core')
|
depends_on('rdma-core', when='+verbs')
|
||||||
|
depends_on('rdma-core', when='+rdmacm')
|
||||||
depends_on('pkgconfig', type='build')
|
depends_on('pkgconfig', type='build')
|
||||||
depends_on('java@8', when='+java')
|
depends_on('java@8', when='+java')
|
||||||
depends_on('maven', when='+java')
|
depends_on('maven', when='+java')
|
||||||
@ -102,6 +128,8 @@ class Ucx(AutotoolsPackage, CudaPackage):
|
|||||||
depends_on('binutils+ld', when='%aocc', type='build')
|
depends_on('binutils+ld', when='%aocc', type='build')
|
||||||
depends_on('binutils+ld', when='+backtrace-detail')
|
depends_on('binutils+ld', when='+backtrace-detail')
|
||||||
|
|
||||||
|
conflicts('~shared', when='~static', msg='Please select at least one of +static or +shared')
|
||||||
|
|
||||||
configure_abs_path = 'contrib/configure-release'
|
configure_abs_path = 'contrib/configure-release'
|
||||||
|
|
||||||
@when('@1.9-dev')
|
@when('@1.9-dev')
|
||||||
@ -127,13 +155,12 @@ def configure_args(self):
|
|||||||
else:
|
else:
|
||||||
config_args.append('--disable-params-check')
|
config_args.append('--disable-params-check')
|
||||||
|
|
||||||
# Activate SIMD based on properties of the target
|
rdmac_prefix = lambda x: self.spec['rdma-core'].prefix \
|
||||||
if 'avx' in self.spec.target:
|
if 'rdma-core' in self.spec else None
|
||||||
config_args.append('--with-avx')
|
|
||||||
else:
|
|
||||||
config_args.append('--without-avx')
|
|
||||||
|
|
||||||
config_args.extend(self.enable_or_disable('optimizations'))
|
config_args.extend(self.enable_or_disable('optimizations'))
|
||||||
|
config_args.append('--enable-compiler-opt=' +
|
||||||
|
self.spec.variant['opt'].value)
|
||||||
config_args.extend(self.enable_or_disable('assertions'))
|
config_args.extend(self.enable_or_disable('assertions'))
|
||||||
config_args.extend(self.enable_or_disable('logging'))
|
config_args.extend(self.enable_or_disable('logging'))
|
||||||
|
|
||||||
@ -157,9 +184,40 @@ def configure_args(self):
|
|||||||
activation_value='prefix'))
|
activation_value='prefix'))
|
||||||
config_args.extend(self.with_or_without('xpmem',
|
config_args.extend(self.with_or_without('xpmem',
|
||||||
activation_value='prefix'))
|
activation_value='prefix'))
|
||||||
|
config_args.extend(self.with_or_without('rdmacm',
|
||||||
|
activation_value=rdmac_prefix))
|
||||||
|
|
||||||
|
config_args.extend(self.enable_or_disable('static'))
|
||||||
|
config_args.extend(self.enable_or_disable('shared'))
|
||||||
|
config_args.extend(self.enable_or_disable('static'))
|
||||||
|
config_args.extend(self.with_or_without('openmp'))
|
||||||
|
|
||||||
|
if self.spec.satisfies('simd=auto'):
|
||||||
|
# Activate SIMD based on properties of the target
|
||||||
|
if 'avx' in self.spec.target:
|
||||||
|
config_args.append('--with-avx')
|
||||||
|
else:
|
||||||
|
config_args.append('--without-avx')
|
||||||
|
elif self.spec.satisfies('simd=none'):
|
||||||
|
for instr in simd_values:
|
||||||
|
config_args.append('--without-' + instr)
|
||||||
|
else:
|
||||||
|
for instr in simd_values:
|
||||||
|
if self.spec.satisfies('simd=' + instr):
|
||||||
|
config_args.append('--with-' + instr)
|
||||||
|
else:
|
||||||
|
config_args.append('--without-' + instr)
|
||||||
|
|
||||||
|
config_args.extend(self.with_or_without('verbs',
|
||||||
|
activation_value=rdmac_prefix))
|
||||||
|
|
||||||
# lld doesn't support '-dynamic-list-data'
|
# lld doesn't support '-dynamic-list-data'
|
||||||
if '%aocc' in spec:
|
if '%aocc' in spec:
|
||||||
config_args.append('LDFLAGS=-fuse-ld=bfd')
|
config_args.append('LDFLAGS=-fuse-ld=bfd')
|
||||||
|
|
||||||
return config_args
|
return config_args
|
||||||
|
|
||||||
|
@run_after('install')
|
||||||
|
def drop_examples(self):
|
||||||
|
if self.spec.satisfies('~examples'):
|
||||||
|
shutil.rmtree(join_path(self.spec.prefix, 'share', 'ucx', 'examples'))
|
||||||
|
Loading…
Reference in New Issue
Block a user