diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py index 03a3f8f671..b5d92755f6 100644 --- a/var/spack/repos/builtin/packages/dihydrogen/package.py +++ b/var/spack/repos/builtin/packages/dihydrogen/package.py @@ -75,6 +75,9 @@ class Dihydrogen(CMakePackage, CudaPackage): # Add Aluminum variants depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda') + for arch in CudaPackage.cuda_arch_values: + depends_on('aluminum cuda_arch=%s' % arch, when='+al +cuda cuda_arch=%s' % arch) + depends_on('cuda', when=('+cuda' or '+legacy')) depends_on('cudnn', when=('+cuda' or '+legacy')) depends_on('cub', when='^cuda@:10.99') diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py index da571027e9..f7333de8a7 100644 --- a/var/spack/repos/builtin/packages/hydrogen/package.py +++ b/var/spack/repos/builtin/packages/hydrogen/package.py @@ -53,8 +53,6 @@ class Hydrogen(CMakePackage, CudaPackage): variant('mpfr', default=False, description='Support GNU MPFR\'s' 'arbitrary-precision floating-point arithmetic') - variant('cuda', default=False, - description='Builds with support for GPUs via CUDA and cuDNN') variant('test', default=False, description='Builds test suite') variant('al', default=False, @@ -96,6 +94,9 @@ class Hydrogen(CMakePackage, CudaPackage): # Add Aluminum variants depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda') + for arch in CudaPackage.cuda_arch_values: + depends_on('aluminum cuda_arch=%s' % arch, when='+al +cuda cuda_arch=%s' % arch) + # 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/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py index 11c4ed2f1a..4c0c3ef12b 100644 --- a/var/spack/repos/builtin/packages/lbann/package.py +++ b/var/spack/repos/builtin/packages/lbann/package.py @@ -101,6 +101,12 @@ class Lbann(CMakePackage, CudaPackage): depends_on('dihydrogen@:0.0,0.2:', when='@:0.90,0.102: +dihydrogen') conflicts('~dihydrogen', when='+distconv') + for arch in CudaPackage.cuda_arch_values: + depends_on('hydrogen cuda_arch=%s' % arch, when='cuda_arch=%s' % arch) + depends_on('aluminum cuda_arch=%s' % arch, when='+al +cuda cuda_arch=%s' % arch) + depends_on('dihydrogen cuda_arch=%s' % arch, when='+dihydrogen cuda_arch=%s' % arch) + depends_on('nccl cuda_arch=%s' % arch, when='+cuda cuda_arch=%s' % arch) + depends_on('cudnn', when='@0.90:0.100.99 +cuda') depends_on('cudnn@8.0.2:', when='@:0.90,0.101: +cuda') depends_on('cub', when='@0.94:0.98.2 +cuda ^cuda@:10.99')