VTK-m merge requestshttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests2024-02-23T11:35:34-05:00https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3188add test and fix cuda long compiling issue2024-02-23T11:35:34-05:00Zhe Wanggodenwangzhe@gmail.comadd test and fix cuda long compiling issueAvoid using the invoke to call worklet for ArrayHandleRecombineVec. This may cause cuda long compiling issue (cuda 12.x). More information can be found in this [issue](https://gitlab.kitware.com/vtk/vtk-m/-/issues/809).Avoid using the invoke to call worklet for ArrayHandleRecombineVec. This may cause cuda long compiling issue (cuda 12.x). More information can be found in this [issue](https://gitlab.kitware.com/vtk/vtk-m/-/issues/809).Zhe Wanggodenwangzhe@gmail.comZhe Wanggodenwangzhe@gmail.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3187Draft: Add scheduling parameters for kokkos devices.2024-03-19T15:37:56-04:00Dave PugmireDraft: Add scheduling parameters for kokkos devices.Set parameters for kokkos scheduler.Set parameters for kokkos scheduler.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3186Support `Fill` for `ArrayHandleStride`2024-02-05T10:34:58-05:00Kenneth MorelandSupport `Fill` for `ArrayHandleStride`Previously, if you called `Fill` on an `ArrayHandleStride`, you would get
an exception that said the feature was not supported. It turns out that
filling values is very useful in situations where, for example, you need to
initialize an a...Previously, if you called `Fill` on an `ArrayHandleStride`, you would get
an exception that said the feature was not supported. It turns out that
filling values is very useful in situations where, for example, you need to
initialize an array when processing an unknown type (and thus dealing with
extracted components).
This implementation of `Fill` first attempts to call `Fill` on the
contained array. This only works if the stride is set to 1. If this does
not work, then the code leverages the precompiled `ArrayCopy`. It does this
by first creating a new `ArrayHandleStride` containing the fill value and a
modulo of 1 so that value is constantly repeated. It then reconstructs an
`ArrayHandleStride` for itself with a modified size and offset to match the
start and end indices.
Referencing the `ArrayCopy` was tricky because it kept creating circular
dependencies among `ArrayHandleStride`, `ArrayExtractComponent`, and
`UnknownArrayHandle`. These dependencies were broken by having
`ArrayHandleStride` directly use the internal `ArrayCopyUnknown` function
and to use a forward declaration of `UnknownArrayHandle` rather than
including its header.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3185Draft: fix cuda long compiling issue2024-02-05T16:23:42-05:00Zhe Wanggodenwangzhe@gmail.comDraft: fix cuda long compiling issueAvoid using the invoke to call worklet for ArrayHandleRecombineVec. This may cause cuda long compiling issue (cuda 12.x)Avoid using the invoke to call worklet for ArrayHandleRecombineVec. This may cause cuda long compiling issue (cuda 12.x)Zhe Wanggodenwangzhe@gmail.comZhe Wanggodenwangzhe@gmail.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3184Add reference documentation for Worklet types2024-02-12T02:40:54-05:00Kenneth MorelandAdd reference documentation for Worklet typeshttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3183Deprecate the GetCounts() method in Keys objects2024-01-29T12:25:18-05:00Kenneth MorelandDeprecate the GetCounts() method in Keys objectsThe `vtkm::worklet::Keys` object held a `SortedValuesMap` array, an
`Offsets` array, a `Counts` array, and (optionally) a `UniqueKeys` array.
Of these, the `Counts` array is redundant because the counts are trivially
computed by subtract...The `vtkm::worklet::Keys` object held a `SortedValuesMap` array, an
`Offsets` array, a `Counts` array, and (optionally) a `UniqueKeys` array.
Of these, the `Counts` array is redundant because the counts are trivially
computed by subtracting adjacent entries in the offsets array. This pattern
shows up a lot in VTK-m, and most places we have moved to removing the
counts and just using the offsets.
This change removes the `Count` array from the `Keys` object. Where the
count is needed internally, adjacent offsets are subtracted. The deprecated
`GetCounts` method is implemented by copying values into a new array.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3182Draft: Use async termination.2024-03-19T15:33:31-04:00Dave PugmireDraft: Use async termination.Redo the communication for streamlines.Redo the communication for streamlines.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3181Deprecate boundary condition in neighborhood worklets2024-01-19T11:55:08-05:00Kenneth MorelandDeprecate boundary condition in neighborhood workletsThis feature was introduced but is never used anywhere. It is up to the
worklet subclass to determine what to do with the boundaries with the
`BoundaryState` object.
In the future we may have a neighborhood worklet of compile-fixed size...This feature was introduced but is never used anywhere. It is up to the
worklet subclass to determine what to do with the boundaries with the
`BoundaryState` object.
In the future we may have a neighborhood worklet of compile-fixed sized
for better memory access efficiency. If that is the case, we can
reintroduce this idea. We can decide on the right implementation if that
design ever comes to pass.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3180update minimum ANARI-SDK version required2024-02-08T14:55:48-05:00Jefferson Amstutzjamstutz@nvidia.comupdate minimum ANARI-SDK version required@vbolea this will require updating the Kokkos Docker image.@vbolea this will require updating the Kokkos Docker image.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3179update readthedocs-sphinx-search2024-02-14T12:26:04-05:00Vicente Boleavicente.bolea@kitware.comupdate readthedocs-sphinx-searchNeeded to address vulnerability https://github.com/readthedocs/readthedocs-sphinx-search/security/advisories/GHSA-xgfm-fjx6-62mjNeeded to address vulnerability https://github.com/readthedocs/readthedocs-sphinx-search/security/advisories/GHSA-xgfm-fjx6-62mjVicente Boleavicente.bolea@kitware.comVicente Boleavicente.bolea@kitware.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3178ci,ascent: remove ascent build2024-01-05T12:37:09-05:00Vicente Boleavicente.bolea@kitware.comci,ascent: remove ascent buildThe ascent machine has been decommissioned, in this MR we remove the build that used to run in Ascent. If the time comes and we have access to another similar system we can reuse the scripts (recover it inspecting the git log) that we ar...The ascent machine has been decommissioned, in this MR we remove the build that used to run in Ascent. If the time comes and we have access to another similar system we can reuse the scripts (recover it inspecting the git log) that we are removing hereVicente Boleavicente.bolea@kitware.comVicente Boleavicente.bolea@kitware.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3177Add documentation of logging2024-01-05T09:49:50-05:00Kenneth MorelandAdd documentation of logginghttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3176kokkos,hip: fix rocthrust dependency2024-01-17T08:10:59-05:00Vicente Boleavicente.bolea@kitware.comkokkos,hip: fix rocthrust dependencyBackport of !3175Backport of !3175Vicente Boleavicente.bolea@kitware.comVicente Boleavicente.bolea@kitware.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3175kokkos,hip: fix rocthrust dependency2024-02-14T12:15:11-05:00Vicente Boleavicente.bolea@kitware.comkokkos,hip: fix rocthrust dependencyEven after the previous iteration thrust was not being used, in this MR we re-arrange the source code so that THRUST is being included. As this changes add thrust to the kokkos device adaptor, this MR also solve two errors:
- One observ...Even after the previous iteration thrust was not being used, in this MR we re-arrange the source code so that THRUST is being included. As this changes add thrust to the kokkos device adaptor, this MR also solve two errors:
- One observed in Spack occurring due to the fact that rocthrust and rocprim is not bundled with ROCm, this could be fixed by having linking our newly vtkm_cont_kokkos target with rocprim.
- One observed in our CI consisting in the `roc::rocthrust` target not discriminating between sources files of different languages. For instance the can apply HIP compiler options to the CXX source files leading to build errors. This was resolved by adding a new library, vtkm_cont_kokkos, which contains sources files that will be compiled with HIP and wraps the rocthrust dependency.
A byproduct of this is that we cannot build anymore with static kokkos lib without PIC which in any case makes a lot of sense. The reason for this is that we cannot mix symbol existing static and share libs while linking a binary.Vicente Boleavicente.bolea@kitware.comVicente Boleavicente.bolea@kitware.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3174Changing VTK-m clip tables2023-12-21T15:42:55-05:00Abhishek Yenpureabhi.yenpure@kitware.comChanging VTK-m clip tableshttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3173Increase test timeout for debug builds2023-12-19T12:04:56-05:00Kenneth MorelandIncrease test timeout for debug buildsMost of the CI builds are release, and the timeout set for them makes
sense. But for those debug builds, some of the longer-running tests
often exceed the provided timeout. To rightsize the timeouts, make them
longer for debug builds.Most of the CI builds are release, and the timeout set for them makes
sense. But for those debug builds, some of the longer-running tests
often exceed the provided timeout. To rightsize the timeouts, make them
longer for debug builds.https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3172Add advanced types chapter to user's guide2023-12-28T11:24:40-05:00Kenneth MorelandAdd advanced types chapter to user's guidehttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3171Favor base types used by VTK-m when making new basic array2023-12-18T13:57:36-05:00Kenneth MorelandFavor base types used by VTK-m when making new basic arrayWhen calling `NewInstanceBasic` on an `UnknownArrayHandle`, all C base
types will be tried. In some cases, multiple type will match the same
array. When this happens, favor types used by VTK-m (e.g. `long long`
over `long`).
Backport: r...When calling `NewInstanceBasic` on an `UnknownArrayHandle`, all C base
types will be tried. In some cases, multiple type will match the same
array. When this happens, favor types used by VTK-m (e.g. `long long`
over `long`).
Backport: releasehttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3170cmake: VTKm_ENABLE_KOKKOS_THRUST disabled by default2023-12-29T21:35:09-05:00Vicente Boleavicente.bolea@kitware.comcmake: VTKm_ENABLE_KOKKOS_THRUST disabled by default(cherry picked from commit 6664fd1e5a5ed8baa84d96faa4d673229d8869aa)
Backport of !3168(cherry picked from commit 6664fd1e5a5ed8baa84d96faa4d673229d8869aa)
Backport of !3168Vicente Boleavicente.bolea@kitware.comVicente Boleavicente.bolea@kitware.comhttps://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/3169Allow floating-point isovalues for contours of integer fields2024-01-02T11:29:01-05:00Kenneth MorelandAllow floating-point isovalues for contours of integer fieldsThe flying edges version of the contouring filter converted the isovalues
provided into the same type as the field. This is fine for a floating point
field, but for an integer field the isovalue was truncated to the nearest
integer.
Thi...The flying edges version of the contouring filter converted the isovalues
provided into the same type as the field. This is fine for a floating point
field, but for an integer field the isovalue was truncated to the nearest
integer.
This is problematic because it is common to provide a fractional isovalue
(usually N + 0.5) for integer fields to avoid degenerate cases of the
contour intersecting vertices. It also means the behavior changes between
an integer type that is directly supported (like a `signed char`) or an
integer type that is not directly supported and converted to a floating
point field (like potentially a `char`).
This change updates the worklets to allow the isovalue to have a different
type than the field and to always use a floating point type for the
isovalue.
Backport: release