xgboost: Add version 1.6.1 and make openmp variant compatible with clang (#31557)
This commit is contained in:
parent
e7be8dbbcf
commit
cf3774aa46
@ -18,6 +18,7 @@ class PyXgboost(PythonPackage):
|
|||||||
maintainers = ['adamjstewart']
|
maintainers = ['adamjstewart']
|
||||||
import_modules = ['xgboost']
|
import_modules = ['xgboost']
|
||||||
|
|
||||||
|
version('1.6.1', sha256='24072028656f3428e7b8aabf77340ece057f273e41f7f85d67ccaefb7454bb18')
|
||||||
version('1.5.2', sha256='404dc09dca887ef5a9bc0268f882c54b33bfc16ac365a859a11e7b24d49da387')
|
version('1.5.2', sha256='404dc09dca887ef5a9bc0268f882c54b33bfc16ac365a859a11e7b24d49da387')
|
||||||
version('1.3.3', sha256='397051647bb837915f3ff24afc7d49f7fca57630ffd00fb5ef66ae2a0881fb43')
|
version('1.3.3', sha256='397051647bb837915f3ff24afc7d49f7fca57630ffd00fb5ef66ae2a0881fb43')
|
||||||
|
|
||||||
@ -26,9 +27,10 @@ class PyXgboost(PythonPackage):
|
|||||||
variant('dask', default=False, description='Enables Dask extensions for distributed training.')
|
variant('dask', default=False, description='Enables Dask extensions for distributed training.')
|
||||||
variant('plotting', default=False, description='Enables tree and importance plotting.')
|
variant('plotting', default=False, description='Enables tree and importance plotting.')
|
||||||
|
|
||||||
for ver in ['1.3.3', '1.5.2']:
|
for ver in ['1.3.3', '1.5.2', '1.6.1']:
|
||||||
depends_on('xgboost@' + ver, when='@' + ver)
|
depends_on('xgboost@' + ver, when='@' + ver)
|
||||||
|
|
||||||
|
depends_on('python@3.7:', when='@1.6:', type=('build', 'run'))
|
||||||
depends_on('python@3.6:', type=('build', 'run'))
|
depends_on('python@3.6:', type=('build', 'run'))
|
||||||
depends_on('py-setuptools', type=('build'))
|
depends_on('py-setuptools', type=('build'))
|
||||||
depends_on('py-numpy', type=('build', 'run'))
|
depends_on('py-numpy', type=('build', 'run'))
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
from spack.package import *
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
@ -20,6 +22,7 @@ class Xgboost(CMakePackage, CudaPackage):
|
|||||||
maintainers = ['adamjstewart']
|
maintainers = ['adamjstewart']
|
||||||
|
|
||||||
version('master', branch='master', submodules=True)
|
version('master', branch='master', submodules=True)
|
||||||
|
version('1.6.1', tag='v1.6.1', submodules=True)
|
||||||
version('1.5.2', tag='v1.5.2', submodules=True)
|
version('1.5.2', tag='v1.5.2', submodules=True)
|
||||||
version('1.3.3', tag='v1.3.3', submodules=True)
|
version('1.3.3', tag='v1.3.3', submodules=True)
|
||||||
|
|
||||||
@ -34,6 +37,7 @@ class Xgboost(CMakePackage, CudaPackage):
|
|||||||
depends_on('cuda@10:11.4', when='@:1.5.0+cuda')
|
depends_on('cuda@10:11.4', when='@:1.5.0+cuda')
|
||||||
depends_on('nccl', when='+nccl')
|
depends_on('nccl', when='+nccl')
|
||||||
depends_on('llvm-openmp', when='%apple-clang +openmp')
|
depends_on('llvm-openmp', when='%apple-clang +openmp')
|
||||||
|
depends_on('hwloc', when='%clang')
|
||||||
|
|
||||||
conflicts('%gcc@:4', msg='GCC version must be at least 5.0!')
|
conflicts('%gcc@:4', msg='GCC version must be at least 5.0!')
|
||||||
conflicts('+nccl', when='~cuda', msg='NCCL requires CUDA')
|
conflicts('+nccl', when='~cuda', msg='NCCL requires CUDA')
|
||||||
@ -59,4 +63,22 @@ def cmake_args(self):
|
|||||||
if '@1.5: ^cuda@11.4:' in self.spec:
|
if '@1.5: ^cuda@11.4:' in self.spec:
|
||||||
args.append(self.define('BUILD_WITH_CUDA_CUB', True))
|
args.append(self.define('BUILD_WITH_CUDA_CUB', True))
|
||||||
|
|
||||||
|
if self.spec.satisfies('+openmp%clang'):
|
||||||
|
OpenMP_C_FLAGS = "-fopenmp=libomp"
|
||||||
|
OpenMP_C_LIB_NAMES = "libomp"
|
||||||
|
args += [
|
||||||
|
self.define('OpenMP_C_FLAGS', OpenMP_C_FLAGS),
|
||||||
|
self.define('OpenMP_C_LIB_NAMES', OpenMP_C_LIB_NAMES),
|
||||||
|
self.define('OpenMP_CXX_FLAGS', OpenMP_C_FLAGS),
|
||||||
|
self.define('OpenMP_CXX_LIB_NAMES', OpenMP_C_LIB_NAMES),
|
||||||
|
]
|
||||||
|
clang = self.compiler.cc
|
||||||
|
clang_bin = os.path.dirname(clang)
|
||||||
|
clang_root = os.path.dirname(clang_bin)
|
||||||
|
args += [
|
||||||
|
self.define('OpenMP_libomp_LIBRARY',
|
||||||
|
find_libraries('libomp', root=clang_root,
|
||||||
|
shared=True, recursive=True))
|
||||||
|
]
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
Loading…
Reference in New Issue
Block a user