Commit Graph

8179 Commits

Author SHA1 Message Date
Kenneth Moreland
310579b9a7 Load options from environment variables
Some common VTK-m options such as the device and log level could be
specified on the command line but not through environment variables. It is
not always possible to set VTK-m command line options, so environment
variables are added.

Also added documentation to the user's guide about what options are
available and how to set them.
2024-07-02 12:47:34 -04:00
Kenneth Moreland
41a088f6ce Add guide chapter on unknown array handle 2024-06-28 13:42:23 -04:00
Kenneth Moreland
c6ad00aefd Merge topic 'guide-fancy-arrays'
3e6963092 Add guide chapter on fancy array handles

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3231
2024-06-21 14:45:38 -04:00
Kenneth Moreland
3e69630925 Add guide chapter on fancy array handles 2024-06-05 17:51:14 -04:00
Kenneth Moreland
3933adc450 Merge topic 'obsolete-thrust-patch'
4a4466e7c Disable Thrust patch that is no longer needed in modern Thrust

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3230
2024-06-04 16:46:23 -04:00
Kenneth Moreland
4a4466e7c8 Disable Thrust patch that is no longer needed in modern Thrust
There is a Thrust patch that works around an issue in Thrust 1.9.4
(https://github.com/NVIDIA/thrust/issues/972). The underlying issue
should be fixed in recent versions. In recent versions of CUDA, the patch
breaks (https://gitlab.kitware.com/vtk/vtk-m/-/issues/818).

This change fixes the problem by disabling the patch where it is not
needed.
2024-06-04 11:01:43 -04:00
Mingzhe Li
a77e5b3c63 Compute volume and select top volume branches 2024-05-17 14:16:50 -07:00
Gunther Weber
3406ba3113 Merge topic 'fix-mc-connectivity'
27002d020 Fix distributed contour tree for marching cubes without using full boundary

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <morelandkd@ornl.gov>
Merge-request: !3218
2024-05-17 13:58:45 -04:00
Kenneth Moreland
f2b73fe2e4 Merge topic 'safe-cuda-runtime-config'
f42f59d68 Fix crash when CUDA device is disabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Gunther Weber <ghweber@lbl.gov>
Merge-request: !3216
2024-05-17 08:20:39 -04:00
Kenneth Moreland
a87adb479f Merge topic 'safe-cuda-runtime-config' into release-2.1
f42f59d68 Fix crash when CUDA device is disabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Gunther Weber <ghweber@lbl.gov>
Merge-request: !3216
2024-05-17 08:20:38 -04:00
Gunther H. Weber
27002d0209 Fix distributed contour tree for marching cubes without using full boundary 2024-05-16 11:51:38 -07:00
Kenneth Moreland
98168fc2ff Merge topic 'guide-memory-layout'
8e570c8b6 Add user guide chapter on memory layout in ArrayHandles

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3219
2024-05-15 16:06:15 -04:00
Kenneth Moreland
c9417825e5 Merge topic 'fix-old-cuda-atomics'
78e06d5dc Fix old cuda atomics

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3209
2024-05-15 15:42:51 -04:00
Kenneth Moreland
af3ab951c4 Merge topic 'fix-old-cuda-atomics' into release-2.1
78e06d5dc Fix old cuda atomics

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3209
2024-05-15 15:42:51 -04:00
Kenneth Moreland
8e570c8b64 Add user guide chapter on memory layout in ArrayHandles 2024-05-13 08:12:22 -06:00
Jefferson Amstutz
232d9dde9c fix ANARIMapperVolume usage edge cases (empty actor is valid) 2024-05-13 08:40:49 -05:00
Jefferson Amstutz
ea30203836 minor cleanups 2024-05-13 08:40:49 -05:00
Qi Wu
86e6e6e65b support unstructured cell (point-centered only) 2024-05-13 08:40:49 -05:00
Gunther H. Weber
124c58eb48 Minor fixes for distributed contour tree example 2024-05-10 15:09:03 -07:00
Kenneth Moreland
f42f59d685 Fix crash when CUDA device is disabled
There was an issue where if VTK-m was compiled with CUDA support but then
run on a computer where no CUDA device was available, an inappropriate
exception was thrown (instead of just disabling the device). The
initialization code should now properly check for the existance of a CUDA
device.
2024-05-03 17:03:20 -04:00
Kenneth Moreland
72c17927d3 Merge topic 'extract-geometry-permutation'
49518e505 Fix bug with ExtractGeometry filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3215
2024-05-03 13:06:32 -04:00
Kenneth Moreland
49518e5054 Fix bug with ExtractGeometry filter
The `ExtractGeometry` filter was outputing datasets containing
`CellSetPermutation` as the representation for the cells. Although this is
technically correct and a very fast implementation, it is essentially
useless. The problem is that any downstream processing will have to know
that the data has a `CellSetPermutation`. None do (because the permutation
can be on any other cell set type, which creates an explosion of possible
cell types).

Like was done with `Threshold` a while ago, this problem is fixed by deep
copying the result into a `CellSetExplicit`. This behavior is consistent
with VTK.
2024-05-03 09:22:56 -04:00
Kenneth Moreland
78e06d5dcd Fix old cuda atomics
There are some overloads for atomic adds of floating point numbers for
older versions of cuda that do not include them directly. These were
misnamed and thus not properly overloading the generic implementation.
This caused compile errors with older versions of cuda.
2024-04-02 13:45:15 -04:00
Dave Pugmire
b6c69774fc Add comment addressing the missing else 2024-04-01 14:54:57 -04:00
Dave Pugmire
7fb1821b7c Fix issue (findBinIdx won't fail if point outside dataset). 2024-03-28 15:31:34 -04:00
Dave Pugmire
6996466752 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into uniformbin_locator_bincheck 2024-03-28 12:45:20 -04:00
Spiros Tsalikis
fc3845ec89 AtomicArrayExecutionObject: Allow order of atomic operations 2024-03-22 15:02:55 -04:00
Kenneth Moreland
427c8135c0 Merge topic 'guide-cells'
282aa8295 Add guide chapter on working with cells

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3206
2024-03-14 13:11:46 -04:00
Jefferson Amstutz
b7ef246789 fix assumption that ANARIMapperVolume only consumed point data 2024-03-13 13:41:05 -05:00
Kenneth Moreland
282aa82957 Add guide chapter on working with cells 2024-03-13 09:18:33 -04:00
Kenneth Moreland
28683930e3 Updated constructors for mesh info classes to conform with other filters
The `CellMeasures` and `MeshQuality` filters had constructors that took the
metric that the filter should generate. However, this is different than the
iterface of the rest of the filters. To make the interface more consistent,
these filters now have a default (no argument) constructor, and the metric
to compute is selected via a method. This makes it more clear what is being
done.

In addition, the documentation for these two classes is updated.
2024-03-07 20:47:09 -05:00
Jefferson Amstutz
14deacbdd8 add attribute names via USD extension 2024-03-04 14:33:41 -06:00
Jefferson Amstutz
c90fb4bc22 Merge topic 'anari_volume_parameter_fix'
149e7f9e1 set spatial field parameter on volumes with the correct name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3204
2024-03-04 11:43:58 -05:00
Kenneth Moreland
e326515452 Merge topic 'guide-filters'
2fe05097e Add continued filter implementation chapter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3200
2024-02-29 06:55:56 -05:00
Kenneth Moreland
2fe05097eb Add continued filter implementation chapter 2024-02-28 12:51:07 -05:00
Jefferson Amstutz
149e7f9e1b set spatial field parameter on volumes with the correct name 2024-02-28 10:31:31 -06:00
Zhe Wang
65a3118d0a Merge topic 'long_cuda_compiling_issue'
59c545c15 add test and fix cuda long compiling issue

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Abhishek Yenpure <abhi.yenpure@kitware.com>
Merge-request: !3188
2024-02-23 11:35:27 -05:00
Kenneth Moreland
108176774f Fix doxygen warnings for math functions
Doxygen was having trouble with `@copydoc` when copying documentation of
templated functions. The doxygen comments in `Math.h` is restructured to
not need `@copydoc`, and the documentation is generated correctly.
2024-02-21 16:31:36 -05:00
Kenneth Moreland
e9ba5bf8c7 Add math section to users guide 2024-02-20 11:03:04 +09:00
Kenneth Moreland
af28ec2766 Merge topic 'hints'
c44f68649 Add hints to device adapter scheduler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Dave Pugmire <dpugmire@gmail.com>
Merge-request: !3189
2024-02-17 07:47:19 -05:00
Kenneth Moreland
eba02710de Merge topic 'deprecate-filter-field'
a17ebdf52 Deprecated `vtkm::filter::FilterField`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3195
2024-02-14 19:05:25 -05:00
Kenneth Moreland
46508487a0 Fix doxygen warnings with worklet base classes
Some versions of doxygen have issues with documenting `typedef`s (or the
equivalent `using`). This was causing warnings with doxygen and failing
to create some of the documentation. This fixes the problem by moving the
documentation to the classes things are defined to.
2024-02-12 15:37:40 +09:00
Kenneth Moreland
a17ebdf52a Deprecated vtkm::filter::FilterField
The original design of the filter base class required several specialized
base classes to control what information was pulled from the input
`DataSet` and provided to the derived class. Since the filter base class was
redesigned, the derived classes all get a `DataSet` and pull their own
information from it. Thus, most specialized filter base classes became
unnecessary and removed.

The one substantial exception was the `FilterField`. This filter base class
managed input and output arrays. This was kept separate from the base
`Filter` because not all filters need the ability to select this
information.

That said, this separation has not been particularly helpful. There are
several other features of `Filter` that does not apply to all subclasses.
Furthermore, there are several derived filters that are using `FilterField`
merely to pick a single part, like selecting a coordinate system, and
ignoring the rest of the abilities.

Thus, it makes more sense to deprecate `FilterField` and have these classes
inherit directly from `Filter`.
2024-02-12 08:13:19 +09:00
Kenneth Moreland
c44f686496 Add hints to device adapter scheduler
The `DeviceAdapter` provides an abstract interface to the accelerator
devices worklets and other algorithms run on. As such, the programmer has
less control about how the device launches each worklet. Each device
adapter has its own configuration parameters and other ways to attempt to
optimize how things are run, but these are always a universal set of
options that are applied to everything run on the device. There is no way
to specify launch parameters for a particular worklet.

To provide this information, VTK-m now supports `Hint`s to the device
adapter. The `DeviceAdapterAlgorithm::Schedule` method takes a templated
argument that is of the type `HintList`. This object contains a template
list of `Hint` types that provide suggestions on how to launch the parallel
execution. The device adapter will pick out hints that pertain to it and
adjust its launching accordingly.

These are called hints rather than, say, directives, because they don't
force the device adapter to do anything. The device adapter is free to
ignore any (and all) hints. The point is that the device adapter can take
into account the information to try to optimize for itself.

A provided hint can be tied to specific device adapters. In this way, an
worklet can further optimize itself. If multiple hints match a device
adapter, the last one in the list will be selected.

The `Worklet` base now has an internal type named `Hints` that points to a
`HintList` that is applied when the worklet is scheduled. Derived worklet
classes can provide hints by simply defining their own `Hints` type.
2024-02-09 10:42:23 -05:00
Kenneth Moreland
fa2eb79b07 Merge topic 'guide-worklet-types'
3b1bfa0cd Add reference documentation for Worklet types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3184
2024-02-08 16:05:26 -05:00
Jefferson Amstutz
9d1c86c3c3 Merge topic 'anari_sdk_upgrade'
f4a781769 update baseline images
ea6136ede better strategy for collecting incoming ANARI-SDK namespaces
383ec8399 update image name
24da5da20 update minimum ANARI-SDK version required

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3180
2024-02-08 14:55:46 -05:00
Jefferson Amstutz
ea6136ede6 better strategy for collecting incoming ANARI-SDK namespaces 2024-02-08 11:04:15 -06:00
Jefferson Amstutz
24da5da202 update minimum ANARI-SDK version required 2024-02-08 11:04:15 -06:00
Kenneth Moreland
b4ba836890 Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
Kenneth Moreland
9c42db5c71 Fix sphinx/breathe warning about function reference
The breathe parser was having trouble with using `{}` inside of a
declspec for the return value. Replace this with parenthesis, which
cannot be confused with the openning of the function.
2024-02-08 10:39:46 -05:00