Commit Graph

6035 Commits

Author SHA1 Message Date
Kenneth Moreland
4b98b16b27 Merge topic 'math-h-clang-formatting'
90dd8a0ef Correct clang formatting in Math.h.in

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1654
2019-04-23 17:11:36 -04:00
Kenneth Moreland
90dd8a0ef7 Correct clang formatting in Math.h.in
There is a small section in the code generated from Math.h.in that is
subject to clang formatting. A recent change reformatted that bit of
Math.h, so we need to update Math.h.in accordingly.
2019-04-23 13:28:35 -07:00
Robert Maynard
63c931e639 Correct location of ThrustPatches which clang formatter moved 2019-04-23 15:02:58 -04:00
Robert Maynard
bd544754a4 Merge topic 'no_odr_violation_on_cuda_tag'
ff687016e For VTK-m libs all includes of DeviceAdapterTagCuda happen from cuda files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1648
2019-04-23 14:40:38 -04:00
Robert Maynard
e7924e76cc Merge topic 'remove_unneeded_diy_include_path'
030b03e47 Remove unneeded diy build include directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1652
2019-04-23 14:40:11 -04:00
Robert Maynard
030b03e470 Remove unneeded diy build include directory
The diy build configured files are all located by the include
from the root vtkm include directory, so this include isn't needed
2019-04-22 15:00:30 -04:00
Robert Maynard
ff687016ee For VTK-m libs all includes of DeviceAdapterTagCuda happen from cuda files
It is very easy to cause ODR violations with DeviceAdapterTagCuda.
If you include that header from a C++ file and a CUDA file inside
the same program we an ODR violation. The reasons is that the C++
versions will say the tag is invalid, and the CUDA will say the
tag is valid.

The solution to this is that any compilation unit that includes
DeviceAdapterTagCuda from a version of VTK-m that has CUDA enabled
must be invoked by the cuda compiler.
2019-04-22 10:39:54 -04:00
Sujin Philip
4fd7682e41 Merge topic 'remove-thread-local'
13ef17eaa Remove thread_local from RuntimeDeviceNames

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1650
2019-04-22 09:11:50 -04:00
Sujin Philip
13ef17eaa7 Remove thread_local from RuntimeDeviceNames
Older Mac compilers that are still supported by VTK don't support
`thread_local`.
2019-04-19 16:03:48 -04:00
Robert Maynard
ce3b42806b Merge topic 'remove_device_adapter_error'
d8cc067ca Remove DeviceAdapterError as it isn't needed any more.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1649
2019-04-19 08:09:30 -04:00
Robert Maynard
d8cc067caa Remove DeviceAdapterError as it isn't needed any more.
Fixes #277

DeviceAdapterError existed to make sure that the default device adapter
template was being handled properly. Since the default device adapter doesn't
exist, and nothing is templated over it we can now remove DeviceAdapterError.
2019-04-18 15:09:57 -04:00
Robert Maynard
3931b17247 Merge topic 'correct_field_tag_docs'
21c84798c FieldIn/Out/InOut documentation updated to fact they aren't templated

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1647
2019-04-18 13:59:36 -04:00
Robert Maynard
21c84798c7 FieldIn/Out/InOut documentation updated to fact they aren't templated
Fixes #366
2019-04-18 13:23:20 -04:00
Robert Maynard
ab1f7b0409 Merge topic 'simplify_benchmark_cmake_code'
5a26051fc benchmarking cmake code simplified

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1646
2019-04-18 13:14:54 -04:00
Robert Maynard
5a26051fc8 benchmarking cmake code simplified 2019-04-18 10:29:24 -04:00
Robert Maynard
2c026508b3 Merge topic 'correct_openmp_timeouts'
9c2920072 UnitTestBoundingIntervalHierarchy handles systems under load better
671c1df5c Timer logs the proper device name when called with an invalid device
d3d66a331 GameOfLife example always uses the proper device adapter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1645
2019-04-18 08:05:12 -04:00
Robert Maynard
9c29200723 UnitTestBoundingIntervalHierarchy handles systems under load better
The UnitTestBoundingIntervalHierarchy has historically had problems
when the machine is already under-load when the algorithm is executed.
By limiting the number of openMP threads the test uses we can
reduce the amount of CPU time slicing that this test causes.
2019-04-17 16:16:08 -04:00
Robert Maynard
671c1df5c9 Timer logs the proper device name when called with an invalid device 2019-04-17 16:01:15 -04:00
Robert Maynard
d3d66a3312 GameOfLife example always uses the proper device adapter
Previously the example would only time using the serial device
adapter, which wouldn't work when the user explicitly specified
a device on the command line.
2019-04-17 14:58:32 -04:00
Robert Maynard
39cf9dacb6 Merge topic 'consolidate_licenses'
df5765bd7 update LICENSE.txt file
6d9c2af79 remove warning in file due to non-reference exception catch
fbcea82e7 conslidate the license statement
fd59fd1d4 Print error in copyright only on first mis-match

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1609
2019-04-17 14:49:26 -04:00
nadavi
df5765bd7c update LICENSE.txt file 2019-04-17 10:57:13 -06:00
nadavi
6d9c2af795 remove warning in file due to non-reference exception catch 2019-04-17 10:57:13 -06:00
nadavi
fbcea82e78 conslidate the license statement 2019-04-17 10:57:13 -06:00
nadavi
fd59fd1d4a Print error in copyright only on first mis-match 2019-04-17 10:56:31 -06:00
Robert Maynard
6c5c197a37 Merge topic 'support_cuda_scheduling_parameters_via_runtime'
047b64651 VTK-m now provides better scheduling parameters controls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1643
2019-04-17 10:04:19 -04:00
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
Robert Maynard
da1fb63258 Merge topic 'remove_default_device_macros'
ff30684c8 Removes the default device macros from VTK-m

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1641
2019-04-15 10:24:41 -04:00
Robert Maynard
ff30684c8e Removes the default device macros from VTK-m
Fixes #116
2019-04-15 08:15:36 -04:00
Robert Maynard
3df4ab6a76 Merge topic 'GetNeighbourIndex_doesnt_call_abort'
e54cbe85a contourtree_augmented doesn't call abort in VTK-m worklets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1642
2019-04-12 14:43:40 -04:00
Robert Maynard
e54cbe85a8 contourtree_augmented doesn't call abort in VTK-m worklets 2019-04-12 13:26:30 -04:00
Robert Maynard
3fc0f11df3 Merge topic 'export_vtkm_cuda_always'
71018e3b5 Always export vtkm_cuda no matter VTKm_INSTALL_ONLY_LIBRARIES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1640
2019-04-12 11:16:18 -04:00
Robert Maynard
71018e3b52 Always export vtkm_cuda no matter VTKm_INSTALL_ONLY_LIBRARIES 2019-04-12 11:10:10 -04:00
Robert Maynard
a5dbe1ece3 Merge topic 'bitfields'
661fb64de AtomicInterfaceControl functions are marked with VTKM_SUPPRESS_EXEC_WARNINGS
0c70f9b9a Add BitFieldIn/Out/InOut worklet signature tags.
a66510e81 Add ArrayHandleBitField, a boolean-valued AH backed by a BitField.
56cc5c3d3 Add support for BitFields.
d01b97382 Allow VTKM_SUPPRESS_EXEC_WARNINGS to be used inside macros.
2f2ca9370 Add bit operations FindFirstSetBit and CountSetBits to Math.h.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1629
2019-04-11 12:32:03 -04:00
Robert Maynard
0e847f2cb8 Merge topic 'remove_cellset_need_of_default_device'
46843ff4e CellSetExplicit has no dependency on default vtk-m device

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1636
2019-04-11 10:40:10 -04:00
Robert Maynard
661fb64de8 AtomicInterfaceControl functions are marked with VTKM_SUPPRESS_EXEC_WARNINGS 2019-04-11 10:01:32 -04:00
Allison Vacanti
0c70f9b9ac Add BitFieldIn/Out/InOut worklet signature tags.
These provide an appropriate BitPortal for use in worklets.
2019-04-11 08:27:17 -04:00
Allison Vacanti
a66510e819 Add ArrayHandleBitField, a boolean-valued AH backed by a BitField. 2019-04-11 08:27:17 -04:00
Allison Vacanti
56cc5c3d3a Add support for BitFields.
BitFields are:
- Stored in memory using a contiguous buffer of bits.
- Accessible via portals, a la ArrayHandle.
- Portals operate on individual bits or words.
- Operations may be atomic for safe use from concurrent kernels.

The new BitFieldToUnorderedSet device algorithm produces an ArrayHandle
containing the indices of all set bits, in no particular order.

The new AtomicInterface classes provide an abstraction into bitwise
atomic operations across control and execution environments and are used
to implement the BitPortals.
2019-04-11 08:27:17 -04:00
Allison Vacanti
d01b973821 Allow VTKM_SUPPRESS_EXEC_WARNINGS to be used inside macros. 2019-04-11 08:27:17 -04:00
Allison Vacanti
2f2ca93709 Add bit operations FindFirstSetBit and CountSetBits to Math.h. 2019-04-11 08:27:17 -04:00
Robert Maynard
9cf1dc1883 Merge topic 'cuda_reduce_handle_pair_output'
89ec4aae2 Reduction on CUDA handles different input and output types better

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1638
2019-04-10 19:17:23 -04:00
Sujin Philip
4a20c8fabd Merge topic 'remove-SimplePolymorphicContainer'
b391acf4c Remove SimplePolymorphicContainer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1634
2019-04-10 16:18:47 -04:00
Robert Maynard
3f80a5602d Merge topic 'correct_thrust_patch_for_cuda_10'
1d980ed14 Thrust Patches tried to apply CUDA 10.1 patches to CUDA 10.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1639
2019-04-10 14:47:38 -04:00
Robert Maynard
1d980ed147 Thrust Patches tried to apply CUDA 10.1 patches to CUDA 10.0 2019-04-10 14:46:56 -04:00
Robert Maynard
89ec4aae2f Reduction on CUDA handles different input and output types better
When reducing an input type that differs from the output type
you need to write a custom binary operator that also implements
how to do the unary transformation.
2019-04-10 14:44:44 -04:00
Robert Maynard
46843ff4ee CellSetExplicit has no dependency on default vtk-m device
The default vtk-m device is an outdated concept and this is the
first step of removing it from VTK-m.
2019-04-10 14:28:30 -04:00
Sujin Philip
b391acf4c0 Remove SimplePolymorphicContainer
The last place remaining where it is being used is DynamicCellSet, which can
instead use `vtkm::cont::CellSet` as it itself is polymorphic.
2019-04-10 14:00:39 -04:00
Robert Maynard
fda02b3a91 Merge topic 'thrust_stateless_resource_allocator_warnings'
f05940aac ThrustPatches now only patches fixes for relevant cuda versions
20d6201a9 Suppress thrust::mr::stateless_resource_allocator host/device warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1637
2019-04-10 13:35:39 -04:00
Robert Maynard
f05940aaca ThrustPatches now only patches fixes for relevant cuda versions
Rather than always patch Thrust functions, we now only patch
based on the Thrust version.
2019-04-10 11:18:42 -04:00
Robert Maynard
20d6201a98 Suppress thrust::mr::stateless_resource_allocator host/device warnings 2019-04-10 09:46:34 -04:00