diff options
4 files changed, 26 insertions, 39 deletions
diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py index 94bc622e98..eef17a0258 100644 --- a/var/spack/repos/builtin/packages/dihydrogen/package.py +++ b/var/spack/repos/builtin/packages/dihydrogen/package.py @@ -55,19 +55,6 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage): 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 = [ - '30', '32', '35', '37', - '50', '52', '53', - '60', '61', '62', - '70', '72', '75', - '80' - ] - variant('cuda_arch', - description='CUDA architecture', - values=spack.variant.auto_or_any_combination_of(*cuda_arch_values)) - conflicts('~cuda', when='+nvshmem') depends_on('mpi') @@ -75,7 +62,8 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage): # Specify the correct version of Aluminum depends_on('aluminum@0.4:0.4.99', when='@0.1:0.1.99 +al') - depends_on('aluminum@0.5.0:', when='@:0.0,0.2: +al') + depends_on('aluminum@0.5.0:0.7.99', when='@0.2.0:0.2.1 +al') + depends_on('aluminum@0.5.0:', when='@:0.0,0.2.1: +al') # Add Aluminum variants depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda') @@ -89,32 +77,30 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage): for val in ROCmPackage.amdgpu_targets: depends_on('aluminum amdgpu_target=%s' % val, when='amdgpu_target=%s' % val) - depends_on('cuda', when=('+cuda' or '+legacy')) - depends_on('cudnn', when=('+cuda' or '+legacy')) + for when in ['+cuda', '+distconv']: + depends_on('cuda', when=when) + depends_on('cudnn', when=when) depends_on('cub', when='^cuda@:10.99') # 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('openblas', when='blas=openblas') + depends_on('openblas +ilp64', when='blas=openblas +int64_blas') + depends_on('openblas threads=openmp', when='blas=openblas +openmp_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('intel-mkl', when="blas=mkl") + depends_on('intel-mkl +ilp64', when="blas=mkl +int64_blas") + depends_on('intel-mkl threads=openmp', when='blas=mkl +openmp_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('essl', when='blas=essl') + depends_on('essl +ilp64', when='blas=essl +int64_blas') + depends_on('essl threads=openmp', when='blas=essl +openmp_blas') depends_on('netlib-lapack +external-blas', when='blas=essl') - # Legacy builds require cuda - conflicts('~cuda', when='+legacy') + # Distconv builds require cuda + conflicts('~cuda', when='+distconv') conflicts('+distconv', when='+half') conflicts('+rocm', when='+half') @@ -132,6 +118,8 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage): depends_on('nvshmem', when='+nvshmem') + # Idenfity versions of cuda_arch that are too old + # from lib/spack/spack/build_systems/cuda.py illegal_cuda_arch_values = [ '10', '11', '12', '13', '20', '21', @@ -179,12 +167,12 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage): ' '.join(self.cuda_flags(cuda_arch)) )) - if '+cuda' in spec or '+legacy' in spec: + if '+cuda' in spec or '+distconv' in spec: args.append('-DcuDNN_DIR={0}'.format( spec['cudnn'].prefix)) if spec.satisfies('^cuda@:10.99'): - if '+cuda' in spec or '+legacy' in spec: + if '+cuda' in spec or '+distconv' in spec: args.append('-DCUB_DIR={0}'.format( spec['cub'].prefix)) diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py index 4431dab782..5dea8f1421 100644 --- a/var/spack/repos/builtin/packages/elemental/package.py +++ b/var/spack/repos/builtin/packages/elemental/package.py @@ -61,14 +61,14 @@ class Elemental(CMakePackage): # Allow Elemental to build internally when using 8-byte ints depends_on('openblas threads=openmp', when='blas=openblas +openmp_blas ~int64_blas') - depends_on('intel-mkl', 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('intel-mkl', when="blas=mkl") + depends_on('intel-mkl threads=openmp', when='blas=mkl +openmp_blas') + depends_on('intel-mkl@2017.1 +ilp64', when='blas=mkl +int64_blas') depends_on('veclibfort', when='blas=accelerate') - depends_on('essl ~cuda', when='blas=essl ~openmp_blas ~int64_blas') - depends_on('essl threads=openmp', when='blas=essl +openmp_blas ~int64_blas') + depends_on('essl', when='blas=essl') + depends_on('essl threads=openmp', when='blas=essl +openmp_blas') # Note that this forces us to use OpenBLAS until #1712 is fixed depends_on('lapack', when='blas=openblas ~openmp_blas') diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py index 339f1370be..00b30c4d6b 100644 --- a/var/spack/repos/builtin/packages/hydrogen/package.py +++ b/var/spack/repos/builtin/packages/hydrogen/package.py @@ -85,7 +85,6 @@ class Hydrogen(CMakePackage, CudaPackage, ROCmPackage): conflicts('blas=accelerate +openmp_blas') depends_on('essl', when='blas=essl') - depends_on('essl -cuda', when='blas=essl -openmp_blas') depends_on('essl +ilp64', when='blas=essl +int64_blas') depends_on('essl threads=openmp', when='blas=essl +openmp_blas') depends_on('netlib-lapack +external-blas', when='blas=essl') diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py index 1023cc91b8..cca38f266e 100644 --- a/var/spack/repos/builtin/packages/lbann/package.py +++ b/var/spack/repos/builtin/packages/lbann/package.py @@ -182,7 +182,7 @@ class Lbann(CMakePackage, CudaPackage, ROCmPackage): depends_on('python@3: +shared', type=('build', 'run'), when='@:0.90,0.99: +pfe') extends("python", when='+pfe') depends_on('py-setuptools', type='build', when='+pfe') - depends_on('py-argparse', type='run', when='@:0.90,0.99: ^python@:2.6 +pfe') + depends_on('py-argparse', type='run', when='@:0.90,0.99: +pfe ^python@:2.6') depends_on('py-configparser', type='run', when='@:0.90,0.99: +pfe +extras') depends_on('py-graphviz@0.10.1:', type='run', when='@:0.90,0.99: +pfe +extras') depends_on('py-matplotlib@3.0.0:', type='run', when='@:0.90,0.99: +pfe +extras') |