Commit Graph

5151 Commits

Author SHA1 Message Date
Haocheng LIU
376b304275 Merge topic 'Create-warp-by-Vector-workletAndFilter'
a4c4c1931 Add a warpVector worklet and filter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1268
2018-07-09 15:18:31 -04:00
Haocheng LIU
a4c4c1931c Add a warpVector worklet and filter
This commit adds a worklet as well as a filter that modify point coordinates by moving points
along a vector by a certain scalar amount.
It's a simpified version of the vtkWarpVector in VTK.
It doesn't modify the point coordinates, but creates a new point coordinates that have been warped.
2018-07-09 14:22:12 -04:00
Robert Maynard
776d085464 Merge topic 'remove_cyclic_target_dependencies'
2ebde3806 Remove cyclic link between vtkm_developer_flags and vtkm_compiler_flags.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1309
2018-07-09 11:28:38 -04:00
Robert Maynard
2ebde3806a Remove cyclic link between vtkm_developer_flags and vtkm_compiler_flags.
Fixes #263
The vtkm_developer_flags target should only be to be consumed by
vtkm_compiler_flags.
2018-07-09 08:27:41 -04:00
Robert Maynard
1e28a9e3ae Merge topic 'support_pointers_as_input_to_dispatcher_invoke'
64958b014 VTK-m now supports passing pointers when invoking worklets.
c631dccfc Invocation parameters are now non const and can be 'modified'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1303
2018-07-06 16:12:53 -04:00
Robert Maynard
64958b014b VTK-m now supports passing pointers when invoking worklets.
The original design of invoke and the transport infrastructure
relied on the implementation behavior of vtkm::cont types
such as ArrayHandle that used an internal shared_ptr to managed
state. This allowed passing by value instead of passing by
non-const ref when needing to transfer information to the device.

As VTK-m adds support for classes that use virtuals the ability
to pass by base pointer type allows for us to invoke worklets
using a base type without the risk of type slicing.

Additional by moving over to a non-const ref Invocation we
can update all transports that have 'output' to now be
by ref and therefore support types that can't be copied while
being 'more' correct.
2018-07-06 14:27:36 -04:00
Robert Maynard
c631dccfcb Invocation parameters are now non const and can be 'modified'
The invocation parameters need to be non const as we want to
be able to call non-const methods like `PrepareForOutput` on them
from a transport function.

The original implementation abused the fact that everything
could be copied by value and have that work properly. But
when we start introducing virtual classes copying by value of
a base type can cause type slicing.
2018-07-06 14:27:36 -04:00
Kenneth Moreland
3b828608a4 Support ExecArg behavior in vtkm::cont::Algorithm methods
Most of the arguments given to device adapter algorithms are actually
control-side arguments that get converted to execution objects internally
(usually a `vtkm::cont::ArrayHandle`). However, some of the algorithms,
take an argument that is passed directly to the execution environment, such
as the predicate argument of `Sort`. If the argument is a plain-old-data
(POD) type, which is common enough, then you can just pass the object
straight through. However, if the object has any special elements that have
to be transferred to the execution environment, such as internal arrays,
passing this to the `vtkm::cont::Algorithm` functions becomes
problematic.

To cover this use case, all the `vtkm::cont::Algorithm` functions now
support automatically transferring objects that support the `ExecObject`
worklet convention. If any argument to any of the `vtkm::cont::Algorithm`
functions inherits from `vtkm::cont::ExecutionObjectBase`, then the
`PrepareForExecution` method is called with the device the algorithm is
running on, which allows these device-specific objects to be used without
the hassle of creating a `TryExecute`.
2018-07-06 18:57:54 +02:00
Robert Maynard
9238cedcab Merge topic 'ice_nvcc_on_renar'
5ced0da8f Try to ice the ubuntu 17.10 + cuda 9.1 compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1305
2018-07-05 11:36:16 -04:00
Allison Vacanti
4c3e4462cb Merge topic 'fix_msvc2017_tuple_get'
be31ce012 Merge branch 'upstream-taotuple' into fix_msvc2017_tuple_get
a8fcccdeb taotuple 2018-07-05 (ee1b4af3)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1307
2018-07-05 11:19:01 -04:00
Allison Vacanti
be31ce0124 Merge branch 'upstream-taotuple' into fix_msvc2017_tuple_get
* upstream-taotuple:
  taotuple 2018-07-05 (ee1b4af3)
2018-07-05 09:50:31 -04:00
TaoCpp Tuple Upstream
a8fcccdeb2 taotuple 2018-07-05 (ee1b4af3)
Code extracted from:

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

at commit ee1b4af3ccfaf0d7fd703b8cfea5dafd942ae0f5 (for/vtk-m).
2018-07-05 09:50:31 -04:00
Robert Maynard
5ced0da8f5 Try to ice the ubuntu 17.10 + cuda 9.1 compiler 2018-07-05 09:14:52 -04:00
Robert Maynard
9531af6d25 Merge topic 'force_point_locator_tests_to_use_correct_device'
e5090e128 Make sure the PointLocatorUniform uses the correct runtime device
38e0e4c33 Mark PointLocatorUniformGrid constructors as host only

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1306
2018-07-05 08:39:06 -04:00
Matthew Letter
25d1403615 fix bad rabse for wireframer
applied master to wireframmer and applied my changes back over it to fix a possible bad rebase
2018-07-03 15:52:53 -06:00
Robert Maynard
e5090e1289 Make sure the PointLocatorUniform uses the correct runtime device 2018-07-03 17:42:57 -04:00
Robert Maynard
38e0e4c33e Mark PointLocatorUniformGrid constructors as host only 2018-07-03 17:41:56 -04:00
Matthew Letter
f892695f16 fixing so wierd merging issue
somehow a rebase removed code that shouldnt have been removed so I added the code back in, gonna see if I can squash this commit later
2018-07-03 14:28:29 -06:00
Sujin Philip
06dee259f7 Minimize cuda synchronizations
1. Have a per-thread pinned array for cuda errors
2. Check for errors before scheduling new tasks and at explicit sync points
3. Remove explicit synchronizations from most places

Addresses part 2 of #168
2018-07-03 14:19:06 -04:00
Abhishek Yenpure
3b76554f17 Merge topic 'change_log_for_spatial_search'
e319dcd6a Adding change log for cell and point locator APIs.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1304
2018-07-03 14:17:54 -04:00
ayenpure
e319dcd6a1 Adding change log for cell and point locator APIs.
Done towards resolution of https://gitlab.kitware.com/vtk/vtk-m/issues/254
2018-07-03 08:50:05 -06:00
Allison Vacanti
8b0777c4b1 Merge topic 'cuda_32bit_id_fix'
1751b4932 Fix build error and host/device warnings on 32-bit builds with CUDA.
768086a0f Merge branch 'upstream-taotuple' into cuda_32bit_id_fix
d4b38a78a taotuple 2018-06-29 (4bd72b5e)
b4110cd5d Update update.sh for taotuple to reflect upstream changes.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1295
2018-07-03 10:47:55 -04:00
Matthew Letter
9bb00ec66d moved the execution object for TwoLevelUniform grid to vrkm::exec 2018-07-02 16:25:48 -06:00
Matthew Letter
db1c9bfeee Change the namespacing of atomic array
moved the execution object to vtkm::exec and AtomicArray to vtkm::cont
2018-07-02 16:25:48 -06:00
Matthew Letter
6b9cb536a8 added new lines at the end of bot recommended files 2018-07-02 16:21:00 -06:00
Matthew Letter
3c9e7f049f updated Atomic array to use new excution object paradigm 2018-07-02 16:21:00 -06:00
Haocheng LIU
6bc579e461 Merge topic 'Allow-NDHistogram-to-take-custom-type'
b47b1f9ae Allow NDHistogram to take custom type

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1299
2018-07-02 17:10:57 -04:00
Haocheng LIU
8eeb1be266 Merge topic 'Add-changelog-cellsets-can-unload-execution-resources'
c3e7de617 Add a changelog for cellset's unloading execution resources ability

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1301
2018-07-02 16:01:05 -04:00
Haocheng LIU
c3e7de617e Add a changelog for cellset's unloading execution resources ability 2018-07-02 15:59:38 -04:00
Allison Vacanti
e4dfccee3d Merge topic 'make_pair_rvalues'
1e6c30b7a Make pair construction rvalue-friendly.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1302
2018-07-02 15:34:33 -04:00
Haocheng LIU
b47b1f9ae4 Allow NDHistogram to take custom type 2018-07-02 15:25:49 -04:00
Allison Vacanti
1e6c30b7af Make pair construction rvalue-friendly. 2018-07-02 14:48:06 -04:00
Kenneth Moreland
6c6ebaff0a Merge topic 'fix-64-bit-floats'
71486f086 Fix TestingPointLocatorUniformGrid for double precision

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !1297
2018-07-02 03:52:19 -04:00
Kenneth Moreland
71486f0864 Fix TestingPointLocatorUniformGrid for double precision
There was an error in TestingPointLocatorUniformGrid in which it was
creating arrays of type vtkm::Float32 and passing them to a worklet that
expected vtkm::FloatDefault. This is corrected.
2018-07-01 11:27:35 +02:00
Abhishek Yenpure
5128d5a1fe Merge topic 'spatialsearch'
e2dccee09 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into spatialsearch
ebdad45d4 Removing VTKM_CONT_EXPORT for the CellLocator
e42c270f8 fixing -Wmissing-field-initializers for BoundingIntevalHierarchyNode
b5f2e7060 Moving changes of .cxx to .hxx
e0296a24b Fixes for resolving Rob's suggestions
dcbb444a7 Warning fixes for BoundingIntervalHierarchy
50963290d Moving BoundingIntervalHierarchy.cxx to device sources
bf224dbb7 Adding VTKM_CONT_EXPORT to BoundingIntervalHierarchy
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1282
2018-06-30 16:14:41 -04:00
ayenpure
e2dccee099 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into spatialsearch 2018-06-30 11:56:33 -06:00
ayenpure
ebdad45d44 Removing VTKM_CONT_EXPORT for the CellLocator 2018-06-30 07:09:41 -06:00
Abhishek Yenpure
e42c270f89 fixing -Wmissing-field-initializers for BoundingIntevalHierarchyNode 2018-06-29 18:58:28 -07:00
Abhishek Yenpure
b5f2e7060e Moving changes of .cxx to .hxx
-For the BoundingIntervalHierarchy CUDA had failures with using
 .cxx file to implement the virtual methods
-Moving the contents to the .hxx file after discussing with Rob
 over email
-Need to still work on the .cxx implementation after merge
2018-06-29 16:11:16 -07:00
ayenpure
e0296a24b6 Fixes for resolving Rob's suggestions
- Releasing GPU resources when not needed.
- Adding VTK_EXEC to TreeNode and SplitProperties constructors
2018-06-29 15:55:23 -07:00
Abhishek Yenpure
dcbb444a74 Warning fixes for BoundingIntervalHierarchy
- Adding VTKM_CONT_EXPORT to CellLocator
- Removing whitespaces
- Fixing warnings of unused typedef
2018-06-29 14:51:50 -06:00
Allison Vacanti
1751b49327 Fix build error and host/device warnings on 32-bit builds with CUDA.
Error: Throwing an exception in CUDA code.
Fix: Change method throwing exception to VTKM_CONT.
New warning: host/device warning in taotuple.
Fix: Markup additional taotuple methods with suppressions.

This also updates our taotuple checkout to match upstream master.
2018-06-29 16:46:18 -04:00
TaoCpp Tuple Upstream
d4b38a78ae taotuple 2018-06-29 (4bd72b5e)
Code extracted from:

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

at commit 4bd72b5ea0b2908302fecc70ed9f648b4e571196 (for/vtk-m).
2018-06-29 16:45:56 -04:00
Allison Vacanti
768086a0f3 Merge branch 'upstream-taotuple' into cuda_32bit_id_fix
* upstream-taotuple:
  taotuple 2018-06-29 (4bd72b5e)
2018-06-29 16:45:56 -04:00
Allison Vacanti
290ed59c0e Merge topic 'more_doxygen_fixes'
ec00a0dce Fix doxygen warning in for exec/PointLocatorUniformGrid.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !1296
2018-06-29 16:05:41 -04:00
Allison Vacanti
ec00a0dced Fix doxygen warning in for exec/PointLocatorUniformGrid. 2018-06-29 15:41:33 -04:00
Allison Vacanti
b4110cd5dd Update update.sh for taotuple to reflect upstream changes. 2018-06-29 14:49:07 -04:00
Abhishek Yenpure
50963290dc Moving BoundingIntervalHierarchy.cxx to device sources
Rectifying print statements in the unit test
2018-06-29 10:46:31 -07:00
ayenpure
bf224dbb7c Adding VTKM_CONT_EXPORT to BoundingIntervalHierarchy 2018-06-29 10:57:25 -06:00
ayenpure
98c45403d3 Removing initialization for Nodes and CellIds for CUDA failure 2018-06-29 10:00:46 -06:00