Commit Graph

1497 Commits

Author SHA1 Message Date
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
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
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
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
ayenpure
7a122f23b4 Fixing Problems with Locators
-Fix missing copyright statements
-Updating the PointLocator interface
-Updating the Cell Locator unit test to use less memory and finish early
2018-06-24 14:55:11 -06:00
ayenpure
f018a8a7d1 Removing unnecessary print statements
- Removing debug print statements from the Bounding Inteval Hierarchy Cell
  Locator
2018-06-23 18:49:57 -06:00
ayenpure
bfb30fb468 Using VirtualObjectHandle for vtkm::exec::CellLocator
- Changing the name PrepareForExecutionOnDevice to PrepareForExecutionImpl

- Adding changes suggested by Ollie and Ken to return the execution object
  from PrepareForExecutionImpl using VirtualObjectHandle

- Updating PrepareForExecutionFunctor
2018-06-23 17:09:29 -06:00
ayenpure
d8e8078099 Fixing the typos with ScanExclusiveByKey
- Fixed the typo
- Moved the test to vtkm/worklet/testing as vtkm/cont/testing does not execute with CUDA
2018-06-15 16:39:00 -07:00
ayenpure
671987148f Adding working implementation of BIH with test
- Uses smart pointers
  - need to get rid of them
2018-06-13 15:08:15 -07:00
ayenpure
61fdfac710 Adding updated CellLocator / PointLocator APIs
- Adding API files
- Adding back Manish's BoundingIntervalHierarchy search structure
- Updating CMakeLists.txt to accomodate these changes
- Adding the old test file from Manish - won't build for now
2018-06-04 20:04:38 -07:00
ayenpure
18579394ed Moving Files for proper CellLocator/PointLocator APIs
-Changing the existing CellLocator.h to CellLocatorHelper.h,
 it's used by CellLocatorTwoLevelUniformGrid.h

-Changing unit tests and worklets that use CellLocator.h to use CellLocatorHelper.h
2018-06-04 19:51:54 -07:00
Shreeraj Jadhav
bf8fcc9189 Merge topic 'TestingDeviceAdapter-int-distribution'
6e099b7c0 Fix issue #110 TestingDeviceAdapter uniform_int_distribution

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1234
2018-05-30 16:00:56 -04:00
Shreeraj Jadhav
6e099b7c09 Fix issue #110 TestingDeviceAdapter uniform_int_distribution
This fix addresses issue #110. Test functions in TestingDeviceAdapter have
been updated to test large arrays through random indices using
std::uniform_int_distribution rather than testing every 100th or 50th value.
2018-05-30 11:04:02 -04:00
Allison Vacanti
1f6a662c0a Merge DevAdaptAlgoThrust --> DevAdaptAlgoCuda. 2018-05-29 14:07:29 -04:00
Allison Vacanti
be0c6a17a9 Move DevAdaptAtomicArrayImplementation to its own file. 2018-05-29 14:07:29 -04:00
Allison Vacanti
3af9f66083 Merge ArrayManagerExecutionThrustDevice into AMECuda. 2018-05-29 14:07:29 -04:00
Allison Vacanti
93506d25e2 Change function signatures to use 'using' aliases.
Also cleaned up some lingering type typedefs.
2018-05-25 17:18:41 -04:00
Allison Vacanti
ac06d16836 Merge topic '212-compvec_cuda_crash'
bb9d6dbda Fix UnitTestDataSetBuilderExplicit failures.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1224
2018-05-24 09:00:16 -04:00
Allison Vacanti
bb9d6dbdac Fix UnitTestDataSetBuilderExplicit failures.
The nvcc-vtable-order-depends-on-per-translation-unit-instantiation-order
bug was to blame.
2018-05-23 15:45:26 -04:00
Haocheng LIU
5c797169ec Use the strong typed enums for vtkm::cont::Field
Since Field association is used either when creating or working
with 'vtkm::cont::Field', it's put in the class itself.
2018-05-22 11:44:51 -04:00
Robert Maynard
4a520b7bdd Merge topic 'pascal_managed_memory_copy_non_blocking'
e0b6e698 copying cpu memory to pascal managed memory now works consistently.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1211
2018-05-18 15:15:17 -04:00
Robert Maynard
9764aca5fe Merge topic 'vtkm_cont_device_tests_use_error_device_to_smoke_out_bad_device_uses'
1c5feeb1 Make sure all device specific tests use the intended device.
30205be8 Make sure PointLocatorUniformGrid always uses the provided device adapter
74df09fb Remove unneeded trailing ; from PointLocatorUniformGrid

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Allison Vacanti <allison.vacanti@kitware.com>
Merge-request: !1209
2018-05-17 12:32:42 -04:00
David Thompson
1cf1ca7141 Merge topic 'cell-measure'
00c7905a Rename `vtkm::dot()` to `vtkm::Dot()`.
dd7c17f7 Compute cell measures (arc length, area, volume).

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1203
2018-05-17 11:02:34 -04:00
Brad King
b0baa951fa Merge topic '43-ArrayHandleCompositeVector-refactor'
c3c8d0fd Refactor ArrayHandleCompositeVector to simplify usage and impl.
ec88b7dd Markup array portals for use in the exec env.
3159b376 Make Swizzle and ExtractComponent array parameters runtime vars.
19344707 Add vtkm_taotuple to build system.
d23c4452 Merge branch 'upstream-taotuple' into tmp
b3b14de7 taotuple 2018-05-15 (e3de8c97)
b00f6c1c Add taocpp/tuple as a thirdparty package.

Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1199
2018-05-17 09:23:28 -04:00
David Thompson
00c7905afb Rename vtkm::dot() to vtkm::Dot().
This keeps the old name around but prepares it for removal
in the next release.
2018-05-17 08:51:01 -04:00
Robert Maynard
e0b6e69878 copying cpu memory to pascal managed memory now works consistently.
When copying small arrays from cpu memory to pascal memory we would
see subsequent kernels fail as the memory transfer hadn't finished.
This is a bug as each stream should act like a FIFO queue. So
for now when encountering this use case we explicitly synchronize
after the memcpy.
2018-05-16 17:56:50 -04:00
Allison Vacanti
c3c8d0fd70 Refactor ArrayHandleCompositeVector to simplify usage and impl.
- Use tao::tuple instead of FunctionInterface to hold array/portal
  collections.
- Type signatures are simplified. Now just use:
  - ArrayHandleCompositeVector<ArrayT1, ArrayT2, ...>
  - make_ArrayHandleCompositeVector(array1, array2, ...)
  instead of relying on helper structs to determine types.
- No longer support component selection from an input array. All
  input arrays must have the same ValueType (See ArrayHandleSwizzle
  and ArrayHandleExtractComponent as the replacements for these
  usecases.
2018-05-16 11:45:12 -04:00
Allison Vacanti
ec88b7dd24 Markup array portals for use in the exec env.
Since we now use a CUDA-aware tuple object to store ArrayHandles and
Portals for the CompositeVector, these must be constructable on
devices.
2018-05-16 11:45:12 -04:00
Allison Vacanti
3159b376b3 Make Swizzle and ExtractComponent array parameters runtime vars. 2018-05-16 11:45:11 -04:00
Allison Vacanti
193447078f Add vtkm_taotuple to build system. 2018-05-16 11:45:11 -04:00
Robert Maynard
1c5feeb185 Make sure all device specific tests use the intended device.
This means that we not only setup the runtime device tracker
to force the intended device, it also means making sure
the default device is the error device.
2018-05-16 08:21:16 -04:00
Robert Maynard
30205be832 Make sure PointLocatorUniformGrid always uses the provided device adapter 2018-05-16 08:21:16 -04:00
Robert Maynard
74df09fbe0 Remove unneeded trailing ; from PointLocatorUniformGrid
These cause warnings with the nvcc compiler
2018-05-16 08:21:16 -04:00
Robert Maynard
e28244f345 Re-implement DeviceAdapterRuntimeDetector to avoid ODR violations.
The previous implementation of DeviceAdapterRuntimeDetector caused
multiple differing definitions of the same class to exist and
was causing the runtime device tracker to report CUDA as disabled
when it actually was enabled.

The ODR was caused by having a default implementation for
DeviceAdapterRuntimeDetector and a specific specialization for
CUDA. If a library had both CUDA and C++ sources it would pick up
both implementations and would have undefined behavior. In general
it would think the CUDA backend was disabled.

To avoid this kind of situation in the future I have reworked VTK-m
so that each device adapter must implement DeviceAdapterRuntimeDetector
for that device.
2018-05-15 13:08:34 -04:00
Robert Maynard
d77ac2c8dd Don't explicitly set backend on tests that use error backend.
The per device tests specifically setup the default backend to
be error to smoke out bad uses of the default backend.
2018-05-11 14:21:36 -04:00
Kenneth Moreland
0753131a04 Replace ExecutionObjectFactoryBase with ExecutionObjectBase
While making changes to how execution objects work, we had agreed to
name the base object ExecutionObjectBase instead of its original name of
ExecutionObjectFactoryBase. Somehow that change did not make it through.
2018-05-10 17:53:39 -06:00
Robert Maynard
e79e6a3403 Merge topic 'buildin_more_cuda_classes'
571556d9 CUDA's RuntimeDeviceTracker and Timer are now built as part of vtkm_cont

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1196
2018-05-10 16:34:25 -04:00
Robert Maynard
571556d984 CUDA's RuntimeDeviceTracker and Timer are now built as part of vtkm_cont
This is done to not only reduce the amount of code that users need
to generate but to reduce the amount of errors when using
the RuntimeDeviceTracker. If the runtime device tracker is initially
used in a library by a c++ file it will never properly detect the
cuda backend. By moving the code into vtkm_cont we can make sure
this problem doesn't occur.
2018-05-10 10:57:06 -04:00
Sujin Philip
477eff2954 Merge topic 'fix-warnings'
78577345 Fix warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1191
2018-05-09 12:58:44 -04:00
Robert Maynard
bb279506a1 Merge topic 'cuda_75_signed_warnings'
364b366a Correct signed/unsigned cast warnings from DeviceAdapterAlgorithmThrust

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1193
2018-05-08 16:33:35 -04:00
Robert Maynard
cd85892670 Merge topic 'connectivity_maybe_uninitialized'
b26a428d DataSetBuilderUniform won't trigger false positive uninitialized warning.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1186
2018-05-08 15:38:37 -04:00
Robert Maynard
364b366ab3 Correct signed/unsigned cast warnings from DeviceAdapterAlgorithmThrust
Found with CUDA 7.5
2018-05-08 15:29:11 -04:00
Sujin Philip
78577345e2 Fix warnings
Fixes "switch statement contains 'default' but no 'case' labels" warning.
2018-05-08 15:03:10 -04:00
Utkarsh Ayachit
7f58019eb6 cleanup doxygen warnings 2018-05-08 14:52:22 -04:00
Robert Maynard
b26a428d36 DataSetBuilderUniform won't trigger false positive uninitialized warning.
The logic inside DataSetBuilderUniform has some tricky logic but for all
cases the dimensions are correct. We just initialize the variable to make
the compiler stop warning.
2018-05-08 13:57:50 -04:00