summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2021-11-22 13:54:19 +0100
committerGitHub <noreply@github.com>2021-11-22 07:54:19 -0500
commit5eba5dc271101df658f8dd132015cb90687d8a3d (patch)
tree514bc36b88a186be6b8c95cf573902a883756eb8
parent5f10562ad13c803bf5d22552a9f07c8c379fdd23 (diff)
downloadspack-5eba5dc271101df658f8dd132015cb90687d8a3d.tar.gz
spack-5eba5dc271101df658f8dd132015cb90687d8a3d.tar.bz2
spack-5eba5dc271101df658f8dd132015cb90687d8a3d.tar.xz
spack-5eba5dc271101df658f8dd132015cb90687d8a3d.zip
Make CUDA and ROCm architecture conditional (#27185)
* Make CUDA and ROCm architecture conditional fixes #14337 The variant to specify which architecture to use for CUDA and ROCm are now conditional on +cuda and +rocm respectively. * cp2k: make all CUDA related variants conditional on +cuda
-rw-r--r--lib/spack/spack/build_systems/cuda.py3
-rw-r--r--lib/spack/spack/build_systems/rocm.py3
-rw-r--r--var/spack/repos/builtin/packages/cp2k/package.py19
3 files changed, 13 insertions, 12 deletions
diff --git a/lib/spack/spack/build_systems/cuda.py b/lib/spack/spack/build_systems/cuda.py
index 634cfad637..79f57b046e 100644
--- a/lib/spack/spack/build_systems/cuda.py
+++ b/lib/spack/spack/build_systems/cuda.py
@@ -35,7 +35,8 @@ class CudaPackage(PackageBase):
variant('cuda_arch',
description='CUDA architecture',
- values=spack.variant.any_combination_of(*cuda_arch_values))
+ values=spack.variant.any_combination_of(*cuda_arch_values),
+ when='+cuda')
# https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#nvcc-examples
# https://llvm.org/docs/CompileCudaWithLLVM.html#compiling-cuda-code
diff --git a/lib/spack/spack/build_systems/rocm.py b/lib/spack/spack/build_systems/rocm.py
index 977db700db..828ebe7a67 100644
--- a/lib/spack/spack/build_systems/rocm.py
+++ b/lib/spack/spack/build_systems/rocm.py
@@ -100,7 +100,8 @@ class ROCmPackage(PackageBase):
# possible amd gpu targets for rocm builds
variant('amdgpu_target',
description='AMD GPU architecture',
- values=spack.variant.any_combination_of(*amdgpu_targets))
+ values=spack.variant.any_combination_of(*amdgpu_targets),
+ when='+rocm')
depends_on('llvm-amdgpu', when='+rocm')
depends_on('hsa-rocr-dev', when='+rocm')
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
index d1ac5b086e..42958771ff 100644
--- a/var/spack/repos/builtin/packages/cp2k/package.py
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -53,14 +53,15 @@ class Cp2k(MakefilePackage, CudaPackage):
' and BQB compression'))
variant('spglib', default=False, description='Enable support for spglib')
- variant('cuda_arch_35_k20x', default=False,
- description=('CP2K (resp. DBCSR) has specific parameter sets for'
- ' different GPU models. Enable this when building'
- ' with cuda_arch=35 for a K20x instead of a K40'))
- variant('cuda_fft', default=False,
- description=('Use CUDA also for FFTs in the PW part of CP2K'))
- variant('cuda_blas', default=False,
- description=('Use CUBLAS for general matrix operations in DBCSR'))
+ with when('+cuda'):
+ variant('cuda_arch_35_k20x', default=False,
+ description=('CP2K (resp. DBCSR) has specific parameter sets for'
+ ' different GPU models. Enable this when building'
+ ' with cuda_arch=35 for a K20x instead of a K40'))
+ variant('cuda_fft', default=False,
+ description=('Use CUDA also for FFTs in the PW part of CP2K'))
+ variant('cuda_blas', default=False,
+ description=('Use CUBLAS for general matrix operations in DBCSR'))
HFX_LMAX_RANGE = range(4, 8)
@@ -167,8 +168,6 @@ class Cp2k(MakefilePackage, CudaPackage):
depends_on('python@3.6:', when='@7:+cuda', type='build')
depends_on('spglib', when='+spglib')
- conflicts('~cuda', '+cuda_fft')
- conflicts('~cuda', '+cuda_blas')
# Apparently cp2k@4.1 needs an "experimental" version of libwannier.a
# which is only available contacting the developer directly. See INSTALL