Commit Graph

4988 Commits

Author SHA1 Message Date
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
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
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
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
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
ayenpure
2714da8f0e Adding changes suggested by Rob on GitLab
- Seperate BoundingIntervalHierarchy.h into
  - BoundingIntervalHierarchy.h
  - BoundingIntervalHierarchy.hxx
  - BoundingIntervalHierarchy.cxx
2018-06-29 09:09:24 -06:00
Kenneth Moreland
2382c4d648 Merge topic 'pointlocator-general-interface'
4459ab917 Merge branch 'master' into 'pointlocator-general-interface'
51fd4a117 Fix warning about __host__/__device__ on default constructor
6f75cd008 Fix crash in CUDA compiler
439beaaed Make point locator tests have consistent devices
33f1f2dd1 Make sure all source files are listed in CMake
367ca3e21 Correct error of grabbing reference of stack variable
693c8ea8c Update PointLocatorUniformGrid.h
d8ff2ba78 Update PointLocator.h to add a newline at the end of file.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Li-Ta Lo <ollie@lanl.gov>
Merge-request: !1292
2018-06-28 18:18:32 -04:00
Abhishek Yenpure
ab81c6335b Changing Float64 to FloatDefault 2018-06-28 13:00:33 -07:00
Abhishek Yenpure
adde6491a1 SplitProperties and TreeNode -Wmissing-field-initializers fixes 2018-06-28 12:46:45 -07:00
Kenneth Moreland
4459ab9174 Merge branch 'master' into 'pointlocator-general-interface'
# Conflicts:
#   vtkm/cont/PointLocatorUniformGrid.h
2018-06-28 12:51:08 -04:00
Robert Maynard
9a1b44cc88 Merge topic 'update_osx_rtti_doc'
46d85146d Update the documentation on why VTKM_ALWAYS_EXPORT exists.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1293
2018-06-28 11:46:38 -04:00
Robert Maynard
46d85146d5 Update the documentation on why VTKM_ALWAYS_EXPORT exists. 2018-06-28 11:46:13 -04:00
Allison Vacanti
404939d6d4 Merge topic 'doxygen_fixes'
1e53b86ea Identifiers in doxygen @param blocks must appear in signature.
828bb3179 Silence expected doxygen warning.
6db40ae49 Newline needed after \file command.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1291
2018-06-28 11:35:43 -04:00
Allison Vacanti
0236595f94 Merge topic 'suppress_hd_warnings_for_atomics'
a8d8b3670 Suppress host/device warnings on CUDA atomics.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1286
2018-06-28 10:05:59 -04:00
Dave Pugmire
912d393b07 Merge topic 'coordSysFilter'
80b12e325 Merge branch 'coordSysFilter' of https://gitlab.kitware.com/dpugmire/vtk-m into coordSysFilter
ab5eeab18 Fixes for making the filters non-templated.
27dade145 Fixes for coordinate systems w/ help from Sujin.
db5ded3a6 Add files for coord sys transform filters.
17087a26a Filter for coordinate system transform.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1284
2018-06-28 05:23:21 -04:00
Abhishek Yenpure
72d4556f7d Adding changes for Ken's review from GitLab
- Reducing the stack allocation for CUDA for the BIH unit test
- Adding changes from Ken's review
- Suppress ptxas stack size warning for BoundingIntervalHierarchy
2018-06-27 22:40:13 -06:00
Kenneth Moreland
51fd4a117d Fix warning about __host__/__device__ on default constructor
The vtkm::exec::PointLocatorUniformGrid has a default constructor. It
was "helpfully" declared as VTKM_EXEC_CONT, but apparently that is the
wrong thing to do for constructors that are set to default.
2018-06-28 05:05:54 +02:00
Kenneth Moreland
6f75cd008b Fix crash in CUDA compiler
Previously when PointLocatorUniformGrid.h was compiled by the CUDA
compiler, the compiler would crash. Apparently during the ptxas
part of the compiler goes into a crazy recursion and runs out of
stack space. This appears to be a long-standing bug in CUDA
(been there for multiple releases) without a clear reason why it
sometimes rears its ugly head. (See for example
https://devtalk.nvidia.com/default/topic/1028825/cuda-programming-and-performance/-ptxas-died-with-status-0xc00000fd-stack_overflow-/)

The problem appears to be when having a doubly or triply nested
loop over a box of values to check in the uniform array. This
appears to fix the problem by converting that to a single for
loop with some index magic to convert that to 3D indices.
2018-06-27 23:52:48 +02:00