Commit Graph

1654 Commits

Author SHA1 Message Date
Kenneth Moreland
bddad9b386 Remove TryExecute from filters
Now that the dispatcher does its own TryExecute, filters do not need to
do that. This change requires all worklets called by filters to be able
to execute without knowing the device a priori.
2018-10-16 15:59:53 -06:00
Robert Maynard
45422478cf Refactor VirtualObjectHandle to support new virtual design 2018-10-15 17:38:54 -04:00
Robert Maynard
ab25b4228e Cleanup the documentation in ErrorBadDevice 2018-10-11 08:11:43 -04:00
Allison Vacanti
6fb879ec20 Fix typo in logging docs. 2018-10-10 15:39:13 -04:00
Allison Vacanti
be0db4b021 Add parameter-less InitLogging().
Also document that this function should only be called from a
single thread.
2018-10-10 15:39:03 -04:00
Allison Vacanti
16c4dde2ee Merge topic 'cuda10_warning'
0e105eae6 cudaPointerAttributes::isManaged deprecated in CUDA 10.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1430
2018-10-10 15:05:57 -04:00
Allison Vacanti
0e105eae6d cudaPointerAttributes::isManaged deprecated in CUDA 10.
Update code to support both the old and new way of checking this.
2018-10-10 13:51:56 -04:00
luz.paz
d5beb69ec1 Misc. typos
Found via `codespell`
2018-10-04 10:30:33 -04:00
Robert Maynard
db1b394336 Merge branch '291_logging' into 'master'
Add general logging support

See merge request vtk/vtk-m!1414
2018-10-04 09:36:47 -04:00
Robert Maynard
e8bc2a56ed make_DeviceAdapterId is now inline to remove duplicate symbols. 2018-10-04 08:42:29 -04:00
Robert Maynard
a512cd495e Allow runtime construction of DeviceAdapterId
When need some way to convert user input such as an integer or
string to a device adapter id. This allows for integer to
device adapter id.
2018-10-03 13:43:31 -04:00
Allison Vacanti
bd337854ec Initial implementation of general logging.
Addresses #291.
2018-10-02 11:37:55 -04:00
Sujin Philip
ebcd0ade6a Move test_equal_* functions to vtkm::cont::testing
Implement more general versions of `test_equal_ArrayHandles`, `test_equal_CellSets`, `test_equal_Fields`, and `test_equal_DataSets` functions and put them
in vtkm/cont/testing/Testing.hi with the hope that they will be useful for
others also.
2018-09-25 13:58:39 -04:00
Sujin Philip
365d3d3921 Implement DataSet Serialization 2018-09-25 13:58:39 -04:00
Sujin Philip
fd89dfc89b Add ArrayHandle Serialization 2018-09-25 13:58:39 -04:00
Robert Maynard
caa23b5499 Merge topic 'reverse_conn_support_differing_types'
767eb8206 ReverseConnectivityBuilder can handle 32bit and 64bit connectivity

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1409
2018-09-15 11:45:41 -04:00
Robert Maynard
2c218dd958 Merge topic 'osx_static_warnings'
c0a5e1624 Fix vtk-m warnings on static osx builds.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1408
2018-09-13 15:46:37 -04:00
Robert Maynard
767eb82063 ReverseConnectivityBuilder can handle 32bit and 64bit connectivity
This allows ReverseConnectivityBuilder to build any connectivity
independent of vtkm::Id being 32 or 64 bit.
2018-09-13 09:33:31 -04:00
Robert Maynard
c0a5e16249 Fix vtk-m warnings on static osx builds. 2018-09-13 09:15:25 -04:00
mclarsen
0e7e51a1ce resolving merge conflict 2018-09-12 18:58:33 -07:00
mclarsen
1c2f78ca92 refactoring ray tracing 2018-09-10 19:25:42 -07:00
Kenneth Moreland
2b05487398 Add ExecutionAndControlObjectBase
This is a subclass of ExecutionObject and a superset of its
functionality. In addition to having a PrepareForExecution method, it
also has a PrepareForControl method that gets an object appropriate for
the control environment. This is helpful for situations where you need
code to work in both environments, such as the functor in an
ArrayHandleTransform.

Also added several runtime checks for execution objects and execution
and cotnrol objects.
2018-09-08 11:54:28 -06:00
Kenneth Moreland
98a0a20feb Allow ArrayHandleTransform to work with ExecObject
This change allows you to set a subclass of
vtkm::cont::ExecutionObjectBase as a functor
used in ArrayHandleTransform. This latter class will then detect that
the functor is an ExecObject and will call PrepareForExecution with the
appropriate device to get the actual Functor object.

This change allows you to use virtual objects and other device dependent
objects as functors for ArrayHandleTransform without knowing a priori
what device the portal will be used on.
2018-09-05 13:11:04 -06:00
Robert Maynard
7e3727fa9c Convert some vtkm/cont classes over to vtkm::worklet::Invoker 2018-09-04 15:01:18 -04:00
Kenneth Moreland
ddc85d7385 Merge topic 'dispatcher-auto-device-2'
d879188de Make DispatcherBase invoke using a TryExecute

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1392
2018-08-30 12:59:22 -04:00
Kenneth Moreland
d879188de0 Make DispatcherBase invoke using a TryExecute
Rather than force all dispatchers to be templated on a device adapter,
instead use a TryExecute internally within the invoke to select a device
adapter.

Because this removes the need to declare a device when invoking a
worklet, this commit also removes the need to declare a device in
several other areas of the code.
2018-08-29 19:18:54 -07:00
Allison Vacanti
65d96ae806 Merge topic 'use_rt_dev_name'
a8fa8d918 Use device id names where possible.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1393
2018-08-29 20:08:32 -04:00
Allison Vacanti
a8fa8d9184 Use device id names where possible. 2018-08-29 14:57:19 -07:00
Kenneth Moreland
9841d0e2c5 Add ArrayHandleView
Adds a fancy array handle that restricts access to an array to some
window of values. It takes a start offset and a size and represents the
values between that start offset and size past that.
2018-08-29 13:54:31 -07:00
Allison Vacanti
0ea133dfad Add missing include for OpenMP RuntimeDetector support. 2018-08-29 09:54:52 -07:00
Allison Vacanti
e5fbd7bb6b Fix some missed IdAny renames. 2018-08-29 09:20:44 -07:00
Allison Vacanti
b124984817 Rename Undefined and Any DeviceAdapterId subclasses for consistency. 2018-08-29 09:05:50 -07:00
Allison Vacanti
a878474a38 Merge topic '256_device_adapter_name'
716f393c3 Add DeviceAdapterId::GetName.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1384
2018-08-29 11:52:23 -04:00
Allison Vacanti
716f393c32 Add DeviceAdapterId::GetName. 2018-08-28 14:14:49 -07:00
Robert Maynard
18fdc009a3 Merge topic 'upgrade_algorithms_to_support_runtime_device'
59c8bd28a vtkm::cont::Algorithm now can be told which device to run on at runtime

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1365
2018-08-28 13:34:55 -04:00
Allison Vacanti
024a75821d Make DeviceAdapterId constructor protected.
This forces users to use a defined tag, since they shouldn't need
to create their own.
2018-08-24 16:38:08 -04:00
Allison Vacanti
7ca3b60fe2 Print bytes size in array handle summaries. 2018-08-23 16:40:25 -04:00
Allison Vacanti
669ccb9130 Refactor CellSetExplicit to store connectivity in a shared_ptr.
This addresses issue #268 by ensuring that the CellToPoint validity
flag survives FunctionInterface's value copies.
2018-08-23 11:13:13 -04:00
Allison Vacanti
2b169eeb3b Use requested device in CellSetExplicit::PrepareForInput.
The BuildConnectivity method was falling back to the global
runtime device tracker instead of using the templated device.
2018-08-22 16:07:48 -04:00
Allison Vacanti
1436c1b6df Merge topic '285_singletype_rconn_opt'
ec4cf2da3 Specialize the CellToPoint computation for CSSingleType.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1371
2018-08-21 13:50:49 -04:00
Allison Vacanti
ec4cf2da3f Specialize the CellToPoint computation for CSSingleType.
It's much cheaper to compute the cell id from a connectivity
index when all cells are the same size.
2018-08-21 12:36:15 -04:00
Haocheng LIU
7d22132253 Merge topic 'allow-disabling/enabling-cuda-managed-memory'
e34301eca Allow disabling/enabling of CUDA managed memory via an env variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1359
2018-08-17 13:14:02 -04:00
Haocheng LIU
e34301eca8 Allow disabling/enabling of CUDA managed memory via an env variable
By setting the environment variable "VTKM_MANAGEDMEMO_DISABLED" to be 1,
users are able to disable CUDA managed memory even though the hardware is
capable of doing so.
2018-08-17 11:10:15 -04:00
Robert Maynard
59c8bd28aa vtkm::cont::Algorithm now can be told which device to run on at runtime 2018-08-16 16:08:34 -04:00
Sujin Philip
1212081de1 Support deferred freeing for CUDA memory
Calls to 'cudaFree' block execution on all cuda devices. Reduce the number of
times this happens by having a deferred free mechanism that frees a pool
of pointers together when a threshold is reached.

Especially helpful during virtual object transfers that requires a few small
allocations and frees.
2018-08-16 12:05:36 -04:00
Robert Maynard
20a62ae560 Merge topic 'use_better_runtime_device_representation'
28e0eb9da Replace FindDeviceAdapterTagAndCall with TryExecuteOnDevice

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1356
2018-08-14 14:59:36 -04:00
Allison Vacanti
f6da092146 Use CUDA_ARCH instead of CUDACC to guard device-only code.
CUDACC is defined when compiling host code under nvcc, while
CUDA_ARCH is only defined for host code.
2018-08-09 11:57:05 -04:00
Allison Vacanti
727ebee197 Merge topic 'cuda_array_handles_on_cuda8'
2c079b96d Make AtomicArrays work on CUDA 8.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1357
2018-08-09 10:34:10 -04:00
Robert Maynard
c332dbd0a1 Only add the rules to run openmp tests serially when testing is enabled 2018-08-08 15:46:32 -04:00
Allison Vacanti
2c079b96dd Make AtomicArrays work on CUDA 8.
CUDA 8.0 is erroring out in the cuda AtomicArray implementation:

https://open.cdash.org/viewBuildError.php?buildid=5489156

This patch fixes the error. See comments in source for more info.
2018-08-08 15:26:32 -04:00