diff options
author | Brian Van Essen <vanessen1@llnl.gov> | 2020-08-09 22:31:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-10 07:31:41 +0200 |
commit | aa79d565b3a4ae5b27e7bd3a2dca9ac83b6a8954 (patch) | |
tree | 26de43ad1cddbb00d3923e5b4ae6ba2d23184b5f | |
parent | 7c9c486d075e0a8d3d1a8cf5d8f29fafaf7b79c8 (diff) | |
download | spack-aa79d565b3a4ae5b27e7bd3a2dca9ac83b6a8954.tar.gz spack-aa79d565b3a4ae5b27e7bd3a2dca9ac83b6a8954.tar.bz2 spack-aa79d565b3a4ae5b27e7bd3a2dca9ac83b6a8954.tar.xz spack-aa79d565b3a4ae5b27e7bd3a2dca9ac83b6a8954.zip |
DiHydrogen: adding blas and associated variants (#17911)
-rw-r--r-- | var/spack/repos/builtin/packages/dihydrogen/package.py | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py index db3dfdfb6c..92d19950a2 100644 --- a/var/spack/repos/builtin/packages/dihydrogen/package.py +++ b/var/spack/repos/builtin/packages/dihydrogen/package.py @@ -40,6 +40,14 @@ class Dihydrogen(CMakePackage, CudaPackage): variant('docs', default=False, description='Builds with support for building documentation') + # Variants related to BLAS + variant('openmp_blas', default=False, + description='Use OpenMP for threading in the BLAS library') + variant('int64_blas', default=False, + description='Use 64bit integers for BLAS.') + variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl'), + description='Enable the use of OpenBlas/MKL/Accelerate/ESSL') + # Override the default set of CUDA architectures with the relevant # subset from lib/spack/spack/build_systems/cuda.py cuda_arch_values = [ @@ -51,8 +59,6 @@ class Dihydrogen(CMakePackage, CudaPackage): description='CUDA architecture', values=spack.variant.auto_or_any_combination_of(*cuda_arch_values)) - depends_on('cmake@3.16.0:', type='build') - depends_on('mpi') depends_on('catch2', type='test') @@ -63,6 +69,26 @@ class Dihydrogen(CMakePackage, CudaPackage): depends_on('cudnn', when=('+cuda' or '+legacy')) depends_on('cub', when=('+cuda' or '+legacy')) + # Note that #1712 forces us to enumerate the different blas variants + depends_on('openblas', when='blas=openblas ~openmp_blas ~int64_blas') + depends_on('openblas +ilp64', when='blas=openblas ~openmp_blas +int64_blas') + depends_on('openblas threads=openmp', when='blas=openblas +openmp_blas ~int64_blas') + depends_on('openblas threads=openmp +lip64', when='blas=openblas +openmp_blas +int64_blas') + + depends_on('intel-mkl', when="blas=mkl ~openmp_blas ~int64_blas") + depends_on('intel-mkl +ilp64', when="blas=mkl ~openmp_blas +int64_blas") + depends_on('intel-mkl threads=openmp', when='blas=mkl +openmp_blas ~int64_blas') + depends_on('intel-mkl@2017.1 +openmp +ilp64', when='blas=mkl +openmp_blas +int64_blas') + + depends_on('veclibfort', when='blas=accelerate') + conflicts('blas=accelerate +openmp_blas') + + depends_on('essl -cuda', when='blas=essl -openmp_blas ~int64_blas') + depends_on('essl -cuda +ilp64', when='blas=essl -openmp_blas +int64_blas') + depends_on('essl threads=openmp', when='blas=essl +openmp_blas ~int64_blas') + depends_on('essl threads=openmp +ilp64', when='blas=essl +openmp_blas +int64_blas') + depends_on('netlib-lapack +external-blas', when='blas=essl') + # Legacy builds require cuda conflicts('~cuda', when='+legacy') @@ -70,7 +96,7 @@ class Dihydrogen(CMakePackage, CudaPackage): generator = 'Ninja' depends_on('ninja', type='build') - depends_on('cmake@3.14.0:', type='build') + depends_on('cmake@3.16.0:', type='build') depends_on('py-breathe', type='build', when='+docs') depends_on('doxygen', type='build', when='+docs') |