summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorkwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com>2023-01-13 12:41:57 -0600
committerGitHub <noreply@github.com>2023-01-13 12:41:57 -0600
commit229ee7cad9af24e55be007710edb475edf9ec5bb (patch)
treed3e55d6531118ed33fd9757f9504de92764bd3bc /var
parent85e2fb0c4dcc35c70cb4b521a7c411800ab541b4 (diff)
downloadspack-229ee7cad9af24e55be007710edb475edf9ec5bb.tar.gz
spack-229ee7cad9af24e55be007710edb475edf9ec5bb.tar.bz2
spack-229ee7cad9af24e55be007710edb475edf9ec5bb.tar.xz
spack-229ee7cad9af24e55be007710edb475edf9ec5bb.zip
Paraview rocm (#34790)
* paraview: add `rocm` variant This conflicts with CUDA and requires at least ParaView 5.11.0. More dependencies are also needed. * E4S: Add ParaView for ROCm and CUDA stacks * DAV SDK: Update ParaView version and GPU variants * Verify using hipcc vs amdclang++ for newer hip Co-authored-by: Ben Boeckel <ben.boeckel@kitware.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py18
-rw-r--r--var/spack/repos/builtin/packages/paraview/package.py21
2 files changed, 25 insertions, 14 deletions
diff --git a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
index 46cf3536ff..5cf1b51663 100644
--- a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
+++ b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
@@ -155,22 +155,14 @@ class EcpDataVisSdk(BundlePackage, CudaPackage, ROCmPackage):
depends_on("py-cinemasci", when="+cinema")
+ # ParaView needs @5.11: in order to use CUDA/ROCM, therefore it is the minimum
+ # required version since GPU capability is desired for ECP
dav_sdk_depends_on(
- "paraview@5.10:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst",
+ "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst",
when="+paraview",
- propagate=["hdf5", "adios2"],
+ propagate=["adios2", "cuda", "hdf5", "rocm"] + amdgpu_target_variants + cuda_arch_variants,
)
- dav_sdk_depends_on("libcatalyst+mpi", when="+paraview")
-
- # ParaView needs @5.11: in order to use cuda and be compatible with other
- # SDK packages.
- depends_on("paraview +cuda", when="+paraview +cuda ^paraview@5.11:")
- for cuda_arch in cuda_arch_variants:
- depends_on(
- "paraview {0}".format(cuda_arch),
- when="+paraview {0} ^paraview@5.11:".format(cuda_arch),
- )
- depends_on("paraview ~cuda", when="+paraview ~cuda")
+ dav_sdk_depends_on("libcatalyst@2:+mpi", when="+paraview")
conflicts("paraview@master", when="+paraview")
dav_sdk_depends_on("visit+mpi+python+silo", when="+visit", propagate=["hdf5", "adios2"])
diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py
index 6a6768d706..4c517d4c46 100644
--- a/var/spack/repos/builtin/packages/paraview/package.py
+++ b/var/spack/repos/builtin/packages/paraview/package.py
@@ -9,7 +9,7 @@ import os
from spack.package import *
-class Paraview(CMakePackage, CudaPackage):
+class Paraview(CMakePackage, CudaPackage, ROCmPackage):
"""ParaView is an open-source, multi-platform data analysis and
visualization application. This package includes the Catalyst
in-situ library for versions 5.7 and greater, otherwise use the
@@ -113,6 +113,9 @@ class Paraview(CMakePackage, CudaPackage):
conflicts("+openpmd", when="~adios2 ~hdf5", msg="openPMD needs ADIOS2 and/or HDF5")
conflicts("~shared", when="+cuda")
conflicts("+cuda", when="@5.8:5.10")
+ conflicts("+rocm", when="+cuda")
+ conflicts("+rocm", when="use_vtkm=off")
+ conflicts("paraview@:5.10", when="+rocm")
# Legacy rendering dropped in 5.5
# See commit: https://gitlab.kitware.com/paraview/paraview/-/commit/798d328c
conflicts("~opengl2", when="@5.5:")
@@ -143,6 +146,7 @@ class Paraview(CMakePackage, CudaPackage):
conflicts("cuda_arch=%d" % _arch, when="+cuda", msg="ParaView requires cuda_arch >= 20")
depends_on("cmake@3.3:", type="build")
+ depends_on("cmake@3.21:", type="build", when="+rocm")
depends_on("ninja", type="build")
@@ -209,6 +213,12 @@ class Paraview(CMakePackage, CudaPackage):
depends_on("xz")
depends_on("zlib")
depends_on("libcatalyst@2:", when="+libcatalyst")
+ depends_on("hip@5.2:", when="+rocm")
+ for target in ROCmPackage.amdgpu_targets:
+ depends_on(
+ "kokkos +rocm amdgpu_target={0}".format(target),
+ when="+rocm amdgpu_target={0}".format(target),
+ )
# Older builds of pugi export their symbols differently,
# and pre-5.9 is unable to handle that.
@@ -587,6 +597,15 @@ class Paraview(CMakePackage, CudaPackage):
if "+advanced_debug" in spec:
cmake_args.append("-DVTK_DEBUG_LEAKS:BOOL=ON")
+ if spec.satisfies("@5.11:"):
+ cmake_args.append("-DPARAVIEW_USE_HIP:BOOL=%s" % variant_bool("+rocm"))
+ if "+rocm" in spec:
+ archs = spec.variants["amdgpu_target"].value
+ if archs != "none":
+ arch_str = ",".join(archs)
+ cmake_args.append("-DCMAKE_HIP_ARCHITECTURES=%s" % arch_str)
+ cmake_args.append("-DKokkos_CXX_COMPILER=%s" % spec["hip"].hipcc)
+
if "+catalyst" in spec:
cmake_args.append("-DVTK_MODULE_ENABLE_ParaView_Catalyst=YES")
if "+python" in spec: