Commit Graph

11458 Commits

Author SHA1 Message Date
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
7cc490d94a Merge topic 'fix-filter-deprecation'
8ec6fc256 Fix deprecation warning in example

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !3203
2024-02-22 06:46:48 -05:00
Kenneth Moreland
d9b095a0b3 Merge topic 'nested-script-strings'
e1557f080 Fix issue with nested script strings in CI reproduce script

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3202
2024-02-22 06:46:21 -05:00
Kenneth Moreland
99b8b06a2f Merge topic 'fix-math-doxygen'
108176774 Fix doxygen warnings for math functions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3201
2024-02-22 06:45:55 -05:00
Kenneth Moreland
8ec6fc2562 Fix deprecation warning in example
One of the examples still had a deprecation warning from !3195.
2024-02-21 17:15:32 -05:00
Kenneth Moreland
e1557f080b Fix issue with nested script strings in CI reproduce script
The `reproduce_ci_env.py` script reads in the yaml for the GitLab
runners and replicates the runs using Docker. Through a quirk of the
implemenation of MR !3191, some of the scripts, which are expected to be
a list of command strings, get defined as a list of lists. This is fixed
by flattening this list of commands.
2024-02-21 16:43:59 -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
d8a7a9326c Merge topic 'guide-math'
e9ba5bf8c Add math section to users guide

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3198
2024-02-20 15:43:25 -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
66e27bf683 Merge topic 'fix-filterfield-doc'
97269b986 Fix documentation for methods from `FilterField`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3199
2024-02-17 07:46:12 -05:00
Kenneth Moreland
97269b9860 Fix documentation for methods from FilterField
MR !3195 moved methods from `FilterField` to `Filter`. Needed to update
the documentation to do this as well.
2024-02-16 20:38:53 +09: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
Vicente Bolea
f8b6526a38 Merge topic 'update-readthedocs-deps'
f6d513805 ci,docs: add user guide files to artifacts
d5a90cba1 update readthedocs-sphinx-search

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3179
2024-02-14 12:25:55 -05:00
Vicente Adolfo Bolea Sanchez
f6d5138052 ci,docs: add user guide files to artifacts 2024-02-14 12:06:20 -05:00
Vicente Adolfo Bolea Sanchez
d5a90cba1e update readthedocs-sphinx-search 2024-02-14 12:03:42 -05:00
Kenneth Moreland
716bfb6f90 Merge topic 'guide-worklet-errors'
05dbd670b Add worklet error handling section to users guide

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3196
2024-02-13 19:05:31 -05:00
Kenneth Moreland
05dbd670b3 Add worklet error handling section to users guide 2024-02-13 08:42:04 +09:00
Kenneth Moreland
24c993449a Merge topic 'doxygen-worklet-warnings'
46508487a Fix doxygen warnings with worklet base classes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3197
2024-02-12 17:06:36 -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
27ee972371 Merge topic 'docs-scripts'
d0feb8a2f Fix scripting in docs builds

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3191
2024-02-09 10:34:51 -05:00
Vicente Bolea
3613d8d699 Merge topic 'fix-typo-ctest-exclusion'
be76f6344 ci: fix typo for CTEST_EXCLUSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !3194
2024-02-08 17:44: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
Kenneth Moreland
d0feb8a2f7 Fix scripting in docs builds
The scripts for the docs CI was set up to build the documentation
(doxygen and user's guide) during the `before_script` stage. This was a
hack so that different versions of the docs could post the built pages
during the `script` phase. However, this causes problems with running in
`reproduce_ci_env.py`.

Instead, move the actual building of documentation to the `script`
stage.
2024-02-08 15:22:20 -05:00
Vicente Adolfo Bolea Sanchez
be76f63449 ci: fix typo for CTEST_EXCLUSION 2024-02-08 15:10:05 -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
Kenneth Moreland
efdf78953f Merge topic 'docs-warnings'
b4ba83689 Reduce doxygen warnings
9c42db5c7 Fix sphinx/breathe warning about function reference

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3192
2024-02-08 14:50:59 -05:00
Kenneth Moreland
eed88e35ad Merge topic 'ci-name-typo'
2983ce68a Fix typo in CI name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3193
2024-02-08 12:58:19 -05:00
Jefferson Amstutz
f4a7817695 update baseline images 2024-02-08 11:04:15 -06:00
Jefferson Amstutz
ea6136ede6 better strategy for collecting incoming ANARI-SDK namespaces 2024-02-08 11:04:15 -06:00
Vicente Adolfo Bolea Sanchez
383ec83991 update image name 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
2983ce68aa Fix typo in CI name 2024-02-08 10:49:28 -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
Kenneth Moreland
7eadea766f Merge topic 'ci-docs-stage'
68dd196a9 Update docs CI to match job naming convention

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !3190
2024-02-07 12:31:25 -05:00
Kenneth Moreland
68dd196a94 Update docs CI to match job naming convention
The naming convention for CI jobs is generally `stage:name` where the
`stage` matches the GitLab stage and the `name` is a description.
However, the documentation jobs broke this convention by being called
`docs:type` where `type` is `continuous`, `latest`, or `master`. This
breaks the convention because `docs` is not a stage and `type` does not
really describe the build. This fouls up things like
`reproduce_ci_env.py` that expect the first part of the name to be the
same as the stage.

This changes the names to `build:docs-continuous`, `build:docs-latest`,
and `build:docs-master`. This follows the convention of matching the
names with the stage.
2024-02-07 10:42:36 -05:00
zhe
59c545c15c add test and fix cuda long compiling issue 2024-02-05 16:14:19 -05:00
Kenneth Moreland
fc92eafb76 Merge topic 'fill-stride-arrays'
723c9ed2f Support `Fill` for `ArrayHandleStride`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3186
2024-02-05 10:34:54 -05:00
Kenneth Moreland
723c9ed2f0 Support 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 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.
2024-02-02 13:50:21 -05:00
Kenneth Moreland
3b1bfa0cdd Add reference documentation for Worklet types 2024-01-29 12:26:08 -05:00
Kenneth Moreland
4807417358 Merge topic 'deprecate-reduce-by-key-count'
d77c5812c Deprecate the GetCounts() method in Keys objects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3183
2024-01-29 12:25:10 -05:00
Kenneth Moreland
d77c5812c3 Deprecate the GetCounts() method in Keys objects
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.
2024-01-25 16:13:54 -05:00