Commit Graph

564 Commits

Author SHA1 Message Date
Robert Maynard
705528bf17 vtk-m ArrayHandle + basic storage has an optimized PrepareForDevice method
By hard coding the PrepareForDevice to know about all the different VTK-m
devices, we can have a single base class do the execution allocation, and not
have that logic repeated in each child class.
2018-02-16 10:00:28 -05:00
Robert Maynard
d0a68d3266 Refactor vtk-m storage basic to generate less code
By moving all common operations to a parent class we can
significantly reduce the vtk-m library size.
2018-02-16 09:59:19 -05:00
Robert Maynard
22ea58335a iVTK-m CUDA backend doesn't use thrust::cuda::pointer any more.
This was removed as CUDA 9.0 on MSVC has issues where CUB/Thrust
would fail to compile when given these types.
2018-02-02 08:33:17 -05:00
luz.paz
80b11afa24 Misc. typos
Found via `codespell -q 3` via downstream VTK
2018-01-30 06:51:47 -05:00
Sujin Philip
8f78aa739d Add CellLocator
Add a general cell locator that has an optimized path for uniform grid
datasets and uses CellLocatorTwoLevelUniformGrid for all other
dataset types.
2018-01-12 10:16:26 -05:00
Sujin Philip
70fcd1d1cc Update CoordinateSystem to use the Virtual Array 2018-01-10 10:19:19 -05:00
Sujin Philip
950b12b1f2 Add ArrayHandleVirtualCoordinates 2018-01-09 17:23:41 -05:00
Utkarsh Ayachit
842019023a Merge branch 'diy-as-3rd-party' into 'master'
DIY as 3rd party import

See merge request vtk/vtk-m!1047
2018-01-04 10:58:51 -05:00
Robert Maynard
a8415d8e37 VTK-m now widens result type for UInt8/Int8/UInt16/Int16 input.
When using vtkm::dot on narrow types you easily rollover the values.
Instead the result type of vtkm::dot should be wide enough to store the results
(32bits) when this occurs.

Fixes #193
2018-01-03 16:32:41 -05:00
Utkarsh Ayachit
37969e9602 Use VTKM_DIY() to include diy headers.
This makes it easier to mangle diy and support using external diy.
2018-01-03 14:53:37 -05:00
Sujin Philip
96c22747d5 Merge topic 'fix-field-api'
334262db Fix Field constructors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1035
2017-12-21 14:51:52 -05:00
Sujin Philip
334262db16 Fix Field constructors
1. Add option to copy user supplied array in make_ArrayHandle.
2. Replace Field constructors that take user supplied arrays with make_Field.
3. Replace CoordinateSystem constructors that take user supplied arrays with
   make_CoordinateSystem.
2017-12-21 12:48:15 -05:00
Matt Larsen
83e51cf42e creating ray tracing benchmark 2017-12-20 14:22:52 -08:00
Matt Larsen
a410650655 trying to create a benchmark for ray tracing 2017-12-20 10:25:16 -08:00
Utkarsh Ayachit
186e686968 Add ability to run tests with mpiexec.
Extends `vtkm_unit_tests` to support running tests with `mpiexec`.
Updates `UnitTestMultiBlock` to use mpi, if available.
2017-12-18 14:45:25 -05:00
Utkarsh Ayachit
1bb7dde971 Update MultiBlock to use diy for block-based operations.
Updating MultiBlock to use `diy` for computing block summaries like
ranges, bounds etc. This makes it possible to MultiBlock to
work in distributed operations without explicit logic.
2017-12-15 15:15:23 -05:00
Matt Larsen
c7db823ea0 Merge topic 'algorithm_wrap'
bf6cb1bd removing state from functors and adding variadic templates
013113e3 Fixing streaming scan doc
eaebaea7 adding a wrapper for device adapter algorithm

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1011
2017-12-11 20:28:48 -05:00
Matt Larsen
655412fca3 adding support for log plots with the wireframer 2017-12-05 10:00:27 -08:00
Matt Larsen
eaebaea7cb adding a wrapper for device adapter algorithm 2017-11-29 07:44:37 -08:00
Robert Maynard
203205a171 TryExecute RuntimeDeviceTracker can't be a const ref anymore.
Previously we allowed a const ref as we would make a copy, this only works
as it relies on  RuntimeDeviceTracker implementing state through a shared_ptr.
Instead if we require modifiable types only we can make TryExecute more
efficient and clearer on what it does.
2017-11-10 10:02:45 -05:00
Robert Maynard
dfb9cc6236 Allow users to pass multiple arguments to TryExecute 2017-11-09 12:45:00 -05:00
Robert Maynard
5384305d25 Update tests and a single worklet to verify new CastAndCall works 2017-11-08 13:19:05 -05:00
Robert Maynard
68381d9fe5 Rework TryExecute to leverage perfect forwarding.
By using perfect forwarding we can reduce not only the amount of TryExecute
signatures, but we can enable the ability to pass temporary functors to
TryExecute.

At the same time we have optimized TryExecute by moving the string generation
code into a single function that is compiled into the vtkm_cont library.

The end result is that the vtkm_rendering library size has been reduced from
12MB to 11MB, and we shave off about 5% of our build time.
2017-11-08 12:48:09 -05:00
Sujin Philip
8c242cef91 Switch from faux to true virtuals 2017-11-06 15:25:29 -05:00
Robert Maynard
27d1275249 Correct issues on windows with debug tests timing out.
The tests actually raised a std assert which was causing a timeout as it
required user intervention to click through.
2017-10-31 13:35:13 -04:00
Sujin Philip
5842da4921 Remove ArrayHandle CopyInto
Fixes #170
2017-10-27 17:28:59 -04:00
Matt Larsen
450033110c Merge remote-tracking branch 'upstream/master' into support_2D_and_1D_plots 2017-10-26 08:10:50 -07:00
Matt Larsen
035814a4a7 adding 2d ortho support to ray tracing and updating WireFramer to support 2d lines and 1D line plots 2017-10-26 07:58:02 -07:00
Li-Ta Lo
3acd7c37a1 Merge topic 'pointlocator'
ed3a64a5 Coding style improvment
7fa800b7 Update TestingPointLocatorUniformGrid.h
f1974cab Update TestingPointLocatorUniformGrid.h
508882fa PointLocatorUniformGrid

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !973
2017-10-25 10:42:07 -04:00
Li-Ta Lo
ed3a64a512 Coding style improvment
Capitalize the first character of data members. Rename Run() to FindNearestPoint().
2017-10-24 18:26:01 -04:00
Kenneth Moreland
e50ec6b667 Fix type error in ScanExclusiveByKey
The implementation of ScanExclusiveByKey in
DeviceAdapterAlgorithmGeneral by shifting values in the input values
array and then calling ScanInclusiveByKey. However, the temporary
shifted values array was created using the key type instead of the
values type. This caused a compile error when the keys and values had
different types.
2017-10-24 16:12:30 -06:00
Allison Vacanti
40441e78e6 Fix some additional warnings. 2017-10-23 11:48:19 -04:00
Li-Ta Lo
7fa800b7f3 Update TestingPointLocatorUniformGrid.h 2017-10-19 16:04:55 -04:00
Li-Ta Lo
f1974cab5a Update TestingPointLocatorUniformGrid.h
Add a empty new line at the end of file.
2017-10-19 16:00:06 -04:00
Li-Ta Lo
508882fa21 PointLocatorUniformGrid
Provide an accelerated neareast neighbor search of points in the
dataset using a one layer uniform grid.
2017-10-19 11:44:36 -06:00
Allison Vacanti
4cd791932b Ensure that Pair and Vec are trivial classes.
For std::copy to optimize a copy to memcpy, the valuetype must be both
trivially constructable and trivially copyable.

The new copy benchmarks highlighted an issue that std::copy'ing pairs
and vecs were not optimized to memcpy. For a 256 MiB buffer on my
laptop w/ GCC, the serial copy speeds were:

UInt8:                 10.10 GiB/s
Vec<UInt8, 2>           3.12 GiB/s
Pair<UInt32, Float32>   6.92 GiB/s

After this patch, the optimization occurs and a bitwise copy occurs:

UInt8:                 10.12 GiB/s
Vec<UInt8, 2>           9.66 GiB/s
Pair<UInt32, Float32>   9.88 GiB/s

Check were also added to the Vec and Pair unit tests to ensure that
this classes continue to be trivial.

The ArrayHandleSwizzle test was refactored a bit to eliminate a new
'possibly uninitialized memory' warning introduced with the default
Vec ctors.
2017-10-18 14:58:35 -04:00
Allison Vacanti
7b66dece45 Add equality operators that handle different handle types.
In generic code, it's a pain to use the equality operators since they
requires the ValueType and Storage to match, else the operator is undefined.
This commit adds operators for such comparisons, as well as a unit test.
2017-10-11 17:25:13 -04:00
Allison Vacanti
1018d981a0 Check for overlap in CopySubRange.
Some parallel copy implementations will not handle this sanely.
2017-10-11 16:52:32 -04:00
Allison Vacanti
b396716f86 Merge topic 'vertexclustering-reducepoints'
8fabece1 Use median point from cluster as representative vertex.
c7bf0c95 Compute PointIdMap while reducing cluster ids.
5dee7c6a Select input point from cluster rather than averaging.
28e76ddb Update vertex clustering benchmarking code.
e3c9e7bb Optimize cell map computation.
d7669650 Use requested grid in VertexClustering worklet.
0472dc11 Fix warning on Cuda.
3f4e17e2 Add field mapping to VertexClustering.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !960
2017-10-11 16:25:30 -04:00
Sujin Philip
41679cb5f9 Add a CellLocator
Implements a two-level uniform grid cell locator
2017-10-10 14:01:41 -04:00
Allison Vacanti
5420368ae0 Add fields to the cow nose testing dataset. 2017-10-10 10:28:51 -04:00
Kenneth Moreland
091881d2a4 Use default storage in ArrayHandleCompositeVector test
The idea of the test was to turn off the "default" storage to ensure
that the fancy array was not making assumptions about the storage of its
delegate array. But there is lots of code elsewhere that uses the
default storage (rightly so) to create intermediate arrays, which will
fail if you disable the default storage. This was causing a test to
fail, so turn default storage back on for this case.
2017-09-27 10:05:24 -06:00
Kenneth Moreland
2625ae7866 Update VTK-m source to use new ArrayCopy functionality 2017-09-25 16:54:46 -06:00
Kenneth Moreland
65c7324ffe Create ArrayCopy method
This is a convenience method to do a deep copy of an array. This comes
up a lot, but can be a pain if you don't have a specific device adapter
on which to do the copy.
2017-09-25 16:28:44 -06:00
Robert Maynard
311618a15f Enable highest level of warnings(W4) under MSVC
This will make VTK-m warning level match the one used by VTK. This commit
also resolves the first round of warnings that W4 exposes.
2017-09-22 13:04:28 -04:00
Kenneth Moreland
c3a3184d51 Update copyright for Sandia
Sandia National Laboratories recently changed management from the
Sandia Corporation to the National Technology & Engineering Solutions
of Sandia, LLC (NTESS). The copyright statements need to be updated
accordingly.
2017-09-20 15:33:44 -06:00
Kenneth Moreland
1e7b3e6e8b More control over device in ConvertNumComponentsToOffsets
Previously, ConvertNumComponentsToOffsets always used TryCompile on the
global set of runtime devices. That is still the default behavior, but
now you are able to specify your own runtime tracker. Also, there are
now versions of ConvertNumComponentsToOffsets that take a device adapter
tag.
2017-09-07 15:08:55 -06:00
dongliangchu
a0cdad52e5 reviewed version 1 2017-08-30 10:30:29 -04:00
dongliangchu
90c870f2f5 reviewed version 1 2017-08-24 10:50:14 -04:00
Robert Maynard
0cbc3db016 Merge topic 'stolen_arrays_can_still_be_used_as_input'
c385b21a StorageBasic is now treated like users memory after being stolen.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !891
2017-08-22 09:09:58 -04:00