vtk-m/vtkm/cont
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
..
arg Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
cuda Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
internal Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
kokkos Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
openmp Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
serial Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
tbb Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
testing Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
testlib clang-tidy: fix readability-avoid-const-params-in-decls lints 2023-12-01 07:01:11 -05:00
Algorithm.h Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
ArrayCopy.cxx Add ArrayCopy specialization for Counting and Permutation array 2022-01-24 12:17:23 -07:00
ArrayCopy.h Update the developing algorithms section of the user's guide 2023-12-08 08:50:18 -05:00
ArrayCopyDevice.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayExtractComponent.h Implement VecTraits class for all types 2023-03-16 12:59:38 -06:00
ArrayGetValues.cxx Better fallback for ArrayGetValue 2022-01-03 10:08:39 -07:00
ArrayGetValues.h Implement VecTraits class for all types 2023-03-16 12:59:38 -06:00
ArrayHandle.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandle.h Support Fill for ArrayHandleStride 2024-02-02 13:50:21 -05:00
ArrayHandleBasic.cxx Make new style of ArrayHandle the expected style 2021-01-12 07:17:53 -07:00
ArrayHandleBasic.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
ArrayHandleBitField.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleCartesianProduct.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleCast.h Fix range warning in ArrayHandleCast 2022-02-01 11:42:16 -07:00
ArrayHandleCompositeVector.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleConcatenate.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleConstant.h Support component extraction from ArrayHandleConstant better 2023-08-18 09:44:19 -04:00
ArrayHandleCounting.h Advanced Compute Range 2023-07-04 11:54:56 -04:00
ArrayHandleDecorator.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleDiscard.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleExtractComponent.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
ArrayHandleGroupVec.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleGroupVecVariable.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleImplicit.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleIndex.cxx Advanced Compute Range 2023-07-04 11:54:56 -04:00
ArrayHandleIndex.h clang-tidy: fix readability-const-return-type lints 2023-12-01 07:01:11 -05:00
ArrayHandleMultiplexer.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleOffsetsToNumComponents.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandlePermutation.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleRandomStandardNormal.h use make_ArrayHandleZip 2020-06-25 09:51:06 -06:00
ArrayHandleRandomUniformBits.h remove inline initialization of seed 2020-06-17 12:47:54 -06:00
ArrayHandleRandomUniformReal.h the random source is still 64 bits 2020-06-17 12:58:03 -06:00
ArrayHandleRecombineVec.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
ArrayHandleReverse.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleRuntimeVec.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleSOA.cxx Support ArrayHandleSOA only for Vec value types 2021-01-06 13:20:58 -07:00
ArrayHandleSOA.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
ArrayHandleStride.cxx Support Fill for ArrayHandleStride 2024-02-02 13:50:21 -05:00
ArrayHandleStride.h Support Fill for ArrayHandleStride 2024-02-02 13:50:21 -05:00
ArrayHandleSwizzle.h Simplify ArrayHandleSwizzle 2020-11-25 09:28:49 -07:00
ArrayHandleTransform.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleUniformPointCoordinates.cxx Advanced Compute Range 2023-07-04 11:54:56 -04:00
ArrayHandleUniformPointCoordinates.h clang-tidy: fix readability-const-return-type lints 2023-12-01 07:01:11 -05:00
ArrayHandleView.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleXGCCoordinates.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayHandleZip.h Add GetNumberOfComponentsFlat method to ArrayHandle 2023-10-03 10:31:38 -04:00
ArrayPortal.h Fixup custom portal iterator logic. 2019-12-17 15:39:51 -05:00
ArrayPortalToIterators.h Add porting layer for future std features 2020-03-16 17:12:16 -06:00
ArrayRangeCompute.cxx Advanced Compute Range 2023-07-04 11:54:56 -04:00
ArrayRangeCompute.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
ArrayRangeComputeTemplate.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
ArrayRangeComputeTemplateInstantiationsIncludes.h Advanced Compute Range 2023-07-04 11:54:56 -04:00
AssignerPartitionedDataSet.cxx clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
AssignerPartitionedDataSet.h Fix doxygen groups 2022-09-09 10:37:31 +08:00
AtomicArray.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
BitField.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
BitField.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
BoundsCompute.cxx MultiBlock renamed to PartitionedDataSet 2019-09-03 12:42:23 -04:00
BoundsCompute.h MultiBlock renamed to PartitionedDataSet 2019-09-03 12:42:23 -04:00
BoundsGlobalCompute.cxx Use new ways to get array portal in control environment 2020-02-26 13:10:46 -07:00
BoundsGlobalCompute.h MultiBlock renamed to PartitionedDataSet 2019-09-03 12:42:23 -04:00
CastAndCall.h Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorBoundingIntervalHierarchy.cxx Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorBoundingIntervalHierarchy.h Define LastCell type in cell locator structure 2022-08-05 12:43:50 -06:00
CellLocatorChooser.h Deprecate DynamicCellSet and remove from code 2022-01-04 15:38:18 -07:00
CellLocatorGeneral.cxx Deprecate DynamicCellSet and remove from code 2022-01-04 15:38:18 -07:00
CellLocatorGeneral.h Expose the Variant helper class 2022-11-01 07:52:41 -06:00
CellLocatorPartitioned.cxx enable partitioned rendering by ghost blanking and depth sorting 2023-11-06 17:42:43 -07:00
CellLocatorPartitioned.h enable partitioned rendering by ghost blanking and depth sorting 2023-11-06 17:42:43 -07:00
CellLocatorRectilinearGrid.cxx Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorRectilinearGrid.h Define LastCell type in cell locator structure 2022-08-05 12:43:50 -06:00
CellLocatorTwoLevel.cxx Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorTwoLevel.h clang-tidy: fix readability-redundant-access-specifiers lints 2023-12-01 07:01:11 -05:00
CellLocatorUniformBins.cxx Add a new unstructured cell locator 2022-11-22 09:51:40 -05:00
CellLocatorUniformBins.h Add a new unstructured cell locator 2022-11-22 09:51:40 -05:00
CellLocatorUniformGrid.cxx Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorUniformGrid.h Define LastCell type in cell locator structure 2022-08-05 12:43:50 -06:00
CellSet.cxx clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
CellSet.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
CellSetExplicit.cxx CellSetExplicit: reword warning message 2021-11-01 12:33:41 -04:00
CellSetExplicit.h clang-tidy: fix modernize-use-override lints 2023-12-01 07:01:11 -05:00
CellSetExplicit.hxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CellSetExtrude.cxx Response to code review. 2021-03-12 21:14:50 +00:00
CellSetExtrude.h clang-tidy: fix modernize-use-override lints 2023-12-01 07:01:11 -05:00
CellSetList.h Enable changing policy used for library compiles 2020-03-19 15:07:07 -06:00
CellSetPermutation.h clang-tidy: fix readability-redundant-access-specifiers lints 2023-12-01 07:01:11 -05:00
CellSetSingleType.h clang-tidy: fix modernize-use-override lints 2023-12-01 07:01:11 -05:00
CellSetStructured.cxx conslidate the license statement 2019-04-17 10:57:13 -06:00
CellSetStructured.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
CMakeLists.txt Add hints to device adapter scheduler 2024-02-09 10:42:23 -05:00
ColorTable.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ColorTable.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ColorTableMap.h Reduce doxygen warnings 2024-02-08 10:57:11 -05:00
ColorTablePresets.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ColorTableSamples.h Update VTK-m code to use new Vec aliases 2019-07-31 12:55:40 -06:00
ConvertNumComponentsToOffsets.cxx Precompile ConvertNumComponentsToOffsets 2021-09-16 14:27:14 -06:00
ConvertNumComponentsToOffsets.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
CoordinateSystem.cxx Coordinate systems are stored as Fields 2022-11-11 06:17:58 -07:00
CoordinateSystem.h clang-tidy: fix modernize-use-override lints 2023-12-01 07:01:11 -05:00
DataSet.cxx ken's suggestion to remove const 2023-11-07 14:31:36 -05:00
DataSet.h combine changes from this branch and master 2023-12-19 13:18:06 -05:00
DataSetBuilderCurvilinear.cxx Add helper class to build curvilinear datasets. 2021-06-09 13:50:01 -04:00
DataSetBuilderCurvilinear.h Clarify dimension values for 2d, 1d. fix test 2021-06-09 16:16:34 -04:00
DataSetBuilderExplicit.cxx clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
DataSetBuilderExplicit.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
DataSetBuilderRectilinear.cxx clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
DataSetBuilderRectilinear.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
DataSetBuilderUniform.cxx clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
DataSetBuilderUniform.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
DefaultTypes.h.in Add ability to convert fields to known types 2021-08-19 07:10:20 -06:00
DeviceAdapter.h Remove ArrayManagerExecution 2020-12-08 13:18:44 -07:00
DeviceAdapterAlgorithm.h Clarify ScanExtended 2021-09-17 09:09:38 -06:00
DeviceAdapterList.h Add Kokkos backend 2020-08-12 13:55:24 -04:00
DeviceAdapterTag.cxx For VTK-m libs all includes of DeviceAdapterTagCuda happen from cuda files 2019-04-22 10:39:54 -04:00
DeviceAdapterTag.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
DIYMemoryManagement.cxx diy,mpi: Enable GPU AWARE MPI buffers 2023-05-30 12:13:03 -04:00
DIYMemoryManagement.h diy,mpi: Enable GPU AWARE MPI buffers 2023-05-30 12:13:03 -04:00
EnvironmentTracker.cxx Build diy as a library 2020-06-08 15:57:51 -05:00
EnvironmentTracker.h conslidate the license statement 2019-04-17 10:57:13 -06:00
Error.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
ErrorBadAllocation.h conslidate the license statement 2019-04-17 10:57:13 -06:00
ErrorBadDevice.cxx clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
ErrorBadDevice.h conslidate the license statement 2019-04-17 10:57:13 -06:00
ErrorBadType.cxx conslidate the license statement 2019-04-17 10:57:13 -06:00
ErrorBadType.h Deprecate VariantArrayHandle 2021-04-07 16:12:38 -06:00
ErrorBadValue.h conslidate the license statement 2019-04-17 10:57:13 -06:00
ErrorExecution.h conslidate the license statement 2019-04-17 10:57:13 -06:00
ErrorFilterExecution.h conslidate the license statement 2019-04-17 10:57:13 -06:00
ErrorInternal.h conslidate the license statement 2019-04-17 10:57:13 -06:00
ErrorUserAbort.h Add Abort execution feature 2023-02-06 14:29:58 -05:00
ExecutionAndControlObjectBase.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ExecutionObjectBase.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Field.cxx Change of Field::Association names. 2022-08-29 06:40:42 -04:00
Field.h next round of changes 2024-01-03 16:23:16 -07:00
FieldRangeCompute.cxx Compile more sources without device compiler 2022-01-03 08:23:04 -07:00
FieldRangeCompute.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
FieldRangeGlobalCompute.cxx Deprecate templated versions of Field::GetRange 2020-11-09 12:28:29 -07:00
FieldRangeGlobalCompute.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Initialize.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Initialize.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
Invoker.h Reverse Invoker, Dispatcher and Worklet dependency 2020-07-21 17:25:43 -06:00
Logging.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Logging.h Add documentation of logging 2024-01-04 15:25:07 -05:00
MergePartitionedDataSet.cxx add merge data sets filter 2023-11-21 15:31:59 -05:00
MergePartitionedDataSet.h add merge data sets filter 2023-11-21 15:31:59 -05:00
ParticleArrayCopy.cxx fix cuda compile, export function. 2020-06-19 10:57:30 -04:00
ParticleArrayCopy.h Support for dist-memory pathlines. 2021-02-05 09:40:50 -05:00
ParticleArrayCopy.hxx Hide Particle class members 2022-12-13 13:19:21 -05:00
PartitionedDataSet.cxx Use {} initialization of FieldCollection. 2022-08-29 16:53:17 -04:00
PartitionedDataSet.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
PointLocatorSparseGrid.cxx Fix slow ArrayCopy calls 2022-01-24 14:15:45 -07:00
PointLocatorSparseGrid.h Compile more sources without device compiler 2022-01-03 08:23:04 -07:00
RuntimeDeviceInformation.cxx diy,mpi: Enable GPU AWARE MPI buffers 2023-05-30 12:13:03 -04:00
RuntimeDeviceInformation.h implement return codes and protected virtual parsing of arguments 2021-06-23 17:58:38 +00:00
RuntimeDeviceTracker.cxx Add Abort execution feature 2023-02-06 14:29:58 -05:00
RuntimeDeviceTracker.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
SerializableTypeString.h Add missing types to serialization of UnknownArrayHandle 2021-01-13 09:19:34 -07:00
Serialization.h conslidate the license statement 2019-04-17 10:57:13 -06:00
Storage.cxx Add standard support for read-only storage 2020-12-10 13:39:28 -07:00
Storage.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
StorageList.h Unify common storage types 2021-05-13 08:18:33 -06:00
Timer.cxx Fix intermittent UnitTestTimer failures with CUDA 2022-07-12 08:52:12 -06:00
Timer.h Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
Token.cxx clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Token.h Pass Token::Reference by value 2020-06-11 11:51:42 -06:00
TryExecute.cxx Add Abort execution feature 2023-02-06 14:29:58 -05:00
TryExecute.h Add Abort execution feature 2023-02-06 14:29:58 -05:00
UncertainArrayHandle.h Merge topic 'less-brigand' 2022-02-10 20:36:50 -05:00
UncertainCellSet.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
UnknownArrayHandle.cxx Merge topic 'type-order' 2023-12-18 13:57:31 -05:00
UnknownArrayHandle.h Enable new instances of unknown arrays with dynamic sizes 2023-11-07 16:59:25 -05:00
UnknownCellSet.cxx Fix some copy/paste errors with comments and variable names 2021-12-16 08:20:42 -07:00
UnknownCellSet.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Variant.h Expose the Variant helper class 2022-11-01 07:52:41 -06:00
vtkm.module Add Abort execution feature 2023-02-06 14:29:58 -05:00