summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/spfft/package.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/spfft/package.py b/var/spack/repos/builtin/packages/spfft/package.py
index 79e283f533..391a3868a2 100644
--- a/var/spack/repos/builtin/packages/spfft/package.py
+++ b/var/spack/repos/builtin/packages/spfft/package.py
@@ -21,6 +21,7 @@ class Spfft(CMakePackage, CudaPackage, ROCmPackage):
version("develop", branch="develop")
version("master", branch="master")
+ version("1.1.0", sha256="231454a3142bc56249b1b551ac5175882311365509cc111d7ad0e91ed5537102")
version("1.0.6", sha256="e1b927c61f8abbb4a9937653f917169e6253e8c40b850df491594310943ca14b")
version("1.0.5", sha256="2a59d856286ea8559f00a32fc38f9f7546209cfa90112232a5288a69689a6e05")
version("1.0.4", sha256="41e63880d95343da0d8c3dbe5bfb3d46a1d612199cc9cc13a936f1628a7fdb8e")
@@ -50,8 +51,12 @@ class Spfft(CMakePackage, CudaPackage, ROCmPackage):
depends_on("fftw-api@3")
depends_on("mpi", when="+mpi")
depends_on("cmake@3.11:", type="build")
+ depends_on("cmake@3.18:", type="build", when="@1.1.0:")
+ depends_on("cmake@3.21:", type="build", when="@1.1.0: +rocm")
- depends_on("cuda@:10", when="@:0.9.11 +cuda")
+ depends_on("cuda@9:10", when="@:0.9.11 +cuda")
+ depends_on("cuda@9:", when="@0.9.12:1.0.6 +cuda")
+ depends_on("cuda@11:", when="@1.1.0: +cuda")
# Workaround for compiler bug in ROCm 4.5+ added in SpFFT 1.0.6
conflicts("+rocm", when="@:1.0.5")
@@ -59,6 +64,8 @@ class Spfft(CMakePackage, CudaPackage, ROCmPackage):
with when("+rocm"):
depends_on("rocfft")
depends_on("hipfft")
+ # hip 6.0 requires v1.1.0 and later
+ conflicts("^hip@6.0.0:", when="@:1.0.6 +rocm")
# Fix compilation error in some cases due to missing include statement
# before version 1.0.3
@@ -82,7 +89,13 @@ class Spfft(CMakePackage, CudaPackage, ROCmPackage):
if cuda_arch[0] != "none":
args += [self.define("CMAKE_CUDA_ARCHITECTURES", cuda_arch)]
- if spec.satisfies("+rocm"):
+ if spec.satisfies("@1.1.0: +rocm"):
+ # v1.1.0 switched to CMake HIP language feature
+ args += ["-DSPFFT_GPU_BACKEND=ROCM"]
+ rocm_arch = self.spec.variants["amdgpu_target"].value
+ if rocm_arch[0] != "none":
+ args += [self.define("CMAKE_HIP_ARCHITECTURES", rocm_arch)]
+ elif spec.satisfies("+rocm"):
archs = ",".join(self.spec.variants["amdgpu_target"].value)
args += [
"-DSPFFT_GPU_BACKEND=ROCM",