Commit Graph

8151 Commits

Author SHA1 Message Date
Kenneth Moreland
7d77676599 Merge topic 'more-tbb-device-log'
7a12c5e52 Add missing logging for some TBB device algorithms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2306
2020-10-29 14:07:14 -04:00
Robert Maynard
77a979ff2b Merge topic 'corrections_for_swap_and_math_for_hip'
0b2ddb83b UnitTestBounds custom compile flags expressed via generator expression
1ed5dfca0 vtkm/Math frexp(float) version works now with HIP
ff381bf8b vtkm/Swap works with hip

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2301
2020-10-29 10:55:55 -04:00
Kenneth Moreland
7a12c5e524 Add missing logging for some TBB device algorithms
Some of the algorithms listed near the end of
DeviceAdapterAlgorithmTBB.h were missing the entry in the performance
log letting us know it was called.
2020-10-28 18:28:27 -06:00
Kenneth Moreland
29fd565b5f Merge topic 'perf-schedule-task'
0b1c48a3e Identify number of partitions in filter execution
b33c54bf6 Add ScheduleTask to performance log

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2302
2020-10-26 11:55:03 -04:00
Vicente Bolea
7370934244 Merge topic 'fix-548-error-mapping-contour'
1add731ef BenchmarkFilters: Add Unstructured bench for Contour
b22823a54 Contour: Zero-init arrays in Flying Edges

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2197
2020-10-26 11:42:29 -04:00
Kenneth Moreland
0b1c48a3ee Identify number of partitions in filter execution
When you execute a filter, the default behavior is to do the execution
on each partition of the data set independently. This code path is
followed even for non-partitioned data; the `DataSet` is wrapped in a
`PartitionedDataSet` of one partition.

Make performance logging a bit more clear by only giving one scoped log
for a basic `DataSet` and recording the number of partitions executed in
the log.
2020-10-26 09:00:09 -06:00
Kenneth Moreland
b33c54bf61 Add ScheduleTask to performance log
When `DeviceAdapterAlgorithm::ScheduleTask` was called directly (i.e.
not through `Schedule`), nothing was added to the log. Adding
`VTKM_LOG_SCOPE` to these methods so that all scheduling is added to the
performance log.
2020-10-25 17:22:38 -06:00
Robert Maynard
0b2ddb83b3 UnitTestBounds custom compile flags expressed via generator expression 2020-10-22 16:48:18 -04:00
Robert Maynard
1ed5dfca0b vtkm/Math frexp(float) version works now with HIP 2020-10-22 15:32:14 -04:00
Robert Maynard
ff381bf8b4 vtkm/Swap works with hip 2020-10-22 15:32:06 -04:00
Kenneth Moreland
447bae88d0 Merge topic 'arrayhandleimplicit-use-buffer'
f66dc780c Update ArrayHandleImplicit to new array style with Buffer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2246
2020-10-22 10:15:55 -04:00
Li-Ta Lo
4af9aece79 Merge topic 'particle_density'
8b6ae4f78 fixed type conversion and typo
77e1aec50 minor change based on code review
58436ed2f Merge branch 'master' into particle_density
f1b27c2b8 removed bad stuff
e6e0506e1 add a newline
9c4129bfb Neareast Grid Point particle density estimate
8c15745c0 Merge branch 'master' into particle_density
c1681d2f2 Merge branch 'master' into particle_density
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2294
2020-10-22 09:55:17 -04:00
Vicente Adolfo Bolea Sanchez
1add731eff BenchmarkFilters: Add Unstructured bench for Contour 2020-10-21 19:12:51 -04:00
Vicente Adolfo Bolea Sanchez
b22823a547 Contour: Zero-init arrays in Flying Edges
- It fixes a lingering error triggered with BenchContour
- It reenables BenchContour

Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2020-10-21 19:12:51 -04:00
Li-Ta Lo
8b6ae4f78c fixed type conversion and typo 2020-10-21 16:32:04 -06:00
Li-Ta Lo
77e1aec50a minor change based on code review 2020-10-21 16:08:06 -06:00
Robert Maynard
cd1b2c5783 Merge topic 'add_ampere_gpu_support'
bcc840eaf Add support for the Ampere line of NVIDIA GPU's

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2297
2020-10-21 15:53:49 -04:00
Li-Ta Lo
58436ed2fc Merge branch 'master' into particle_density 2020-10-21 08:48:38 -06:00
Kenneth Moreland
f66dc780c5 Update ArrayHandleImplicit to new array style with Buffer
Also updated the dependent `ArrayHandle`s that use
`ArrayHandleImplicit`'s storage.
2020-10-21 08:36:29 -06:00
Robert Maynard
bcc840eaf6 Add support for the Ampere line of NVIDIA GPU's 2020-10-21 10:15:52 -04:00
Robert Maynard
0277ff1440 Merge topic 'functor_general_work_with_hip'
882d9be58 FunctorsGeneral updated to work with HIP

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2295
2020-10-21 09:11:14 -04:00
Robert Maynard
882d9be583 FunctorsGeneral updated to work with HIP 2020-10-20 15:52:29 -04:00
Kenneth Moreland
39a27ad0cf Merge topic 'compare-and-swap-interface'
28ecf3636 Change interface of atomic compare and swap

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2289
2020-10-20 15:42:46 -04:00
Kenneth Moreland
28ecf3636d Change interface of atomic compare and swap
The old atomic compare and swap operations (`vtkm::AtomicCompareAndSwap`
and `vtkm::exec::AtomicArrayExecutionObject::CompareAndSwap`) had an
order of arguments that was confusing. The order of the arguments was
shared pointer (or index), desired value, expected value. Most people
probably assume expected value comes before desired value. And this
order conflicts with the order in the `std` methods, GCC atomics, and
Kokkos.

Change the interface of atomic operations to be patterned off the
`std::atomic_compare_exchange` and `std::atomic<T>::compare_exchange`
methods. First, these methods have a more intuitive order of parameters
(shared pointer, expected, desired). Second, rather than take a value
for the expected and return the actual old value, they take a pointer to
the expected value (or reference in `AtomicArrayExecutionObject`) and
modify this value in the case that it does not match the actual value.
This makes it harder to mix up the expected and desired parameters.
Also, because the methods return a bool indicating whether the value was
changed, there is an additional benefit that compare-exchange loops are
implemented easier.

For example, consider you want to apply the function `MyOp` on a
`sharedValue` atomically. With the old interface, you would have to do
something like this.

```cpp
T oldValue;
T newValue;
do
{
  oldValue = *sharedValue;
  newValue = MyOp(oldValue);
} while (vtkm::AtomicCompareAndSwap(sharedValue, newValue, oldValue) != oldValue);
```

With the new interface, this is simplfied to this.

```cpp
T oldValue = *sharedValue;
while (!vtkm::AtomicCompareExchange(sharedValue, &oldValue, MyOp(oldValue));
```
2020-10-20 08:39:22 -06:00
Robert Maynard
093d25f342 Merge topic 'second_round_of_vtkm_changes_for_hip_support'
71ff85e92 vtkm/Math can now works with HIP device functions
7834b5155 vtkm::Math::ModF calls correct CUDA math function
264b4fabc vtkm/Algorithms now can do device side HIP algorithms
f04b12d9d vtkm/Atomic can now safely include kokkos when HIP is enabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2276
2020-10-20 10:36:41 -04:00
Robert Maynard
71ff85e926 vtkm/Math can now works with HIP device functions 2020-10-20 09:49:24 -04:00
Robert Maynard
7834b5155b vtkm::Math::ModF calls correct CUDA math function 2020-10-20 09:24:05 -04:00
Robert Maynard
264b4fabc6 vtkm/Algorithms now can do device side HIP algorithms 2020-10-20 09:24:05 -04:00
Robert Maynard
f04b12d9db vtkm/Atomic can now safely include kokkos when HIP is enabled 2020-10-20 09:24:05 -04:00
Li-Ta Lo
f1b27c2b8b removed bad stuff 2020-10-19 17:49:55 -06:00
Li-Ta Lo
e6e0506e1f add a newline 2020-10-19 15:46:08 -06:00
Li-Ta Lo
9c4129bfb1 Neareast Grid Point particle density estimate 2020-10-19 15:29:14 -06:00
Robert Maynard
048a417c5d Merge topic 'update_ci_to_tests_cuda_11'
d5d91c61d Update ubuntu1804+cuda from 10.1 to 11.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2291
2020-10-19 15:36:18 -04:00
Robert Maynard
d5d91c61d3 Update ubuntu1804+cuda from 10.1 to 11.1
The image was previously using 10.1 which has issues generating
ptx for numerous filters. Moving to a newer CUDA version corrects
these issues
2020-10-19 15:32:10 -04:00
Robert Maynard
a671ab6695 Merge topic 'correct_atomic_load_warnings'
fa42c9a55 Correct casting warning in AtomicArrayExecutionObject

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2290
2020-10-16 17:16:01 -04:00
Robert Maynard
fa42c9a55c Correct casting warning in AtomicArrayExecutionObject
Fixes a warning introduced by !2282
2020-10-16 09:39:08 -04:00
Robert Maynard
0c8cd26199 Merge topic 'correct_atomic_load_api'
5fe6c36fa vtkm::AtomicLoad should only occur on non-const values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2282
2020-10-15 17:50:02 -04:00
Kenneth Moreland
aa21bf4f94 Merge topic 'arrayhandle-const-correct'
4a1b26d1b Change ArrayHandle::ReleaseResourcesExecution to be const

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2288
2020-10-15 16:36:50 -04:00
Kenneth Moreland
4a1b26d1b1 Change ArrayHandle::ReleaseResourcesExecution to be const
The `ReleaseResourcesExecution` method makes changes by booting data off
of the execution environment. But logically the array does not change.
It remains the same size with the same contents. Thus, it makes sense
for this to be a const method.

Also modified some deprecated methods a bit to remove some unnecessary
templates.
2020-10-15 10:03:38 -06:00
Li-Ta Lo
8c15745c04 Merge branch 'master' into particle_density 2020-10-15 07:41:05 -06:00
Kenneth Moreland
26dd40a196 Merge topic 'scope-map-field-helpers'
19944653b Add scope log for functions that help map fields in filters

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2286
2020-10-14 11:37:17 -04:00
Kenneth Moreland
19944653bc Add scope log for functions that help map fields in filters 2020-10-13 16:35:25 -06:00
Kenneth Moreland
5c1e08467c Merge topic 'scope-locators'
c60cae3b8 Add scope logs for building locators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2285
2020-10-13 15:55:10 -04:00
Kenneth Moreland
c60cae3b87 Add scope logs for building locators 2020-10-13 12:41:25 -06:00
Kenneth Moreland
2712c105de Merge topic 'test-advect-explicit'
4dec08c6f Add tests for advecting particles in explict cell sets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Dave Pugmire <dpugmire@gmail.com>
Merge-request: !2284
2020-10-13 14:38:34 -04:00
Kenneth Moreland
4dec08c6f0 Add tests for advecting particles in explict cell sets
The `UnitTestParticleAdvectionFilter` was only testing advection in
structured cell sets (with either uniform or rectilinear points). This
did not test all paths (i.e. grid evaluators and locators) of particle
advection. Changed the test to also try grids with explicit cells.

Note that the explicit cells are created by just converting the
rectilinear grids to explicit grids. It would be better to get at least
one small dataset that starts as unstructured.
2020-10-13 09:06:02 -06:00
Robert Maynard
b70f677856 Merge topic 'scope-scatters'
f5c5b6188 Log the computation of ranges in fields and arrays
bef55f8ee Log the conversion of num components to offsets
420b9d397 Log the building of arrays for scatters and masks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2283
2020-10-13 09:02:51 -04:00
Robert Maynard
5c769b1b5f Merge topic 'remove_unused_functions'
22dfb4776 Remove unused functions from TestingDeviceAdapter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2281
2020-10-13 08:58:57 -04:00
Kenneth Moreland
f5c5b61880 Log the computation of ranges in fields and arrays 2020-10-12 15:51:09 -06:00
Kenneth Moreland
bef55f8ee3 Log the conversion of num components to offsets 2020-10-12 14:02:31 -06:00