Commit Graph

7973 Commits

Author SHA1 Message Date
Kenneth Moreland
80cf0b3658 Fix more signed/unsigned vtkm::Id/std::size_t warnings in kokkos adapter 2020-08-27 07:59:03 -06:00
Robert Maynard
faa845d56e Merge topic 'reenable_tests_mistakenly_disabled'
769d6468f Correct a mistake where the kokkos MR merged disabled worklet tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2243
2020-08-27 07:56:37 -04:00
Kenneth Moreland
d9b8a620a1 Merge topic 'array-copy-overloads'
3143c7105 Add tests for Buffer::DeepCopy
8298d33f5 Fix issues with ArrayCopy

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2241
2020-08-26 16:06:11 -04:00
Kenneth Moreland
ef236dc1e5 Merge topic 'stateless-storage'
0cc0f3f96 Make Storage class completely stateless

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2238
2020-08-26 15:58:31 -04:00
Dave Pugmire
ca57b05264 Merge topic 'renameParticleTypes'
d64deb00f rename vtkm::Massless to Particle
596ec20e9 Change particle type in examples
855e973a2 Rename the Particle classes.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2239
2020-08-26 15:16:58 -04:00
Kenneth Moreland
3143c71058 Add tests for Buffer::DeepCopy
Tests for regression of deadlock found with copying an empty `Buffer` as
well as testing other `DeepCopy` behavior.
2020-08-26 12:45:19 -06:00
Robert Maynard
4752fb2afe Merge topic 'kokkos_warnings'
9aa3b9df0 DeviceAdapterAlgorithmKokkos correct signed/unsigned warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2242
2020-08-26 14:15:58 -04:00
Robert Maynard
769d6468fd Correct a mistake where the kokkos MR merged disabled worklet tests 2020-08-26 13:19:49 -04:00
Robert Maynard
9aa3b9df01 DeviceAdapterAlgorithmKokkos correct signed/unsigned warnings 2020-08-26 13:10:23 -04:00
Robert Maynard
363e6a25fd Merge topic 'correct_failing_ubuntu1604_gcc5_2_tests'
d67ef5b3e CI: Tests that compile only work when run on the same host image

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2240
2020-08-26 13:04:22 -04:00
Dave Pugmire
d64deb00f2 rename vtkm::Massless to Particle 2020-08-26 12:44:17 -04:00
Kenneth Moreland
8298d33f52 Fix issues with ArrayCopy
C++ was not resolving the overloads of `ArrayCopyImpl` as expected,
which was causing  `ArrayCopy` to sometimes use a less efficient method
for copying.

Also fix an issue with `Buffer::DeepCopy` that caused a deadlock when
copying a buffer that was not actually allocated anywhere (as well as
failing to copy the metadata, which was probably the whole point).
2020-08-26 08:03:47 -06:00
Dave Pugmire
596ec20e90 Change particle type in examples 2020-08-26 09:36:09 -04:00
Robert Maynard
d67ef5b3e6 CI: Tests that compile only work when run on the same host image
This limitation is caused by the fact that VTK-m caches compiler
location during the build stage for these tests, and this fails
on the test image as the compiler might not exist or is in a
different path
2020-08-26 09:10:56 -04:00
Dave Pugmire
855e973a20 Rename the Particle classes. 2020-08-26 08:59:51 -04:00
Kenneth Moreland
0cc0f3f961 Make Storage class completely stateless
The old style `ArrayHandle` stored most of its state, including the
data, in the `vtkm::cont::internal::Storage` object (templated to the
type of array). The new style of `ArrayHandle` stores the data itself in
`Buffer` objects, and recent changes to `Buffer` allow metadata to be
stored there, too.

These changes make it pretty unnecessary to hold any state at all in the
`Storage` object. This is good since the sharing of state from one type
of `ArrayHandle` to another (such as by transforming the data), can be
done by just sharing the `Buffer` objects.

To reinforce this behavior, the `Storage` object has been changed to
make it completely stateless. All the methods of `Storage` must be
marked as `static`.
2020-08-25 20:00:54 -06:00
Kenneth Moreland
c907ce6419 Merge topic 'new-arrayhandle-macro'
b526c4c91 Make VTKM_ARRAY_HANDLE_NEW_STYLE macro

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2237
2020-08-25 21:59:07 -04:00
Kenneth Moreland
b526c4c914 Make VTKM_ARRAY_HANDLE_NEW_STYLE macro
While in the transition between two types of `ArrayHandle`
implementations, we need to declare when an `ArrayHandle` is implemented
with the new style. To consolidate, create a
`VTKM_ARRAY_HANDLE_NEW_STYLE` to override the default `ArrayHandle`
implementation with the `ArrayHandleNewStyle` implementation.
2020-08-25 13:02:19 -06:00
Dave Pugmire
83f792b64c Merge topic 'tossMemstream2'
2351e4775 Add particle messenger test.
c9041ec41 Add unit test for particle messenger.
63b31ffb2 Replace MemStream with the diy serialization code.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2236
2020-08-25 14:55:03 -04:00
Dave Pugmire
2351e4775d Add particle messenger test. 2020-08-25 11:49:59 -04:00
Dave Pugmire
c9041ec41a Add unit test for particle messenger. 2020-08-25 11:39:14 -04:00
Dave Pugmire
63b31ffb24 Replace MemStream with the diy serialization code. 2020-08-25 11:38:01 -04:00
Kenneth Moreland
cdc41cc987 Merge topic 'vtk-test-files-in-repo'
a8fa14335 Move UnitTestVTKDataSetReader files to git-lfs
571aa9f3d Simplify getting test file names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !2234
2020-08-25 11:27:07 -04:00
Kenneth Moreland
82f2e37959 Merge topic 'conversion-warning'
b5ed6e725 Fix some conversion warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2235
2020-08-25 10:55:57 -04:00
Kenneth Moreland
b5ed6e7257 Fix some conversion warnings
Fixes some compiler warnings that were missed on recent dashboards.
2020-08-25 08:30:44 -06:00
Kenneth Moreland
a8fa143351 Move UnitTestVTKDataSetReader files to git-lfs
The `UnitTestVTKDataSetReader` test reads in .vtk files of multiple
formats. The origins of this test predate the use of git-lfs and a data
directory, so the test defined in the source code several strings
containing the contents of the files.

That is no longer necessary. This change removes those strings from the
file and creates actual files in the data directory. This is easier to
manage as well as more convenient if you want to use the same data in a
different test or just take a look at the data in a different program
(such as VisIt or ParaView).
2020-08-25 07:23:13 -06:00
Kenneth Moreland
571aa9f3d7 Simplify getting test file names
The testing helper class provided a method named `GetTestDataBasePath`
that returned the base path to all the data files stored in the VTK-m
repo. This is fine, but it was a little cumbersome to build filenames.

To make things easier, there is now a new method named `DataPath` that
takes a string of the filename (or, rather, subpath) to the file in that
directory and automatically builds the path to it.
2020-08-25 06:17:59 -06:00
Kenneth Moreland
17b81f54a2 Merge topic 'arrayhandlebitfield-use-buffer'
4345fe26b Store the number of bits of a BitField in the Buffer's metadata
da0403be7 Add metadata to Buffer object.
a84891cd3 Update ArrayHandleBitField to new array style with Buffer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2218
2020-08-25 07:53:37 -04:00
Kenneth Moreland
6f6d4dd3df Merge topic 'arrayhandlesoa-use-buffer'
9941db6df Convert ArrayHandleSOA to use Buffer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2211
2020-08-24 21:52:23 -04:00
Kenneth Moreland
4345fe26b0 Store the number of bits of a BitField in the Buffer's metadata
The number of bits in a `BitField` cannot be directly implied from the
size of the buffer (because the buffer gets padded to the nearest sized
word). Thus, the `BitField stored the number of bits in its own
internals.

Unfortunately, that caused issues when passing the `BitField` data
between it and an `ArrayHandleBitField`. If the `ArrayHandleBitField`
resized itself, the `BitField` would not see the new size because it
ignored the new buffer size.

To get around this problem, `BitField` now declares its own
`BufferMetaData` that stores the number of bits. Now, since the number
of bits is stored in the `Buffer` object, it is sufficient to just share
the `Buffer` to synchronize all of the state.
2020-08-24 17:09:30 -06:00
Kenneth Moreland
9941db6df5 Convert ArrayHandleSOA to use Buffer
Make `ArrayHandleSOA` use the new `ArrayHandle` style that uses `Buffer`
objects to manage and transfer data.
2020-08-24 16:03:17 -06:00
Kenneth Moreland
da0403be76 Add metadata to Buffer object.
One of the goals of the `Buffer` object is to allow sharing of data
among objects that will interpret the data differently or give a
different interface over the data. However, when sharing only the array,
important metadata can become lost.

Provide a field that can store some custom metadata in the buffer object
so that the rest of the state can follow the buffer object around.
2020-08-24 15:57:15 -06:00
Kenneth Moreland
a84891cd32 Update ArrayHandleBitField to new array style with Buffer 2020-08-24 15:57:13 -06:00
Ben Boeckel
16abba7136 Merge topic 'clang-format-9-real'
cf0cdcf7d clang-format: reformat the repository with clang-format-9

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2233
2020-08-24 14:31:38 -04:00
Kitware Robot
cf0cdcf7d1 clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Ben Boeckel
1ea2e77ec2 Merge topic 'clang-format-9'
af7567342 clang-format: reformat the repository with clang-format-9
72f76d235 clang-format: update configuration for 9.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2216
2020-08-24 13:56:57 -04:00
Kitware Robot
af75673424 clang-format: reformat the repository with clang-format-9 2020-08-24 11:47:55 -04:00
Ben Boeckel
72f76d2355 clang-format: update configuration for 9.0 2020-08-24 11:47:55 -04:00
Robert Maynard
db3b281da3 Merge topic 'correct_clang_cuda_warnings'
b48c19f25 Correct warnings found by using clang as the host compiler for cuda

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2232
2020-08-24 10:01:47 -04:00
Robert Maynard
b48c19f251 Correct warnings found by using clang as the host compiler for cuda 2020-08-24 08:57:38 -04:00
Kenneth Moreland
0370029f92 Merge topic 'free-atomic-functions'
6cbcb9f5d Fix behavior of Cuda AtomicLoad with SequentiallyConsistent
7573d4ed5 Fix compiler warnings
147dd24d0 Remove ARM intrinsics in MSVC
2229c22f4 Avoid invalid Kokkos atomic calls
3b147878f Always use our implementation of Cuda atomics
9e6fe8fb6 Add memory order semantics to atomic functions
d2ac4b860 Be more careful in casting with Atomic functions
13056b3af Deprecate AtomicInterfaceControl and AtomicInterfaceExecution
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2223
2020-08-22 00:21:01 -04:00
Vicente Bolea
42009394fc Merge topic 'fix-xl-warnings'
e3d734708 IBM XL: disable unused-template pragma for xl

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2230
2020-08-21 17:36:52 -04:00
Vicente Adolfo Bolea Sanchez
e3d7347080 IBM XL: disable unused-template pragma for xl
Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2020-08-21 15:40:05 -04:00
Robert Maynard
111ff949d9 Merge topic 'VTKmConfig_only_modify_non_aliased_targets'
1d6d81292 VTKmConfig: Only modify vtkm::cuda when it is an installed target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2231
2020-08-21 13:31:15 -04:00
Robert Maynard
6db300ce77 Merge topic 'updates_to_gitlabci'
c73bc0a93 CI: add clang+cuda and correct missing cuda packages on centos

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2229
2020-08-21 12:03:47 -04:00
Robert Maynard
1d6d812922 VTKmConfig: Only modify vtkm::cuda when it is an installed target 2020-08-21 11:59:24 -04:00
Robert Maynard
c73bc0a93f CI: add clang+cuda and correct missing cuda packages on centos 2020-08-21 08:31:27 -04:00
Kenneth Moreland
6cbcb9f5d7 Fix behavior of Cuda AtomicLoad with SequentiallyConsistent
According to Allie Vacanti, a sequentially consistent load requires a
full fence on Cuda hardware to be conforming.

Also improved the documentation of `MemoryOrder` based on Allie's
suggestion.

Also removed the `Consume` memory order based on Allie's suggestion. It
is tricky to use correctly, and most implementations just regress to the
safer `Acquired` behavior anyway.
2020-08-20 17:53:47 -06:00
Kenneth Moreland
7573d4ed57 Fix compiler warnings 2020-08-20 17:08:36 -06:00
Kenneth Moreland
147dd24d01 Remove ARM intrinsics in MSVC 2020-08-20 17:08:36 -06:00