Commit Graph

7025 Commits

Author SHA1 Message Date
Kenneth Moreland
7e49c11313 Mark the find_package(benchmark) with required
Add the REQUIRED flag to the find_package command to find the Google
benchmark package. Without that flag, the find_package command will
happily pass if the benchmarks are not found.

However, if benchmarks is not found, then the CMake configure will then
fail because the benchmark::benchmark library is not defined. That is a
confusing error to get. Since benchmark is not a typical thing installed
on a system, this can be problematic.
2020-01-09 12:28:48 -07:00
Kenneth Moreland
a5c686214b Merge topic 'no-std-conditional-in-list-operations'
b534bdb1b Remove std::conditional from List.h

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1940
2020-01-09 12:31:26 -05:00
Kenneth Moreland
b534bdb1ba Remove std::conditional from List.h
The `std::conditional` utility is very convenient, but it unfortunately
means that the compiler has to evaluate both the true and false types
even though one is guaranteed to be thrown out. This is problematic
because it requires the compiler to do a lot more work then necessary.
It is especially dumb when introducing the conditionals to reduce the
number of cases being evaluated, as was much of the case in List.h.
2020-01-09 09:11:26 -07:00
Allison Vacanti
73e9430a85 Merge topic 'google_benchmark'
46b7155bd Add 64-bit CUDA atomic store.
539f6e5ad Port benchmarking framework to Google Benchmark.
39d981bcf Shorten names returned by testing's TypeName utility.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1936
2020-01-08 10:59:42 -05:00
Allison Vacanti
46b7155bdb Add 64-bit CUDA atomic store. 2020-01-08 10:58:51 -05:00
Allison Vacanti
539f6e5ad7 Port benchmarking framework to Google Benchmark. 2020-01-08 10:58:51 -05:00
Allison Vacanti
39d981bcf9 Shorten names returned by testing's TypeName utility.
Eg:

```
vtkm::Float32                                       -> F32
vtkm::Int64                                         -> I64
vtkm::Vec< vtkm::Float32, 3 >                       -> Vec3f_32
vtkm::Vec< vtkm::Pair< vtkm::Int32, vtkm::Float64 > -> Vec<Pair<I32, F64>>
```

This makes the benchmark names a lot shorter to keep rows tabular
results on
a single line.
2020-01-08 10:58:51 -05:00
Kenneth Moreland
ba90057ef3 Merge topic 'shorter-fancy-array-handle-classnames'
60c57303d Fix name clash of template parameter and field
4a52a3f7a Shorter StorageTag for ArrayHandleZip
4a626b2e9 Shorter storage tag for ArrayHandleView
4c8c28d1f Shorter storage tag for ArrayHandleReverse
bfd21dfae Declare StorageTags with VTKM_ALWAYS_EXPORT
1ec716e5d Shorten storage tag for ArrayHandlePermutation
ca0ad1dc2 Shorten storage tag for ArrayHandleIndex
7bd5802dd Shorter storage tag for ArrayHandleGroupVecVariable
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1937
2020-01-07 09:05:52 -05:00
Kenneth Moreland
60c57303da Fix name clash of template parameter and field 2020-01-07 07:01:35 -07:00
Kenneth Moreland
4a52a3f7a9 Shorter StorageTag for ArrayHandleZip 2020-01-07 07:01:34 -07:00
Kenneth Moreland
4a626b2e93 Shorter storage tag for ArrayHandleView 2020-01-07 07:01:13 -07:00
Kenneth Moreland
4c8c28d1f1 Shorter storage tag for ArrayHandleReverse
Also discovered that many C++ compilers have trouble giving warnings
for partial specialization of classes marked as deprecated. Fix
the problem by instead deprecating the items in the class.
2020-01-07 07:01:12 -07:00
Kenneth Moreland
bfd21dfae2 Declare StorageTags with VTKM_ALWAYS_EXPORT
This modifier is required on OSX for dynamic_cast to work properly
across libraries.
2020-01-07 07:01:11 -07:00
Kenneth Moreland
1ec716e5d2 Shorten storage tag for ArrayHandlePermutation 2020-01-07 07:01:10 -07:00
Kenneth Moreland
ca0ad1dc22 Shorten storage tag for ArrayHandleIndex 2020-01-07 07:01:10 -07:00
Kenneth Moreland
7bd5802dd8 Shorter storage tag for ArrayHandleGroupVecVariable 2020-01-07 07:01:09 -07:00
Kenneth Moreland
74df1b3857 Shorten storage tag for ArrayHandleGroupVec 2020-01-07 07:01:08 -07:00
Kenneth Moreland
1f5846b49e Shorten storage tag for ArrayHandleCounting 2020-01-07 07:01:07 -07:00
Kenneth Moreland
31898fd887 Shorten tag name for ArrayHandleConstant 2020-01-07 07:01:06 -07:00
Kenneth Moreland
b2f07511fb Shorten storage tags for ArrayHandleConcatenate 2020-01-07 07:01:05 -07:00
Kenneth Moreland
2688fc7d50 Shorten tag name for ArrayHandleCompositeVector 2020-01-07 07:01:05 -07:00
Kenneth Moreland
8516fa7ac6 Shorten tag name for ArrayHandleCartesianProduct 2020-01-07 07:01:04 -07:00
Kenneth Moreland
591d1ba264 Make ArrayHandleUniformPointCoordinates storage type shorter 2020-01-07 07:01:03 -07:00
Kenneth Moreland
944a3c4c14 Make ArrayHandleCast storage type shorter 2020-01-07 07:00:55 -07:00
Robert Maynard
c470df0015 Merge topic 'correct_gcc_9_warnings'
870bd1d17 Removed unnecessary increment and decrement from ZFPDecode
f9860b847 Correct warnings found by gcc-9 in vtkm::Particle

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1935
2020-01-01 13:49:18 -05:00
Robert Maynard
870bd1d170 Removed unnecessary increment and decrement from ZFPDecode
These extra operations caused the pointer to go out of bound and
then back in, but some compilers (gcc 9) would detect and warn
that the pointer had gone out of bounds.
2020-01-01 10:08:35 -05:00
Robert Maynard
f9860b847e Correct warnings found by gcc-9 in vtkm::Particle 2020-01-01 08:46:40 -05:00
Allison Vacanti
07283f74c1 Merge topic 'binary_search_algorithms'
44c4f0838 Add vtkm/Algorithms.h header with device-friendly binary search algorithms.
6d4e37e95 Fix brigand for CUDA 10.2.
84eedc885 Make BinaryOperators/Predicates more flexible.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1920
2019-12-26 10:48:21 -05:00
Robert Maynard
349d1562df Merge topic 'gcc_48_iterator_fixes'
83d4d4e49 ArrayPortalToIterators now compiles with GCC-4.X

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1934
2019-12-23 10:47:03 -05:00
Robert Maynard
83d4d4e495 ArrayPortalToIterators now compiles with GCC-4.X
The draft C++11 spec that GCC-4.X implemented against had some
defects that made implementing void_t<...> tricky.
2019-12-23 09:47:54 -05:00
Allison Vacanti
90afd1eff5 Merge topic '428_decorator_improvements'
88bf38afe Add support for ArrayHandleDecorator resizing.
5834c2852 Add cont/exec markup to ArrayHandleDecorator docs.
5b1280600 Cleanup reference types when using declval.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1933
2019-12-23 08:24:43 -05:00
Dave Pugmire
c9dae5a58f Merge topic 'fixParticleAdvectionStorageCommit'
c5f9b9b20 Fix to examples to use vtkm::Particle

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1932
2019-12-21 21:09:29 -05:00
Allison Vacanti
88bf38afe2 Add support for ArrayHandleDecorator resizing.
Fixes #428.
2019-12-20 17:03:36 -05:00
Allison Vacanti
5834c28521 Add cont/exec markup to ArrayHandleDecorator docs. 2019-12-20 16:18:09 -05:00
Allison Vacanti
5b1280600d Cleanup reference types when using declval.
When expanding variadic parameter packs in ArrayHandleDecorator
implementations, make sure that the types used are appropriate.
Since std::declval is used to test whether or not a method with
specific arguments exists, it is important that the reference types
are correct to ensure that the detection works as expected.

Portals are always passed to implementation functions as rvalue
references, and array handles are always passed as lvalue refs.
2019-12-20 16:17:30 -05:00
Allison Vacanti
44c4f0838f Add vtkm/Algorithms.h header with device-friendly binary search algorithms. 2019-12-20 12:35:10 -05:00
dpugmire
c5f9b9b20f Fix to examples to use vtkm::Particle 2019-12-19 09:56:05 -05:00
Robert Maynard
b30827215c Merge topic 'dont_allow_negative_vtkm_pool_sizes'
53158aa2e Don't allow ninja job pool sizes to be negative

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1931
2019-12-19 09:06:54 -05:00
Robert Maynard
53158aa2ea Don't allow ninja job pool sizes to be negative
If the job pool size becomes negative, ninja treats
it as an absurdly large positive integer and
errors out.
2019-12-19 08:44:12 -05:00
Allison Vacanti
6d4e37e95c Fix brigand for CUDA 10.2.
There were issues with brigand::all's implementation with the new
cuda compiler.
2019-12-18 15:51:59 -05:00
Allison Vacanti
84eedc8855 Make BinaryOperators/Predicates more flexible.
Allow the argument types to differ. This allows ArrayPortalValueReferences to be used.
2019-12-18 15:51:59 -05:00
Allison Vacanti
4bf1eefd83 Merge topic 'iterator_maintainence'
813f5a422 Fixup custom portal iterator logic.
4e13f7706 Fix markup on ArrayPortalStreaming.
4805f08e1 Add host/device markup to IteratorFromArrayPortal.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1929
2019-12-18 11:47:20 -05:00
Allison Vacanti
813f5a422f Fixup custom portal iterator logic.
The convenience functions `ArrayPortalToIteratorBegin()` and
`ArrayPortalToIteratorEnd()` wouldn't detect specializations of
`ArrayPortalToIterators<PortalType>` since the specializations aren't
visible when the `Begin`/`End` functions are declared.

Since the CUDA iterators rely on a specialization, the convenience
functions would not compile on CUDA.

Now, instead of specializing `ArrayPortalToIterators` to provide custom
iterators for a particular portal, the portal may advertise custom
iterators by defining `IteratorType`, `GetIteratorBegin()`, and
`GetIteratorEnd()`. `ArrayPortalToIterators` will detect such portals
and automatically switch to using the specialized portals.

This eliminates the need for the specializations to be visible to the
convenience functions and allows them to be usable on CUDA.
2019-12-17 15:39:51 -05:00
Allison Vacanti
4e13f7706c Fix markup on ArrayPortalStreaming. 2019-12-17 14:52:47 -05:00
Allison Vacanti
4805f08e1e Add host/device markup to IteratorFromArrayPortal. 2019-12-17 14:52:47 -05:00
Robert Maynard
8c96769e81 Merge topic 'aligned_union_check_handle_gcc_485'
b36846e4b UnitTestVariant uses VTKM_USING_GLIBCXX_4
cbf20ac3b Merge branch 'upstream-diy' into aligned_union_check_handle_gcc_485
ac1a23bee diy 2019-12-17 (bb86e1f7)
201e5c81d Add the gcc 4.8.5 release date to our VTKM_USING_GLIBCXX_4 check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <larsen30@llnl.gov>
Merge-request: !1930
2019-12-17 12:52:04 -05:00
Robert Maynard
b36846e4ba UnitTestVariant uses VTKM_USING_GLIBCXX_4 2019-12-17 12:21:38 -05:00
Robert Maynard
cbf20ac3bb Merge branch 'upstream-diy' into aligned_union_check_handle_gcc_485
* upstream-diy:
  diy 2019-12-17 (bb86e1f7)
2019-12-17 10:19:43 -05:00
Diy Upstream
ac1a23bee0 diy 2019-12-17 (bb86e1f7)
Code extracted from:

    https://gitlab.kitware.com/third-party/diy2.git

at commit bb86e1f7249f98fdd822fd073280e6337742be29 (for/vtk-m).
2019-12-17 10:19:43 -05:00
Robert Maynard
201e5c81d3 Add the gcc 4.8.5 release date to our VTKM_USING_GLIBCXX_4 check 2019-12-17 10:07:56 -05:00