Commit Graph

4258 Commits

Author SHA1 Message Date
Kenneth Moreland
ddc6c91e37 Fix error about constexpr not available on CUDA device
For some reason, these changes caused one of the CUDA compilers to
create an error about a variable declared constexpr not being available
on the device. That sounds like a bug in nvcc as the constexpr should
just be evaluated rather than stored in some part of memory. At any
rate, changing the constexpr to a preprocessing macro solves the
problem.
2019-02-20 13:33:55 -07:00
Kenneth Moreland
1ca55ac319 Add specialized operators for ArrayPortalValueReference
The ArrayPortalValueReference is supposed to behave just like the value
it encapsulates and does so by automatically converting to the base type
when necessary. However, when it is possible to convert that to
something else, it is possible to get errors about ambiguous overloads.
To avoid these, add specialized versions of the operators to specify
which ones should be used.

Also consolidated the CUDA version of an ArrayPortalValueReference to the
standard one. The two implementations were equivalent and we would like
changes to apply to both.
2019-02-20 13:33:55 -07:00
mclarsen
bccb00df29 allow extract structured to output rectilinear coordinates 2019-02-19 08:11:09 -08:00
Ben Boeckel
e266dcb34f Merge branch 'upstream-taotuple' into fix-undef-errors
* upstream-taotuple:
  taotuple 2019-02-14 (b8ca98d2)
2019-02-14 16:29:33 -05:00
Ben Boeckel
5b71c34675 brigand: fix intel check
This matches the check that CMake uses to detect the Intel compiler. It
also avoids warnings with `-Wundef`.
2019-02-14 16:26:14 -05:00
Haocheng LIU
542bb36594 Merge branch 'upstream-loguru' into revert-loguru-strdup-fix
* upstream-loguru:
  loguru 2019-02-12 (6ab123ef)
2019-02-12 09:03:55 -05:00
Haocheng LIU
858c788244 Merge topic 'free-annotations-in-View'
d19524016 Refactor View class and fix its memory leak

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1546
2019-02-12 08:58:00 -05:00
Haocheng LIU
d195240165 Refactor View class and fix its memory leak 2019-02-11 16:32:27 -05:00
Haocheng LIU
e3e63ff605 Merge branch 'upstream-loguru' into fix-loguru-memory-leak
* upstream-loguru:
  loguru 2019-02-11 (2569911a)
2019-02-11 13:18:19 -05:00
Robert Maynard
4b0d56e7d0 Add Copyright to diy/serialization.h 2019-02-11 08:31:14 -05:00
Dave Pugmire
b59df302e5 Merge topic 'AddGhostZone2'
bebbd92e3 Filter for adding ghost zones.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1540
2019-02-09 16:27:16 -05:00
Robert Maynard
451bff6f14 vtkmdiy: Use the new mangled VTKM_DIY_ defines 2019-02-08 14:31:34 -05:00
Robert Maynard
7d307b96ce Merge branch 'upstream-diy' into diy_conditional_serialization
* upstream-diy:
  diy 2019-02-08 (72a201e1)
2019-02-08 14:25:51 -05:00
Robert Maynard
74acc2a7bb vtkmdiy: Support only including the serialization headers of diy 2019-02-08 11:40:59 -05:00
Dave Pugmire
bebbd92e32 Filter for adding ghost zones. 2019-02-07 15:26:20 -05:00
Haocheng LIU
6e6968d97f Fix diy include and Timer construction errors in examples 2019-02-06 15:28:09 -05:00
Robert Maynard
ad98d818ce VTK-m now doesn't clobber external DIY installations
Fixes #334
2019-02-05 13:05:14 -05:00
Haocheng LIU
0696ae135e Merge topic 'asynchronize-timer'
415252c66 Introduce asynchronous and device independent timer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Haocheng LIU <haocheng.liu@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1530
2019-02-05 12:02:59 -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
Robert Maynard
d0a70946b8 Simplify the DeviceAdapterRuntimeDetectorCuda to not do a kernel launch.
The kernel launch component of the runtime device adapter is fairly
pointless. If the hardware supports CUDA we should expect that
VTK-m has the correct kernel versions.

Plus in the original version if the CUDA device was being used
and the kernel launch returns cudaErrorDevicesUnavailable it
was never possible to restore CUDA support. Now what happens
is that the runtime tracker is marked as failed, but the
calling code can always go back and trying the device again.
2019-02-04 13:27:20 -05:00
Haocheng LIU
6107f548b1 Link pthread when logging is enabled 2019-01-30 16:34:58 -05:00
Robert Maynard
bcb347bf97 Merge topic 'test_vtkm_install'
9580b1921 Introduces SourceInInstall which verifies that VTK-m install its headers
c501500e1 Install missing headers found by VTKmCheckSourceInInstall
baaa47af4 Reduce verbosity of VTKmCheckCopyright
545a2ce91 VTKmCheckSourceInBuild now shows all missing files in a directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <larsen30@llnl.gov>
Merge-request: !1532
2019-01-29 17:27:09 -05:00
Robert Maynard
c501500e1d Install missing headers found by VTKmCheckSourceInInstall 2019-01-29 14:46:27 -05:00
Kenneth Moreland
fb0ad1a13d Reduce the number of precompiled Keys instantiations
Previously, we precompiled just about any version of Keys that you could
be expected to use. This caused the time to compile Keys to be
unnecessarily long.

This reduces the compilation to types that are actually likely to be
used as keys. Also removed the less likely to be used build methods.
2019-01-28 15:44:37 -05:00
Kenneth Moreland
6ea55f838b Merge topic 'vtkm_worklet-library'
55570a16a Add most common implementations of Keys templates to library
887f79c6f Make a vtkm_worklet library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1520
2019-01-26 21:08:21 -05:00
mclarsen
7584593700 adding missing headers to the install 2019-01-26 08:32:05 -08:00
Robert Maynard
ce4076dd96 Merge topic 'faster_worklet_builds'
002bd3419 Improve the compile time of WorkletMap* unit tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1527
2019-01-25 10:19:24 -05:00
Robert Maynard
002bd34197 Improve the compile time of WorkletMap* unit tests
By restricting the possible variant types we can dramatically
improve compile time performance.
2019-01-25 08:23:02 -05:00
Kenneth Moreland
55570a16ad Add most common implementations of Keys templates to library
Also moved the Keys<>::SortType outside to KeysSortType. The problem
with having it inside the Keys class was that there was a different
object created for every instances of Keys.
2019-01-24 13:18:10 -07:00
Robert Maynard
5508d17c31 Merge topic 'correct_broken_install'
24e71d251 VTK-m yet again has properly installed headers.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1525
2019-01-24 14:59:41 -05:00
Robert Maynard
223a711f2b Merge topic 'ErrorBadType_IsDeviceIndependent'
80b7f8f18 ErrorBadType should be a device independent exception

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1524
2019-01-24 14:43:06 -05:00
Robert Maynard
24e71d251b VTK-m yet again has properly installed headers.
Fixes the install issues mentioned in #342
2019-01-24 14:26:40 -05:00
Allison Vacanti
4ddcfbc66d Merge topic 'openmp_task_namespace'
91a1c7e2d Fix typo in openmp and tbb task code.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1523
2019-01-24 13:19:33 -05:00
Robert Maynard
80b7f8f187 ErrorBadType should be a device independent exception 2019-01-24 13:01:03 -05:00
Allison Vacanti
91a1c7e2d0 Fix typo in openmp and tbb task code. 2019-01-24 12:02:13 -05:00
Allison Vacanti
03fc7b66d0 Add VTKM_CUDA_DEVICE_PASS preprocessing definition.
This is only set while compiling device code, and is useful
for code that needs different implementations on devices (e.g.
they call CUDA device intrinsics, etc).
2019-01-24 11:23:45 -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
Robert Maynard
ed34b632f3 vtkm::cont::Testing RunOnDevice requires argc,argv parameters. 2019-01-23 16:01:58 -05:00
Robert Maynard
c36b45435b Add UnitTestWorkletMapFieldWholeArrayAtomic
This covers the atomic tests that was previously part of WorkletMapFieldWholeArray
2019-01-18 13:30:37 -06:00
Robert Maynard
d6f66d17a3 Testing run methods now take argc/argv to init logging/runtime device
`vtkm::cont::testing` now initializes with logging enabled and support
for device being passed on the command line, `vtkm::testing` only
enables logging.
2019-01-17 13:16:27 -06:00
Kenneth Moreland
cbf913ad7c Merge topic 'cast-variant-to-storage'
d59ce11c0 Allow VariantArrayHandle CastAndCall to cast to concrete types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1519
2019-01-17 11:34:22 -05:00
Kenneth Moreland
d59ce11c00 Allow VariantArrayHandle CastAndCall to cast to concrete types
When you call VariantArrayHandle::CastAndCall, it now tries both basic
storage and virtual storage. You can modify the types of storages tried
by giving a type list of storage tags as the first argument.
2019-01-16 22:31:55 -06:00
Robert Maynard
4ec5bae02d Remove VTK-m TestBuild infrastructure
The purpose of the TestBuild infrastructure was to confirm that
VTK-m didn't have any lexical issues when it was a pure header
only project. As we now move to have more compiled components
the need for this form of testing is mitigated. Combined
with the issue of TestBuilds causing MSVC issues, we should
just remove this infrastructure.
2019-01-16 10:04:33 -06:00
Haocheng LIU
2f20549b4b Merge rendering testing executables to a shared library
This commit allows rendering testing executables to select the device at runtime.
2019-01-14 14:20:00 -05:00
Kenneth Moreland
b2e20bf90e Fix issues from removing field type templates
The script fixed up most of the issues. However, there were some
instances that the script was not able to pick up on. There were
also some instances that still needed a means to select types.
2019-01-11 12:23:19 -07:00
Kenneth Moreland
2e426ad547 Run the update-control-signature-tags.sh script 2019-01-11 12:23:10 -07:00
Kenneth Moreland
42f810f70e Remove type lists from ControlSignature arguments for arrays
The typelist arguments for ControlSignature tags are antiquated. Remove
them.
2019-01-11 12:15:16 -07:00
Robert Maynard
ac61044422 Merge topic 'dejagore_warnings'
f848bc354 Correct warnings from switch statements with no case labels.
90bca8a53 Remove unnecessary constructor from IntersectionPointMap
3c96b5a7b Suppress  stack warnings generated by BoundingIntervalHierarchyTester

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1515
2019-01-11 11:44:50 -05:00
Robert Maynard
f848bc3541 Correct warnings from switch statements with no case labels. 2019-01-10 15:16:53 -05:00
Robert Maynard
e72d0d5dde Merge topic 'annotation_warning_arrayportal_virtual'
cead0e26a ArrayPortalVirtual+ nvcc 9 fix annotation warnings on defaulted methods

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <mlarsen@cs.uoregon.edu>
Merge-request: !1512
2019-01-10 10:49:39 -05:00