vtk-m2/docs/changelog
Robert Maynard 047b646517 VTK-m now provides better scheduling parameters controls
VTK-m now offers a more GPU aware set of defaults for kernel scheduling.
When VTK-m first launches a kernel we do system introspection and determine
what GPU's are on the machine and than match this information to a preset
table of values. The implementation is designed in a way that allows for
VTK-m to offer both specific presets for a given GPU ( V100 ) or for
an entire generation of cards ( Pascal ).

Currently VTK-m offers preset tables for the following GPU's:
- Tesla V100
- Tesla P100

If the hardware doesn't match a specific GPU card we than try to find the
nearest know hardware generation and use those defaults. Currently we offer
defaults for
- Older than Pascal Hardware
- Pascal Hardware
- Volta+ Hardware

Some users have workloads that don't align with the defaults provided by
VTK-m. When that is the cause, it is possible to override the defaults
by binding a custom function to `vtkm::cont::cuda::InitScheduleParameters`.
As shown below:

```cpp
  ScheduleParameters CustomScheduleValues(char const* name,
                                          int major,
                                          int minor,
                                          int multiProcessorCount,
                                          int maxThreadsPerMultiProcessor,
                                          int maxThreadsPerBlock)
  {

    ScheduleParameters params  {
        64 * multiProcessorCount,  //1d blocks
        64,                        //1d threads per block
        64 * multiProcessorCount,  //2d blocks
        { 8, 8, 1 },               //2d threads per block
        64 * multiProcessorCount,  //3d blocks
        { 4, 4, 4 } };             //3d threads per block
    return params;
  }
  vtkm::cont::cuda::InitScheduleParameters(&CustomScheduleValues);
```
2019-04-17 08:32:16 -04:00
..
1.3 Require CMake 3.8 to build VTK-m. 2019-01-09 16:01:22 -05:00
0-sample-topic.md Add release notes for v1.3.0 2018-11-26 11:11:10 -05:00
add-vtkm_filter-target.md Document vtkm_filter 2019-03-05 15:52:14 -05:00
array-virtual-not-special.md Make ArrayHandleVirtual conform with other ArrayHandle structure 2019-03-01 15:50:14 -07:00
arrayhandlevirtual.md Add changelogs for ArrayHandleVirtual and VariantArrayHandle 2018-12-27 15:42:03 -05:00
arrayhandlezip-handles-writing-to-implicit-handles.md Add changelogs for ArrayHandleVirtual and VariantArrayHandle 2018-12-27 15:42:03 -05:00
asynchronize-device-independent-timer.md Introduce asynchronous and device independent timer 2019-02-05 12:01:56 -05:00
bitfields.md Add ArrayHandleBitField, a boolean-valued AH backed by a BitField. 2019-04-11 08:27:17 -04:00
bounding-interval-hierarchy-in-vtkm-cont.md Move virtual methods of other CellLocators to vtkm_cont 2019-03-20 17:38:50 -06:00
case-insensitive-device-from-string.md VTK-m now supports case-insensitive construction of devices from strings. 2019-01-07 08:12:25 -05:00
cast-variant-to-storage.md Allow VariantArrayHandle CastAndCall to cast to concrete types 2019-01-16 22:31:55 -06:00
cmake-38-required.md Require CMake 3.8 to build VTK-m. 2019-01-09 16:01:22 -05:00
connected-components.md finish the change log for connected component filters 2019-03-24 23:22:55 -06:00
cuda-allocator-disable-managed-memory-from-code.md CudaAllocator allows managed memory to be explicitly disabled 2018-12-28 11:30:29 -05:00
cuda-separable-compilation-enabled.md Add changelogs for ArrayHandleVirtual and VariantArrayHandle 2018-12-27 15:42:03 -05:00
field-tags-no-template.md Update changedoc 2019-01-11 12:23:19 -07:00
improve-cuda-scheduling.md VTK-m now provides better scheduling parameters controls 2019-04-17 08:32:16 -04:00
initialize.md Add vtkm::cont::Initialize. 2018-12-13 10:15:44 -05:00
mask-worklets.md Add Mask capabilities to worklets 2019-02-25 08:58:39 -07:00
merge-benchmark-executables.md Merge benchmark executables into a device dependent shared library 2019-02-25 12:26:47 -05:00
merge-rendering-testing-executables.md Merge rendering testing executables to a shared library 2019-01-14 14:20:00 -05:00
merge-worklet-testing-executables.md Improve the documentation on having a single worklet executable 2018-12-24 15:52:53 -05:00
optionparser-to-third-party.md Wrap third party optionparser.h in vtkm/cont/internal/OptionParser.h 2019-03-26 15:47:17 -06:00
parse-some-options-in-initialize.md Allow Initialize to parse only some arguments 2019-03-26 12:04:18 -06:00
point-merge.md Add point merge capabilities to CleanGrid filter 2019-02-26 12:44:33 -07:00
portal-value-reference-operators.md Add specialized operators for ArrayPortalValueReference 2019-02-20 13:33:55 -07:00
redesign-runtime-device-tracking.md Redesign RuntimeDeviceTracker and RuntimeDeviceInformation 2019-03-26 08:36:18 -04:00
reduction-support-differing-input-output-types.md Reduction on CUDA handles different input and output types better 2019-04-10 14:44:44 -04:00
rename-per-thread-runtime-tracker-method.md RuntimeDeviceTracker: Remove Global from names 2019-03-22 08:53:26 -07:00
specialize-worklet-for-device.md Add ability to specialize worklet for device 2019-04-01 10:01:54 -06:00
update-CellLocatorTwoLevelUniformGrid.md Document the changes that are part of this MR. 2019-04-03 15:13:34 -04:00
update-optional-parser.md Improve the documentation on having a single worklet executable 2018-12-24 15:52:53 -05:00
Variant_AsVirtual_force_cast.md Modify VariantAH::AsVirtual to cast to new ValueType if needed. 2019-03-25 11:39:45 -04:00
variantarrayhandle.md Add changelogs for ArrayHandleVirtual and VariantArrayHandle 2018-12-27 15:42:03 -05:00
verify-cmake-install.md Add changelog for VTKmCheckSourceInInstall 2019-02-04 12:09:25 -05:00
vtkm-handles-busy-cuda-devices-better.md Simplify the DeviceAdapterRuntimeDetectorCuda to not do a kernel launch. 2019-02-04 13:27:20 -05:00
vtkm-mangle-diy.md VTK-m now doesn't clobber external DIY installations 2019-02-05 13:05:14 -05:00