Commit Graph

8 Commits

Author SHA1 Message Date
Kenneth Moreland
34412ff298 Deprecate ArrayHandle::Shrink
This method has been subsumed by Allocate with vtkm::CopyFlag::On.
2021-02-01 08:07:40 -07:00
Robert Maynard
ebf648906f FlyingEdges uses optimized Y axis algorithm for Kokkos device 2021-01-07 13:46:42 -05:00
Robert Maynard
251bd82b80 Significantly improve FlyingEdges performance across all devices
We now use SumYAxis when executing with CUDA for better memory patterns.
Instead of using the heavy Pass4/Pass4WithNormals, CUDA now uses a
2 pass approach with the second pass outputting the normals and
coordinates using with significantly less warp divergence
2020-05-22 15:53:49 -04:00
Robert Maynard
fa93738010 Rework FlyingEdges::Pass1 to handle NUMA and CUDA requirements.
First the Pass1 now uses WorkletVisitPointsWithCells as it is
faster since it doesn't compute some implicit boundary / neighborhood
info.

Second we reworked the logic around using `Fill` and a conditional
write of the edge case. The requirements of SMP when on a NUMA
machine is the complete opposite of what works great with CUDA.
2020-05-22 14:58:38 -04:00
Robert Maynard
769a10b47b FlyingEdge Normal and Point generation occurs in Pass4
By doing this in pass 4 we can remove numerous boundary condition
checks, improving the algorithm performance
2020-05-22 14:58:38 -04:00
Robert Maynard
2434254218 Flying Edges now works with multiple contours 2020-04-14 09:21:27 -04:00
Robert Maynard
1b256281f4 Convert contour worklet to expect isovalues to a std::vector
This reduces an ugly component of the Contour API
2020-03-25 08:23:10 -04:00
Robert Maynard
c2bab6c6bb Introduce FlyingEdges for 3d structured datasets 2020-03-25 08:23:10 -04:00