vtk-m/vtkm
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
..
cont Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
exec Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
filter Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
internal clang-tidy: fix modernize-redundant-void-arg lints 2023-12-01 07:01:11 -05:00
interop better strategy for collecting incoming ANARI-SDK namespaces 2024-02-08 11:04:15 -06:00
io Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
random Add module mechanism 2022-10-26 12:51:05 -06:00
rendering Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
source Oscillator: use a type of the right size for oIdx 2023-12-01 07:01:11 -05:00
testing Implement VecTraits class for all types 2023-03-16 12:59:38 -06:00
thirdparty loguru: do not declare an install interface 2023-12-04 11:34:19 -05:00
worklet Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
.gitattributes
Assert.h
Atomic.h Switch Kokkos atomic functions to use desul library 2023-06-28 14:34:54 -04:00
BinaryOperators.h
BinaryPredicates.h
Bitset.h
Bounds.h revert superfluous corners distance 2024-01-04 14:13:01 -07:00
CellClassification.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CellShape.h
CellTraits.h
CMakeLists.txt Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Deprecated.h
ErrorCode.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
Flags.h Update the developing algorithms section of the user's guide 2023-12-08 08:50:18 -05:00
Geometry.h
Geometry.hxx
Hash.h
ImplicitFunction.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
List.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
LowerBound.h
Math.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
Math.h.in Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
Matrix.h
NewtonsMethod.h
Pair.h
Particle.h Removing particle property num punctures 2023-08-16 18:23:22 -07:00
Range.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
RangeId2.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
RangeId3.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
RangeId.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
StaticAssert.h
Swap.h Fix compile issues when using cuda 12 2023-02-06 12:26:55 -05:00
TopologyElementTag.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Transform3D.h conslidate the license statement 2019-04-17 10:57:13 -06:00
Tuple.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
Tuple.h.in Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
TypeList.h
Types.h Add VTK-m User's Guide to source 2023-10-17 11:31:27 -04:00
TypeTraits.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
UnaryPredicates.h
UpperBound.h
VecAxisAlignedPointCoordinates.h Add VecFlat class 2020-12-16 17:22:44 -07:00
VecFlat.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
VecFromPortal.h Improve = operators in VecFromPortal 2023-08-08 21:43:01 -04:00
VecFromPortalPermute.h
VectorAnalysis.h
VecTraits.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
VecVariable.h
Version.h.in
vtkm.module Add module mechanism 2022-10-26 12:51:05 -06:00