summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAxel Huebl <axel.huebl@plasma.ninja>2020-07-13 16:32:28 -0700
committerGitHub <noreply@github.com>2020-07-13 18:32:28 -0500
commita6abd530bdbd426cf866cc5689b3a0162d8f7e78 (patch)
tree32e8fda6c8f1ee019a4e355501a7a7a14dcd5512 /lib
parent2b809a537469b39e44080d33899e6b0756956309 (diff)
downloadspack-a6abd530bdbd426cf866cc5689b3a0162d8f7e78.tar.gz
spack-a6abd530bdbd426cf866cc5689b3a0162d8f7e78.tar.bz2
spack-a6abd530bdbd426cf866cc5689b3a0162d8f7e78.tar.xz
spack-a6abd530bdbd426cf866cc5689b3a0162d8f7e78.zip
CUDA 11.0.2 (#17423)
- [x] wait for general release candidate - [x] compute capability support - [x] compiler conflicts - [x] ppc64le - [x] new download links
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/build_systems/cuda.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/lib/spack/spack/build_systems/cuda.py b/lib/spack/spack/build_systems/cuda.py
index 0c903f0b1f..ef1b0266f8 100644
--- a/lib/spack/spack/build_systems/cuda.py
+++ b/lib/spack/spack/build_systems/cuda.py
@@ -26,6 +26,7 @@ class CudaPackage(PackageBase):
'50', '52', '53',
'60', '61', '62',
'70', '72', '75',
+ '80',
]
# FIXME: keep cuda and cuda_arch separate to make usage easier until
@@ -49,6 +50,7 @@ class CudaPackage(PackageBase):
# CUDA version vs Architecture
# https://en.wikipedia.org/wiki/CUDA#GPUs_supported
+ # https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#deprecated-features
depends_on('cuda@:6.0', when='cuda_arch=10')
depends_on('cuda@:6.5', when='cuda_arch=11')
depends_on('cuda@2.1:6.5', when='cuda_arch=12')
@@ -59,8 +61,8 @@ class CudaPackage(PackageBase):
depends_on('cuda@5.0:10.2', when='cuda_arch=30')
depends_on('cuda@5.0:10.2', when='cuda_arch=32')
- depends_on('cuda@5.0:10.2', when='cuda_arch=35')
- depends_on('cuda@6.5:10.2', when='cuda_arch=37')
+ depends_on('cuda@5.0:', when='cuda_arch=35')
+ depends_on('cuda@6.5:', when='cuda_arch=37')
depends_on('cuda@6.0:', when='cuda_arch=50')
depends_on('cuda@6.5:', when='cuda_arch=52')
@@ -74,6 +76,8 @@ class CudaPackage(PackageBase):
depends_on('cuda@9.0:', when='cuda_arch=72')
depends_on('cuda@10.0:', when='cuda_arch=75')
+ depends_on('cuda@11.0:', when='cuda_arch=80')
+
# There are at least three cases to be aware of for compiler conflicts
# 1. Linux x86_64
# 2. Linux ppc64le
@@ -89,12 +93,15 @@ class CudaPackage(PackageBase):
conflicts('%gcc@7:', when='+cuda ^cuda@:9.1' + arch_platform)
conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130' + arch_platform)
conflicts('%gcc@9:', when='+cuda ^cuda@:10.2.89' + arch_platform)
+ conflicts('%gcc@:4,10:', when='+cuda ^cuda@:11.0.2' + arch_platform)
conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27' + arch_platform)
conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5' + arch_platform)
conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8' + arch_platform)
conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1' + arch_platform)
- conflicts('%pgi@:16', when='+cuda ^cuda@9.2.88:10' + arch_platform)
- conflicts('%pgi@:17', when='+cuda ^cuda@10.2.89' + arch_platform)
+ conflicts('%pgi@:16,19:', when='+cuda ^cuda@9.2.88:10' + arch_platform)
+ conflicts('%pgi@:17,20:',
+ when='+cuda ^cuda@10.1.105:10.2.89' + arch_platform)
+ conflicts('%pgi@:17,20.2:', when='+cuda ^cuda@11.0.2' + arch_platform)
conflicts('%clang@:3.4', when='+cuda ^cuda@:7.5' + arch_platform)
conflicts('%clang@:3.7,4:',
when='+cuda ^cuda@8.0:9.0' + arch_platform)
@@ -105,7 +112,8 @@ class CudaPackage(PackageBase):
conflicts('%clang@:3.7,7.1:', when='+cuda ^cuda@10.1.105' + arch_platform)
conflicts('%clang@:3.7,8.1:',
when='+cuda ^cuda@10.1.105:10.1.243' + arch_platform)
- conflicts('%clang@:3.2,9.0:', when='+cuda ^cuda@10.2.89' + arch_platform)
+ conflicts('%clang@:3.2,9:', when='+cuda ^cuda@10.2.89' + arch_platform)
+ conflicts('%clang@:5,10:', when='+cuda ^cuda@11.0.2' + arch_platform)
# x86_64 vs. ppc64le differ according to NVidia docs
# Linux ppc64le compiler conflicts from Table from the docs below:
@@ -120,6 +128,8 @@ class CudaPackage(PackageBase):
conflicts('%gcc@6:', when='+cuda ^cuda@:9' + arch_platform)
conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130' + arch_platform)
conflicts('%gcc@9:', when='+cuda ^cuda@:10.1.243' + arch_platform)
+ # officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le
+ conflicts('%gcc@:4,10:', when='+cuda ^cuda@:11.0.2' + arch_platform)
conflicts('%pgi', when='+cuda ^cuda@:8' + arch_platform)
conflicts('%pgi@:16', when='+cuda ^cuda@:9.1.185' + arch_platform)
conflicts('%pgi@:17', when='+cuda ^cuda@:10' + arch_platform)
@@ -129,6 +139,7 @@ class CudaPackage(PackageBase):
conflicts('%clang@7:', when='+cuda ^cuda@10.0.130' + arch_platform)
conflicts('%clang@7.1:', when='+cuda ^cuda@:10.1.105' + arch_platform)
conflicts('%clang@8.1:', when='+cuda ^cuda@:10.2.89' + arch_platform)
+ conflicts('%clang@:5,10.0:', when='+cuda ^cuda@11.0.2' + arch_platform)
# Intel is mostly relevant for x86_64 Linux, even though it also
# exists for Mac OS X. No information prior to CUDA 3.2 or Intel 11.1
@@ -142,11 +153,13 @@ class CudaPackage(PackageBase):
conflicts('%intel@17.0:', when='+cuda ^cuda@:8.0.60')
conflicts('%intel@18.0:', when='+cuda ^cuda@:9.9')
conflicts('%intel@19.0:', when='+cuda ^cuda@:10.0')
+ conflicts('%intel@19.1:', when='+cuda ^cuda@:10.1')
+ conflicts('%intel@19.2:', when='+cuda ^cuda@:11.0.2')
# XL is mostly relevant for ppc64le Linux
conflicts('%xl@:12,14:', when='+cuda ^cuda@:9.1')
conflicts('%xl@:12,14:15,17:', when='+cuda ^cuda@9.2')
- conflicts('%xl@17:', when='+cuda ^cuda@:10.2.89')
+ conflicts('%xl@:12,17:', when='+cuda ^cuda@:11.0.2')
# Mac OS X
# platform = ' platform=darwin'
@@ -157,7 +170,7 @@ class CudaPackage(PackageBase):
# `clang-apple@x.y.z as a possible fix.
# Compiler conflicts will be eventual taken from here:
# https://docs.nvidia.com/cuda/cuda-installation-guide-mac-os-x/index.html#abstract
- conflicts('platform=darwin', when='+cuda ^cuda@11.0:')
+ conflicts('platform=darwin', when='+cuda ^cuda@11.0.2:')
# Make sure cuda_arch can not be used without +cuda
for value in cuda_arch_values: