vtk-m: Add sycl option to vtk-m package (#46996)
Some unused methods in VTK-m resulted in compile errors. These were not discovered because many compilers ignore unused methods in templated classes, but the SYCL compiler for Aurora gave an error.
This commit is contained in:
parent
49a8e84588
commit
b9e0914ab2
@ -0,0 +1,38 @@
|
||||
From 48e385af319543800398656645327243a29babfb Mon Sep 17 00:00:00 2001
|
||||
From: Kenneth Moreland <morelandkd@ornl.gov>
|
||||
Date: Tue, 15 Oct 2024 12:01:34 -0400
|
||||
Subject: [PATCH] Fix compile error for contour tree print
|
||||
|
||||
A print for one of the contour tree objects was referencing members of
|
||||
itself that don't seem to exist. This causes the Intel compiler to fail
|
||||
to compile it. I'm at a loss about how any other compiler does not error
|
||||
out, but at any rate this should be correct.
|
||||
---
|
||||
.../worklet/contourtree_distributed/HierarchicalContourTree.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/vtkm/filter/scalar_topology/worklet/contourtree_distributed/HierarchicalContourTree.h b/vtkm/filter/scalar_topology/worklet/contourtree_distributed/HierarchicalContourTree.h
|
||||
index a996d4292..e40d5f4f1 100644
|
||||
--- a/vtkm/filter/scalar_topology/worklet/contourtree_distributed/HierarchicalContourTree.h
|
||||
+++ b/vtkm/filter/scalar_topology/worklet/contourtree_distributed/HierarchicalContourTree.h
|
||||
@@ -663,7 +663,7 @@ std::string HierarchicalContourTree<FieldType>::PrintDotSuperStructure(const cha
|
||||
auto hyperarcsPortal = this->Hyperarcs.ReadPortal();
|
||||
auto regularNodeGlobalIdsPortal = this->RegularNodeGlobalIds.ReadPortal();
|
||||
auto whichIterationPortal = this->WhichIteration.ReadPortal();
|
||||
- auto whichRoundPortal = this->whichRound.ReadPortal();
|
||||
+ auto whichRoundPortal = this->WhichRound.ReadPortal();
|
||||
auto superarcsPortal = this->Superarcs.ReadPortal();
|
||||
auto superparentsPortal = this->Superparents.ReadPortal();
|
||||
for (vtkm::Id supernode = 0; supernode < this->Supernodes.GetNumberOfValues(); supernode++)
|
||||
@@ -708,7 +708,7 @@ std::string HierarchicalContourTree<FieldType>::PrintDotSuperStructure(const cha
|
||||
if (contourtree_augmented::NoSuchElement(superarcTo))
|
||||
{ // no superarc
|
||||
// if it occurred on the final round, it's the global root and is shown as the NULL node
|
||||
- if (whichRoundPortal.Get(superarcFrom) == this->NRounds)
|
||||
+ if (whichRoundPortal.Get(superarcFrom) == this->NumRounds)
|
||||
{ // root node
|
||||
outstream << "\tSN" << std::setw(1) << superarcFrom << " -> SA" << std::setw(1) << superarc
|
||||
<< " [label=\"S" << std::setw(1) << superarc << "\",style=dotted]\n";
|
||||
--
|
||||
2.46.2
|
||||
|
@ -0,0 +1,35 @@
|
||||
From c805a6039ea500cb96158cfc11271987c9f67aa4 Mon Sep 17 00:00:00 2001
|
||||
From: Kenneth Moreland <morelandkd@ornl.gov>
|
||||
Date: Tue, 15 Oct 2024 13:06:36 -0400
|
||||
Subject: [PATCH] Remove unused method from MIR tables
|
||||
|
||||
The implementation of this method was incorrect as it referenced a class
|
||||
member that does not exist. Many compilers allowed it in a templated
|
||||
class when the method was never used, but other compilers attempt to
|
||||
compile the inlined method regardless.
|
||||
|
||||
Since the method clearly is not needed, the easy solution is to remove
|
||||
it.
|
||||
---
|
||||
vtkm/filter/contour/worklet/mir/MIRTables.h | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/vtkm/filter/contour/worklet/mir/MIRTables.h b/vtkm/filter/contour/worklet/mir/MIRTables.h
|
||||
index 3dff3329e..a6f4d4f1f 100644
|
||||
--- a/vtkm/filter/contour/worklet/mir/MIRTables.h
|
||||
+++ b/vtkm/filter/contour/worklet/mir/MIRTables.h
|
||||
@@ -11400,11 +11400,6 @@ public:
|
||||
return FacesLookup[shape];
|
||||
}
|
||||
|
||||
- VTKM_EXEC vtkm::UInt8 GetPoint(vtkm::Id pointIndex) const
|
||||
- {
|
||||
- return this->CellFacePortal.Get(pointIndex);
|
||||
- }
|
||||
-
|
||||
private:
|
||||
typename vtkm::cont::ArrayHandle<vtkm::UInt8>::ReadPortalType MIRTablesDataPortal;
|
||||
typename vtkm::cont::ArrayHandle<vtkm::UInt16>::ReadPortalType MIRTablesIndicesPortal;
|
||||
--
|
||||
2.46.2
|
||||
|
@ -85,6 +85,7 @@ class VtkM(CMakePackage, CudaPackage, ROCmPackage):
|
||||
description="build openmp support",
|
||||
)
|
||||
variant("tbb", default=(sys.platform == "darwin"), description="build TBB support")
|
||||
variant("sycl", default=False, description="Build with SYCL backend")
|
||||
|
||||
depends_on("cmake@3.12:", type="build") # CMake >= 3.12
|
||||
depends_on("cmake@3.18:", when="+rocm", type="build") # CMake >= 3.18
|
||||
@ -132,6 +133,13 @@ class VtkM(CMakePackage, CudaPackage, ROCmPackage):
|
||||
conflicts("+rocm", when="~kokkos", msg="VTK-m does not support HIP without Kokkos")
|
||||
conflicts("+rocm", when="+virtuals", msg="VTK-m does not support virtual functions with ROCm")
|
||||
|
||||
# VTK-m uses the Kokkos SYCL backend.
|
||||
# If Kokkos provides multiple backends, the SYCL backend may or
|
||||
# may not be used for VTK-m depending on the default selected by Kokkos
|
||||
depends_on("kokkos +sycl", when="+kokkos +sycl")
|
||||
|
||||
conflicts("+sycl", when="~kokkos", msg="VTK-m does not support SYCL without Kokkos")
|
||||
|
||||
# Can build +shared+cuda after @1.7:
|
||||
conflicts("+shared", when="@:1.6 +cuda_native")
|
||||
conflicts("+cuda~cuda_native~kokkos", msg="Cannot have +cuda without a cuda device")
|
||||
@ -162,6 +170,14 @@ class VtkM(CMakePackage, CudaPackage, ROCmPackage):
|
||||
# https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3259
|
||||
patch("mr3259-thrust-is_arithmetic-fix.patch", when="@2.0.0:2.2.0 +cuda ^cuda@12.6:")
|
||||
|
||||
# VTK-m PR#3271
|
||||
# https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3271
|
||||
patch("mr3271-contourtree-print-error.patch", when="@2.0:2.2")
|
||||
|
||||
# VTK-m PR#3272
|
||||
# https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3272
|
||||
patch("mr3272-bad-mir-table-method.patch", when="@2.0:2.2")
|
||||
|
||||
# Disable Thrust patch that is no longer needed in modern Thrust
|
||||
patch(
|
||||
"https://github.com/Kitware/VTK-m/commit/4a4466e7c8cd44d2be2bd3fe6f359faa8e9547aa.patch?full_index=1",
|
||||
|
Loading…
Reference in New Issue
Block a user