Commit Graph

363 Commits

Author SHA1 Message Date
Robert Maynard
ff30684c8e Removes the default device macros from VTK-m
Fixes #116
2019-04-15 08:15:36 -04:00
Robert Maynard
7ea2accbc1 Correct issues when using a cuda enabled install of vtk-m. 2019-04-03 18:08:56 -04:00
Robert Maynard
001d1b0f47 VTK-m can now build and test against temporary installed vtkm.
We now have a couple of the examples also being built against
the installed version of VTK-m as a test. This allow us to verify
that VTK-m installs and can be found properly.
2019-04-03 18:08:56 -04:00
Robert Maynard
0ce7e82d43 VTK-m now enables all new CMake policies in 3.14
This means that we opt-in to policy changes introduced in 3.14
2019-03-26 11:50:06 -04:00
Robert Maynard
256e0c3c11 Merge topic 'rename_to_GetRuntimeDeviceTracker'
ae11e115a RuntimeDeviceTracker: Remove `Global` from names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1592
2019-03-24 08:17:02 -04:00
Robert Maynard
ae11e115a0 RuntimeDeviceTracker: Remove Global from names 2019-03-22 08:53:26 -07:00
Kenneth Moreland
fd794edb36 Fix particle advection example
The grid evaluator class structure changed.
2019-03-21 13:58:42 -06:00
Sujin Philip
d4e1c18254 Update existing code to use the new functions 2019-03-15 13:28:55 -04:00
Haocheng LIU
6e6968d97f Fix diy include and Timer construction errors in examples 2019-02-06 15:28:09 -05:00
Haocheng LIU
415252c662 Introduce asynchronous and device independent timer
The timer class now is asynchronous and device independent. it's using an
similiar API as vtkOpenGLRenderTimer with Start(), Stop(), Reset(), Ready(),
and GetElapsedTime() function. For convenience and backward compability, Each
Start() function call will call Reset() internally and each GetElapsedTime()
function call will call Stop() function if it hasn't been called yet for keeping
backward compatibility purpose.

Bascially it can be used in two modes:

* Create a Timer without any device info. vtkm::cont::Timer time;

  * It would enable timers for all enabled devices on the machine. Users can get a
specific elapsed time by passing a device id into the GetElapsedtime function.
If no device is provided, it would pick the maximum of all timer results - the
logic behind this decision is that if cuda is disabled, openmp, serial and tbb
roughly give the same results; if cuda is enabled it's safe to return the
maximum elapsed time since users are more interested in the device execution
time rather than the kernal launch time. The Ready function can be handy here
to query the status of the timer.

* Create a Timer with a device id. vtkm::cont::Timer time((vtkm::cont::DeviceAdapterTagCuda()));

  * It works as the old timer that times for a specific device id.
2019-02-05 12:01:56 -05:00
Kenneth Moreland
887f79c6f4 Make a vtkm_worklet library
This is a library that contains parts of worklets that can be
precompiled into a library.

Currently, this library contains the implementation of ScatterCounting.
2019-01-23 17:09:15 -07:00
Kenneth Moreland
2e426ad547 Run the update-control-signature-tags.sh script 2019-01-11 12:23:10 -07:00
Robert Maynard
f1e1a524e9 Require CMake 3.8 to build VTK-m. 2019-01-09 16:01:22 -05:00
Robert Maynard
8ca24baecd Update the UnifiedMemory example to properly disable managed memory 2018-12-28 11:30:29 -05:00
Robert Maynard
0a40c620ac Rename ArrayHandleVariant to VariantArrayHandle. 2018-12-27 14:35:56 -05:00
Robert Maynard
b138798604 Update examples to work with ArrayHandleVariant/Virtual 2018-12-27 14:35:56 -05:00
Robert Maynard
6e22bb5dc6 Cosmotools exmaples builds again with the change of vtkm::cont::Initialize 2018-12-27 11:58:16 -05:00
Robert Maynard
ab3d89d4e3 Simplify the example/demo CMakeLists.txt 2018-12-27 11:57:48 -05:00
Robert Maynard
028e954b41 Game Of Life example now supports -d/--device command line argument 2018-12-27 11:55:26 -05:00
Robert Maynard
e2c61e0100 Update the HelloWorld example to use VTK-m runtime device adapter logic 2018-12-27 11:50:28 -05:00
Robert Maynard
34165c8e75 Correct crashes in the GameOfLife example 2018-12-27 11:47:34 -05:00
Robert Maynard
cdbee58c1b Remove the dynamic_dispatcher example as is a compiler benchmark
This example doesn't need to exist as it was used to see how
long compile times are with DynamicArrayHandle
2018-12-27 11:45:41 -05:00
Allison Vacanti
cdb1f5680a Add vtkm::cont::Initialize.
Also
- Renamed vtkm::cont::make_DeviceAdapterIdFromName to just overload
  make_DeviceAdapterId.
- Refactored CMake logic for unit tests
  - Since we're now querying the device tracker for the names, they
    cannot be all caps.
- Updated usages of InitLogging to use Initialize instead.
- Added changelog.
2018-12-13 10:15:44 -05:00
Kenneth Moreland
01a9e85416 Change WorkletPointNeighborhood to specify neighborhood at runtime
Previously, WorkletPointNeighborhood had a template argument to select
the size of the neighborhood. This change removes that template
argument. Instead, the vtkm::exec::arg::BoundaryState methods now take
in a size parameter when determining when it overlaps the boundary.

If in the future we want to add the ability to select the neighborhood
size at compile-time (for performance reasons), I suggest adding this
template argument to the OnBoundary tag for ExecutionSignature.
2018-12-03 12:45:23 -07:00
Kenneth Moreland
e9d0d7de47 Fix the CosmoTools examples
The CosmoTools examples were still directly using device adapters.
Change the code to compile single executables that chooses a device at
runtime.
2018-11-27 10:56:00 -07:00
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
Kenneth Moreland
723792a482 Use new integrators and evaluators for advection 2018-10-16 09:53:18 -06:00
Kenneth Moreland
a2602183a4 Make integrators have a virtual superclass
This will make it easier to support integrators as an ExecObject.

One side effect is that the integrators and partical advection
are not templated by the type of the field.
Regardless of the type of the field, there is probably little reason to
compute particle advection with less than 64 bit floats to account for
accumulated errors. This will make it easier to use these classes.
2018-10-16 09:53:18 -06:00
Robert Maynard
9d5efbd95d Merge topic 'misc-typos'
d5beb69ec Misc. typos

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1426
2018-10-08 08:37:19 -04:00
Kenneth Moreland
cd8b41f478 Fix type conversion warnings
Make the types consistent in an std::accumulate call. Previously it was
taking vtkm::Id values, multiplying them as std::size_t, and then
storing them in an int. Now, the std::accumulate does everything as a
vtkm::Id and at the end converts the result to an std::size_t.
2018-10-05 09:08:19 -06:00
luz.paz
d5beb69ec1 Misc. typos
Found via `codespell`
2018-10-04 10:30:33 -04:00
Robert Maynard
91fd7f4f74 Merge topic 'ppp2'
c05b04c9d Fix windows warnings of duplicate symbols
12b90c434 Rename PPP2 to Augmented.
6f5c383e1 Move PPP2 over to constexpr instead of defines
f828ebfd4 Update PPP2 to dispatcher that don't require a device adapter template
98fd16d9a Correct PPP2 warnings found from 32bit builders
b460f5611 Make sure ContourTreeApp obeys the desired device
432ee3422 Optimize the PPP2 ActiveGraphs to reduce size of device transfers
2370a6cc5 Refactor the PPP2 work based on Code Review and add UnitTests.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1376
2018-09-29 09:40:17 -04:00
Robert Maynard
12b90c434b Rename PPP2 to Augmented. 2018-09-26 10:48:37 -07:00
Sujin Philip
d34eca5f4e Update RedistributePoints to use the new serialization methods 2018-09-25 13:58:39 -04:00
Sujin Philip
fd89dfc89b Add ArrayHandle Serialization 2018-09-25 13:58:39 -04:00
Robert Maynard
98fd16d9ad Correct PPP2 warnings found from 32bit builders 2018-09-18 08:54:22 -04:00
Robert Maynard
b460f56113 Make sure ContourTreeApp obeys the desired device 2018-09-18 08:54:22 -04:00
Oliver Ruebel
2370a6cc5d Refactor the PPP2 work based on Code Review and add UnitTests. 2018-09-18 08:54:22 -04:00
Gunther H. Weber
ab0ccd4cad vtk-m implementation of improved parallel peak pruning with hyperstructure (PPP2.0) 2018-09-18 08:54: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
Robert Maynard
9f5d57f8ab Remove the posthocinterpolation example as it didn't showcase vtkm 2018-08-24 08:28:56 -04:00
Robert Maynard
7231f7e557 Use vtkm::Math functions in ABCField. 2018-08-24 08:28:12 -04:00
Robert Maynard
2a75916dd3 Merge topic 'remove_duplicate_data_in_multi_backend'
6990b605b The multi backend example now doesn't share data between blocks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1344
2018-08-15 15:09:14 -04:00
Sudhanshu Sane
3364d1c4e0 Lagrangian filter, example
The added files provide support for Lagrangian analysis of velocity fields of time-varying data. Examples show how to use the filter to generate data and a second example demonstrates consuming generated information to calculate new particle trajectories.
2018-08-13 14:53:41 -07:00
Robert Maynard
6990b605b0 The multi backend example now doesn't share data between blocks
This should allow for multiple different devices.
2018-07-31 15:02:41 -04:00
Kenneth Moreland
49ae7d5e7d Add header file for std::isstype
This function might get defined through other headers, but it was not
being defined with visual studio.
2018-07-26 16:33:16 -06:00
Sebastien Jourdain
4192b9a1d8 Add a point-oscillator filter + example
The oscillator is a simple analytical source of time-varying data.
It provides a function value at each point that is computed as a
sum of Gaussian kernels -- each with a specified position, amplitude,
frequency, and phase.
2018-07-18 09:33:06 -04:00
Sujin Philip
01a45d8e5e Workaround compiling error in multi-backend example with some gcc versions 2018-06-21 12:07:12 -04:00
Robert Maynard
9861cdecb1 Use CMake to automatically set policies to NEW.
CMake 3.12 introduces a ...<max> syntax in the version given to
cmake_minimum_required to automatically set policies to NEW up
to that version. Use it to avoid listing policies explicitly.
2018-06-19 16:12:48 -04:00
luz.paz
940c891886 Misc. typos
Found via `codespell` and `grep`
more typos

includes source typo change and a typo that needs further review
follow-up typos


Follow-up typos


Revert a commit
2018-06-14 16:49:11 -04:00