Commit Graph

8793 Commits

Author SHA1 Message Date
Kenneth Moreland
a6edc832da Merge topic 'soa-array-default'
cecd81d5d Add types appropriate for Ascent
865855ea0 Add changelog for making ArrayHandleSOA a default array
50ff9c22a Add support of `ArrayHandleSOA` as a default storage type
bc09a9cd1 Add precompiled versions of `ArrayRangeCompute` for `ArrayHandleSOA`
77f9ae653 Support `ArrayHandleSOA` only for `Vec` value types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2349
2021-01-14 12:40:58 -05:00
Kenneth Moreland
7a3f20560a Merge topic 'switch-to-new-arrayhandle'
3228752b2 Fix error message when using deprecated storage
5ef4e7eee Make new style of ArrayHandle the expected style

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2375
2021-01-14 10:14:20 -05:00
Kenneth Moreland
9579c34ebb Merge topic 'cast-call-for-component'
9ed68f5a4 Add default copy constructor for `RecombineVec`
66fbc99b0 Disable ArrayHandleCounting for invalid value types
0b2dbfdda Fix ICE in GCC 4.8
50d932013 Add missing types to serialization of UnknownArrayHandle
ab9c0f724 Add arithmetic assignment operators to `RecombineVec`
1cc6dbb0c Allow `VecBaseCommon` operators to work with any `Vec`-like
74536d4ca Support `Vec` operators on `ArrayPortalValueReference`
06c59fed1 Update MapFieldMergeAverage/Permuation to use new CastAndCall
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2381
2021-01-13 15:17:25 -05:00
Kenneth Moreland
9ed68f5a42 Add default copy constructor for RecombineVec
Some compilers complain if the copy constructor is not explicitly
specified.
2021-01-13 09:19:34 -07:00
Kenneth Moreland
66fbc99b09 Disable ArrayHandleCounting for invalid value types
`ArrayHandleCounting` only works with values that support basic
arithmetic. The concept of counting makes little sense for types that
are not well defined for addition and multiplication like `bool`,
`string` and other custom types.
2021-01-13 09:19:34 -07:00
Kenneth Moreland
0b2dbfdda1 Fix ICE in GCC 4.8 2021-01-13 09:19:34 -07:00
Kenneth Moreland
50d9320135 Add missing types to serialization of UnknownArrayHandle 2021-01-13 09:19:34 -07:00
Kenneth Moreland
ab9c0f7248 Add arithmetic assignment operators to RecombineVec
`RecombineVec` is the class used as the value type for
`ArrayHandleRecombineVec`. It is a `Vec`-like object, but has several
limitations (including arithmetic operators like `+` won't work).
Arithmetic assignment operators are useful so you don't have to create
impossible intermediate values.
2021-01-13 09:19:34 -07:00
Kenneth Moreland
1cc6dbb0c2 Allow VecBaseCommon operators to work with any Vec-like
Previously, the arithmetic assignment operators (`+=`, `-=`, `*=`, `/=`)
on `VecBaseCommon` only accepted another subclass of `VecBaseCommon`.
Changed the operators to accept any type.

The benefit of this change is that the assignment operator of classes
that inherit from `VecBaseCommon` can now work with `Vec`-like classes
that do not inherit from `VecBaseCommon`. I think the only real downside
is that the template could match other classes that would lead to
invalid comparisons. But such use would lead to a compile error anyway.
The difference is that instead of getting an error that no overloaded
version of the operator is available, you will get an error inside the
code of the operator.
2021-01-13 09:19:34 -07:00
Kenneth Moreland
74536d4ca1 Support Vec operators on ArrayPortalValueReference 2021-01-13 09:19:33 -07:00
Kenneth Moreland
06c59fed13 Update MapFieldMergeAverage/Permuation to use new CastAndCall
These functions now use
`UnknownArrayHandle::CastAndCallWithExtractedArray` to reduce the number
of times the worklet is run.
2021-01-13 09:19:33 -07:00
Kenneth Moreland
f90c2bfd0b Add UnknownArrayHandle::CastAndCallWithExtractedArray
This provides a convenience for calling a function for most
`ArrayHandle` types.
2021-01-13 09:19:33 -07:00
Kenneth Moreland
97324e75cd Enable reinterpreting UnknownArrayHandle to compatible C types
The base C types have several "duplicate" types that the compiler
considers different even though the byte representation is the same. For
example, `char` and `signed char` have the same meaning but are treated
as different types. Likewise, 'long', 'int', and 'long long' are all
different types even though 'long' is the same as either 'int' or 'long
long'.

When pulling extracted components from `UnknownArrayHandle`, there is
little value for creating multiple code paths for types like `char` and
`signed char`. Instead, allow implicit conversion among these types.
2021-01-13 09:19:27 -07:00
Kenneth Moreland
de55494c81 Merge topic 'disable-curl-auth'
e10c4fad6 Disable security with downloading sccache tarball

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2382
2021-01-12 15:45:01 -05:00
Kenneth Moreland
3228752b2d Fix error message when using deprecated storage
When using the old style of storage, you need to declare it as the old
style so that a bridge to the new style can be built in. You get a
compile error message if this is not done. The previous message gave the
wrong instructions.
2021-01-12 07:18:08 -07:00
Kenneth Moreland
5ef4e7eeee Make new style of ArrayHandle the expected style
What was previously declared as `ArrayHandleNewStyle` is now just the
implementation of `ArrayHandle`. The old implementation of `ArrayHandle`
has been moved to `ArrayHandleDeprecated`, and `ArrayHandle`s still
using this implementation must declare `VTKM_ARRAY_HANDLE_DEPRECATED` to
use it.
2021-01-12 07:17:53 -07:00
Kenneth Moreland
e10c4fad6e Disable security with downloading sccache tarball
Some organizations use a firewall that intercepts SSL communications and
replaces the authentication token with an organization-wide token that
is just supposed to be accepted. Browsers can be locally configured for
this intentional trickery, but it's a little more tricky for the use of
`curl` in a batch script that is shared with external collaborators.

The easiest solution is to just disable the security for the `curl`
download. This makes the script more susceptible to "man in the middle"
attacks, but it's probably easier to just slip malware in the public
repos anyway.
2021-01-11 17:29:28 -07:00
Kenneth Moreland
b4ca18607c Merge topic 'recombine-vec-array'
f941cb607 Move Fetch specializations to vtkm/exec/arg
439c18cfc Add changedoc for ArrayHandleRecombineVec
9833f3d0d Fix issue with using recombined vec as an output array
7dd9b4252 Add UnknownArrayHandle::ExtractArrayFromComponents
755af739e Add ArrayHandleRecombineVec

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2372
2021-01-11 13:50:57 -05:00
Robert Maynard
ca8e4fe09a Merge topic 'correct_atomic_unused_warnings_msvc'
c5efdb39a vtkm/Atomic doesn't generate unused parameter warnings on MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Vicente Bolea <vicente.bolea@kitware.com>
Merge-request: !2380
2021-01-11 13:27:33 -05:00
Kenneth Moreland
f941cb607c Move Fetch specializations to vtkm/exec/arg
Some of the special `ArrayHandle`s require specialized versions of
`vtkm::exec::arg::Fetch`. The specializations were not put in the
respective vtkm/exec/arg/Fetch*.h header files because the definition of
the `ArrayHandle`s was not available there. The implementation was in
the ArrayHandle*.h files, but it is hard to find the specialization
there.

Instead, make a secondary header file in vtkm/exec/arg that implements
the Fetch specialization and include it from the ArrayHandle*.h file.
That way, the basic Fetch does not have to include odd `ArrayHandle`
types but the `Fetch` implemenations are still all located together.
2021-01-11 10:47:58 -07:00
Robert Maynard
c5efdb39ac vtkm/Atomic doesn't generate unused parameter warnings on MSVC 2021-01-11 09:01:48 -05:00
Sujin Philip
4fac642273 Merge topic 'kokkos-opt-scan'
e57f5a175 Fix DeviceAdapterAlgorithmGeneral Reduce
1b7fc3d3e Use `Kokkos::parallel_scan` for Scan functionality

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2360
2021-01-08 10:33:12 -05:00
Kenneth Moreland
34437712d2 Merge topic 'fix-atomic-array-execution-documentation'
fa876efc9 Correct documentation for AtomicArrayExecutionObject

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2379
2021-01-07 16:45:59 -05:00
Sujin Philip
e57f5a175d Fix DeviceAdapterAlgorithmGeneral Reduce
It was using `ArrayHandleImplicit` in an unsupported manner.
2021-01-07 16:24:53 -05:00
Sujin Philip
1b7fc3d3e4 Use Kokkos::parallel_scan for Scan functionality 2021-01-07 16:24:39 -05:00
Kenneth Moreland
fa876efc90 Correct documentation for AtomicArrayExecutionObject
The code example had errors that would prevent it from compiling
correctly.
2021-01-07 13:57:38 -07:00
Robert Maynard
df93250969 Merge topic 'flying_edges_support_kokkos'
ebf648906 FlyingEdges uses optimized Y axis algorithm for Kokkos device

Acked-by: Kitware Robot <kwrobot@kitware.com>
Rejected-by: Robert Maynard <robert.maynard@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !2367
2021-01-07 15:16:09 -05:00
Kenneth Moreland
318a03019f Merge topic 'undeprecate-unknownarrayhandle-numberofcomponents'
d91b4f356 Undeprecate UnknownArrayHandle::GetNumberOfComponents

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2377
2021-01-07 15:03:53 -05:00
Robert Maynard
ebf648906f FlyingEdges uses optimized Y axis algorithm for Kokkos device 2021-01-07 13:46:42 -05:00
Robert Maynard
7c94ebf2ed Add HDF5 to Ubuntu 18.04/base image 2021-01-07 12:00:52 -05:00
Robert Maynard
cb7d987544 Merge topic 'correct_flying_edge'
a31293da7 Add uniformat grid contour regression tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Nickolas Davis <nadavi@sandia.gov>
Merge-request: !2369
2021-01-07 11:54:26 -05:00
Kenneth Moreland
d91b4f3568 Undeprecate UnknownArrayHandle::GetNumberOfComponents
This method was originally deprecated to avoid confusion with the
indexing of the components in `ExtractComponent`. However, there might
be good reason to want to know the non-flat number of components, so
maybe getting rid of it is not a great idea. Unmark the method as
deprecated, at least for now.
2021-01-07 09:48:25 -07:00
nadavi
a31293da7f Add uniformat grid contour regression tests
Fixes #576

The Y-axis flying edge bug(s) had been fixed in !2197, and so
now we can test uniform data
2021-01-07 11:26:24 -05:00
Kenneth Moreland
cecd81d5db Add types appropriate for Ascent 2021-01-07 08:15:17 -07:00
Nickolas Davis
3f020101c4 Merge topic 'image-diff-improvements'
dd3193d69 consolidate contour-wedge baseline images to favor new pixel diff calculation
da751cf06 change arg ordering, support setting number of error pixels allowed

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2374
2021-01-06 16:27:27 -05:00
nadavi
dd3193d69d consolidate contour-wedge baseline images to favor new pixel diff calculation 2021-01-06 20:50:50 +00:00
nadavi
da751cf061 change arg ordering, support setting number of error pixels allowed 2021-01-06 20:50:49 +00:00
Kenneth Moreland
865855ea02 Add changelog for making ArrayHandleSOA a default array 2021-01-06 13:20:59 -07:00
Kenneth Moreland
50ff9c22aa Add support of ArrayHandleSOA as a default storage type 2021-01-06 13:20:58 -07:00
Kenneth Moreland
bc09a9cd15 Add precompiled versions of ArrayRangeCompute for ArrayHandleSOA 2021-01-06 13:20:58 -07:00
Kenneth Moreland
77f9ae653d Support ArrayHandleSOA only for Vec value types
Previously, `ArrayHandleSOA` worked with any value type that supported
`VecTraits`. That means that `ArrayHandleSOA` worked with scalar types
like `Float32`. However, for scalar types, the behavior is essentially
the same as `ArrayHandleBasic`, but with lots of extra templating and
code generation.

Although there is nothing _wrong_ with allowing `ArrayHandleSOA` holding
a scalar, there is no real reason to either (other than likely template
convenience). Generally, there is nothing wrong with supporting it, but
if you want to support `ArrayHandleSOA` in places where types are not
known (e.g. `Field`), then templating tends to iterate over the cross of
all supported types with all supported storage. That means such code
will automatically generate a bunch of code for `ArrayHandleSOA` with
scalars even if there is no reason for those code paths.

So, we can just disable the use of `ArrayHandleSOA` with scalars to
allow us to use `ArrayHandleSOA` as a default storage without creating
all these useless code paths.
2021-01-06 13:20:58 -07:00
Li-Ta Lo
23a95f864a exclude header files from install check when it is not enabled 2021-01-05 13:43:16 -07:00
Li-Ta Lo
d81f08eedb correct copyright mesage 2021-01-05 13:29:35 -07:00
Li-Ta Lo
fb6c9afe7c uncomment ubuntu1805_cuda image 2021-01-05 13:08:23 -07:00
Li-Ta Lo
6af7c3122a making WriteDataSet virtual 2021-01-05 12:59:52 -07:00
Li-Ta Lo
1ebcde1d30 add HDF5 include path 2021-01-05 11:10:48 -07:00
Li-Ta Lo
6dd1d7be3a direct gitlab CI to use my docker image 2021-01-05 10:19:07 -07:00
Li-Ta Lo
f00aececb0 experimental changes to dockerfile and gitlab ci configurations 2021-01-05 09:47:27 -07:00
Kenneth Moreland
439c18cfc0 Add changedoc for ArrayHandleRecombineVec 2021-01-04 15:10:18 -07:00
Kenneth Moreland
9833f3d0da Fix issue with using recombined vec as an output array
`ArrayHandleRecombineVec` is used when calling
`ExtractArrayFromComponents` from `UnkownArrayHandle`. It needs special
handling with the `Fetch` for an output array.
2021-01-04 14:21:32 -07:00