cuda: add v12.8 (#48708)
This commit is contained in:
parent
1c3e2b5425
commit
8579efcadf
@ -15,7 +15,7 @@ class CudaPackage(PackageBase):
|
||||
"""Auxiliary class which contains CUDA variant, dependencies and conflicts
|
||||
and is meant to unify and facilitate its usage.
|
||||
|
||||
Maintainers: ax3l, Rombur, davidbeckingsale
|
||||
Maintainers: ax3l, Rombur, davidbeckingsale, pauleonix
|
||||
"""
|
||||
|
||||
# https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-feature-list
|
||||
@ -47,6 +47,12 @@ class CudaPackage(PackageBase):
|
||||
"89",
|
||||
"90",
|
||||
"90a",
|
||||
"100",
|
||||
"100a",
|
||||
"101",
|
||||
"101a",
|
||||
"120",
|
||||
"120a",
|
||||
)
|
||||
|
||||
# FIXME: keep cuda and cuda_arch separate to make usage easier until
|
||||
@ -99,39 +105,56 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]:
|
||||
# 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
|
||||
# Tesla support:
|
||||
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")
|
||||
depends_on("cuda@2.1:6.5", when="cuda_arch=13")
|
||||
|
||||
# Fermi support:
|
||||
depends_on("cuda@3.0:8.0", when="cuda_arch=20")
|
||||
depends_on("cuda@3.2:8.0", when="cuda_arch=21")
|
||||
|
||||
# Kepler support:
|
||||
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:11.8", when="cuda_arch=35")
|
||||
depends_on("cuda@6.5:11.8", when="cuda_arch=37")
|
||||
|
||||
# Maxwell support:
|
||||
depends_on("cuda@6.0:", when="cuda_arch=50")
|
||||
depends_on("cuda@6.5:", when="cuda_arch=52")
|
||||
depends_on("cuda@6.5:", when="cuda_arch=53")
|
||||
|
||||
# Pascal support:
|
||||
depends_on("cuda@8.0:", when="cuda_arch=60")
|
||||
depends_on("cuda@8.0:", when="cuda_arch=61")
|
||||
depends_on("cuda@8.0:", when="cuda_arch=62")
|
||||
|
||||
# Volta support:
|
||||
depends_on("cuda@9.0:", when="cuda_arch=70")
|
||||
# Turing support:
|
||||
depends_on("cuda@9.0:", when="cuda_arch=72")
|
||||
depends_on("cuda@10.0:", when="cuda_arch=75")
|
||||
|
||||
# Ampere support:
|
||||
depends_on("cuda@11.0:", when="cuda_arch=80")
|
||||
depends_on("cuda@11.1:", when="cuda_arch=86")
|
||||
depends_on("cuda@11.4:", when="cuda_arch=87")
|
||||
# Ada support:
|
||||
depends_on("cuda@11.8:", when="cuda_arch=89")
|
||||
|
||||
# Hopper support:
|
||||
depends_on("cuda@12.0:", when="cuda_arch=90")
|
||||
depends_on("cuda@12.0:", when="cuda_arch=90a")
|
||||
|
||||
# Blackwell support:
|
||||
depends_on("cuda@12.8:", when="cuda_arch=100")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=100a")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=101")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=101a")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=120")
|
||||
depends_on("cuda@12.8:", when="cuda_arch=120a")
|
||||
# From the NVIDIA install guide we know of conflicts for particular
|
||||
# platforms (linux, darwin), architectures (x86, powerpc) and compilers
|
||||
# (gcc, clang). We don't restrict %gcc and %clang conflicts to
|
||||
@ -163,6 +186,7 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]:
|
||||
conflicts("%gcc@12:", when="+cuda ^cuda@:11.8")
|
||||
conflicts("%gcc@13:", when="+cuda ^cuda@:12.3")
|
||||
conflicts("%gcc@14:", when="+cuda ^cuda@:12.6")
|
||||
conflicts("%gcc@15:", when="+cuda ^cuda@:12.8")
|
||||
conflicts("%clang@12:", when="+cuda ^cuda@:11.4.0")
|
||||
conflicts("%clang@13:", when="+cuda ^cuda@:11.5")
|
||||
conflicts("%clang@14:", when="+cuda ^cuda@:11.7")
|
||||
@ -171,6 +195,7 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]:
|
||||
conflicts("%clang@17:", when="+cuda ^cuda@:12.3")
|
||||
conflicts("%clang@18:", when="+cuda ^cuda@:12.5")
|
||||
conflicts("%clang@19:", when="+cuda ^cuda@:12.6")
|
||||
conflicts("%clang@20:", when="+cuda ^cuda@:12.8")
|
||||
|
||||
# https://gist.github.com/ax3l/9489132#gistcomment-3860114
|
||||
conflicts("%gcc@10", when="+cuda ^cuda@:11.4.0")
|
||||
|
@ -21,6 +21,16 @@
|
||||
# format returned by platform.system() and 'arch' by platform.machine()
|
||||
|
||||
_versions = {
|
||||
"12.8.0": {
|
||||
"Linux-aarch64": (
|
||||
"5bc211f00c4f544da6e3fc3a549b3eb0a7e038439f5f3de71caa688f2f6b132c",
|
||||
"https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux_sbsa.run",
|
||||
),
|
||||
"Linux-x86_64": (
|
||||
"610867dcd6d94c4e36c4924f1d01b9db28ec08164e8af6c764f21b84200695f8",
|
||||
"https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run",
|
||||
),
|
||||
},
|
||||
"12.6.3": {
|
||||
"Linux-aarch64": (
|
||||
"213ea63a6357020978a8b0a79a8c9d12a2a5941afa1cdc69d5a3f933fa8bed04",
|
||||
|
@ -19,7 +19,10 @@ class Cusz(CMakePackage, CudaPackage):
|
||||
conflicts("cuda_arch=none", when="+cuda")
|
||||
|
||||
version("develop", branch="develop")
|
||||
version("0.6.0", commit="cafed521dc338fe2159ebb5b09a36fc318524bf7")
|
||||
version("0.14.0", commit="e57fd7cd9df923164af9dd307b0b3d37dd9df137")
|
||||
version("0.9.0rc3", commit="c3c3a74d006c6de3c145255241fb181682bd1492")
|
||||
# 0.9.0rc1 was listed as 0.6.0 for a while in spack
|
||||
version("0.9.0rc1", commit="cafed521dc338fe2159ebb5b09a36fc318524bf7")
|
||||
version("0.3.1", commit="02be3cbd07db467decaf45ec9eb593ba6173c809")
|
||||
version("0.3", sha256="0feb4f7fd64879fe147624dd5ad164adf3983f79b2e0383d35724f8d185dcb11")
|
||||
|
||||
@ -31,6 +34,10 @@ class Cusz(CMakePackage, CudaPackage):
|
||||
|
||||
depends_on("cub", when="^cuda@:10.2.89")
|
||||
|
||||
patch("thrust-includes.patch", when="@0.10:0.14 ^cuda@12.8:")
|
||||
patch("thrust-includes-0.9.patch", when="@0.9 ^cuda@12.8:")
|
||||
conflicts("^cuda@12.8:", when="@:0.8")
|
||||
|
||||
def cmake_args(self):
|
||||
cuda_arch = self.spec.variants["cuda_arch"].value
|
||||
args = ["-DBUILD_TESTING=OFF", ("-DCMAKE_CUDA_ARCHITECTURES=%s" % cuda_arch)]
|
||||
|
@ -0,0 +1,27 @@
|
||||
diff --git a/src/stat/detail/compare.thrust.inl b/src/stat/detail/compare.thrust.inl
|
||||
index ce49408..ec8d650 100644
|
||||
--- a/src/stat/detail/compare.thrust.inl
|
||||
+++ b/src/stat/detail/compare.thrust.inl
|
||||
@@ -18,6 +18,9 @@
|
||||
// #include <thrust/iterator/constant_iterator.h>
|
||||
#include <thrust/device_ptr.h>
|
||||
#include <thrust/execution_policy.h>
|
||||
+#include <thrust/functional.h>
|
||||
+#include <thrust/iterator/zip_iterator.h>
|
||||
+#include <thrust/transform_reduce.h>
|
||||
#include <thrust/tuple.h>
|
||||
|
||||
#include "cusz/type.h"
|
||||
diff --git a/src/stat/detail/maxerr.thrust.inl b/src/stat/detail/maxerr.thrust.inl
|
||||
index 2415655..9b31e88 100644
|
||||
--- a/src/stat/detail/maxerr.thrust.inl
|
||||
+++ b/src/stat/detail/maxerr.thrust.inl
|
||||
@@ -18,6 +18,8 @@
|
||||
// #include <thrust/iterator/constant_iterator.h>
|
||||
#include <thrust/device_ptr.h>
|
||||
#include <thrust/execution_policy.h>
|
||||
+#include <thrust/extrema.h>
|
||||
+#include <thrust/transform.h>
|
||||
|
||||
#include "cusz/type.h"
|
||||
|
27
var/spack/repos/builtin/packages/cusz/thrust-includes.patch
Normal file
27
var/spack/repos/builtin/packages/cusz/thrust-includes.patch
Normal file
@ -0,0 +1,27 @@
|
||||
diff --git a/psz/src/stat/detail/compare.thrust.inl b/psz/src/stat/detail/compare.thrust.inl
|
||||
index f35c7df..719d68f 100644
|
||||
--- a/psz/src/stat/detail/compare.thrust.inl
|
||||
+++ b/psz/src/stat/detail/compare.thrust.inl
|
||||
@@ -11,6 +11,9 @@
|
||||
|
||||
#include <thrust/device_ptr.h>
|
||||
#include <thrust/execution_policy.h>
|
||||
+#include <thrust/functional.h>
|
||||
+#include <thrust/iterator/zip_iterator.h>
|
||||
+#include <thrust/transform_reduce.h>
|
||||
#include <thrust/tuple.h>
|
||||
|
||||
#include "cusz/type.h"
|
||||
diff --git a/psz/src/stat/detail/maxerr.thrust.inl b/psz/src/stat/detail/maxerr.thrust.inl
|
||||
index f7a4db5..ce7925a 100644
|
||||
--- a/psz/src/stat/detail/maxerr.thrust.inl
|
||||
+++ b/psz/src/stat/detail/maxerr.thrust.inl
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
#include <thrust/device_ptr.h>
|
||||
#include <thrust/execution_policy.h>
|
||||
+#include <thrust/extrema.h>
|
||||
+#include <thrust/transform.h>
|
||||
|
||||
#include "cusz/type.h"
|
||||
#include "port.hh"
|
@ -309,7 +309,7 @@ class Libpressio(CMakePackage, CudaPackage):
|
||||
depends_on("sz3@3.1.8:", when="@0.98.1: +sz3")
|
||||
depends_on("bzip2", when="+bzip2")
|
||||
depends_on("qoz", when="+qoz")
|
||||
depends_on("cusz@0.6.0:", when="+cusz")
|
||||
depends_on("cusz@0.9", when="+cusz")
|
||||
|
||||
extends("python", when="+python")
|
||||
|
||||
|
@ -590,6 +590,9 @@ def configure_options(self):
|
||||
else:
|
||||
options.append("--with-sycl=0")
|
||||
|
||||
if spec.satisfies("^cuda@12.8.0"):
|
||||
options.append("CUDAPPFLAGS=-Wno-deprecated-gpu-targets")
|
||||
|
||||
if "trilinos" in spec:
|
||||
if spec.satisfies("^trilinos+boost"):
|
||||
options.append("--with-boost=1")
|
||||
|
@ -164,6 +164,9 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage):
|
||||
# https://github.com/google/jax/issues/19992
|
||||
conflicts("@0.4.4:", when="target=ppc64le:")
|
||||
|
||||
# Fails to build with freshly released CUDA (#48708).
|
||||
conflicts("^cuda@12.8:", when="@:0.4.31")
|
||||
|
||||
def url_for_version(self, version):
|
||||
url = "https://github.com/jax-ml/jax/archive/refs/tags/{}-v{}.tar.gz"
|
||||
if version >= Version("0.4.33"):
|
||||
|
Loading…
Reference in New Issue
Block a user