Commit Graph

3278 Commits

Author SHA1 Message Date
Robert Maynard
7d7c6ab1ab Don't allow DeviceTaskTypes to construct tasks from rvalues. 2018-01-18 13:51:30 -05:00
Robert Maynard
9c668b61e0 Simplify how we built the list of source files for vtkm_cont 2018-01-17 17:13:50 -05:00
Ben Boeckel
9ce4bfe5af cmake: allow embedded vtk-m to not use cache variables
Projects might want to force these without giving users the indication
that their choices actually matter.
2018-01-17 10:23:15 -05:00
Robert Maynard
1d9a9dd1c6 Simplify VTK-m detection of the size of different types.
Most of the code was unneeded as the primitive types have a minimum required
size that we can rely on.
2018-01-17 09:57:51 -05:00
Robert Maynard
e1916ea7e2 Redesign of vtk-m test build infrastructure to reduce amount of cmake re-runs
Previous versions of the test build infrastructure would cause cmake to re-run
everytime a header was modified. Now this will not occur.
2018-01-16 15:42:37 -05:00
Robert Maynard
5e0d992057 Suppress host/device warnings when building with cuda 9 2018-01-16 15:42:36 -05:00
Robert Maynard
4f239ed3b9 Correct casting warnings found with new cmake code 2018-01-16 15:42:36 -05:00
Robert Maynard
98e4a34cd1 VTKm now refers to diy as vtkm_diy
This is done to be more consistent with the vtkm CMake naming and
to make sure we don't conflict with other exported diy instances.
2018-01-16 15:42:36 -05:00
Robert Maynard
0660c67fef Merge branch 'master' into vtk-m-cmake_refactor 2018-01-16 15:42:28 -05:00
Robert Maynard
5ecf2d1187 vtkm::rendering has more compilation units to help out 32bit compilers
Visual Studio default toolset uses 32bit executables for compiling which
means that if it uses more than 4GB of memory per instance it crashes.
By moving the ConnectivityTracer into a separate compilation unit we
can help out the compiler.

This also improved compilation times and library size:

Old:
build time (j8): 48.62 real
lib size: 6.2MB

New:
build time (j8): 41.31 real
lib size: 5.0MB
2018-01-16 10:20:15 -05:00
Robert Maynard
548e9467d3 Merge topic 'vs2017_warnings'
545db0c7 Correct std::tolower warnings under MSVC2017.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1057
2018-01-15 17:31:00 -05:00
Robert Maynard
545db0c7bc Correct std::tolower warnings under MSVC2017.
Using std::tolower with std::string actually can cause undefined behavior,
and only MSVC 2017 looks to complain about it. You can find more
information on the exact reason at: http://en.cppreference.com/w/cpp/string/byte/tolower
2018-01-15 16:08:15 -05:00
Robert Maynard
65d74d8512 Merge topic 'correct_bad_include_guards'
96ccf14c Correct bad formatting in some vtkm::cont headers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Utkarsh Ayachit <utkarsh.ayachit@kitware.com>
Merge-request: !1056
2018-01-15 11:43:22 -05:00
Robert Maynard
96ccf14c73 Correct bad formatting in some vtkm::cont headers 2018-01-15 10:45:16 -05:00
Sujin Philip
8f78aa739d Add CellLocator
Add a general cell locator that has an optimized path for uniform grid
datasets and uses CellLocatorTwoLevelUniformGrid for all other
dataset types.
2018-01-12 10:16:26 -05:00
Sujin Philip
3de1717ba8 Merge topic 'virtual-coordinates'
70fcd1d1 Update CoordinateSystem to use the Virtual Array
950b12b1 Add ArrayHandleVirtualCoordinates
a4d0b57b Make ForEachValidDevice internal
59dc78fd Add ErrorBadDevice
4810cef7 Field::SetData should accept any ArrayHandle type

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1021
2018-01-10 14:32:29 -05:00
Sujin Philip
70fcd1d1cc Update CoordinateSystem to use the Virtual Array 2018-01-10 10:19:19 -05:00
Robert Maynard
d07c696b3c vtkMath.h now opts out of clang-format to make updates through pyexpander easy 2018-01-10 08:38:14 -05:00
Sujin Philip
950b12b1f2 Add ArrayHandleVirtualCoordinates 2018-01-09 17:23:41 -05:00
Sujin Philip
a4d0b57ba2 Make ForEachValidDevice internal
* Add FindDeviceAdapterTagAndCall
* Add support for multiple arguments to be passed to the functor in
  'ForEachValidDevice' and 'FindDeviceAdapterTagAndCall'.
2018-01-09 17:23:26 -05:00
Sujin Philip
59dc78fd29 Add ErrorBadDevice 2018-01-09 14:25:47 -05:00
Sujin Philip
4810cef78f Field::SetData should accept any ArrayHandle type 2018-01-09 14:25:47 -05:00
Robert Maynard
cda854501d Merge topic 'better_FloatingPointReturnType'
a9e64c4b FloatPointReturnType is float if 'T' is < 32bytes instead of being double.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Acked-by: Thomas Otahal <tjotaha@sandia.gov>
Merge-request: !1048
2018-01-08 15:42:18 -05:00
Robert Maynard
75b0efccc9 Correct casting warnings found with new cmake code 2018-01-08 14:00:58 -05:00
Robert Maynard
f7c46eccbb Correct more host/device warnings found with new cmake code. 2018-01-08 14:00:58 -05:00
Matthew Letter
e17cfddfc8 added vtkm_cont_EXPORTS flag into the build
cuda, serial, and tbb were missing the vtkm_cont_EXPORTS flag
2018-01-08 14:00:58 -05:00
Robert Maynard
687071f9b0 Remove unneeded host/device markups on default constructors 2018-01-08 14:00:58 -05:00
Robert Maynard
5e1f7c60ad VTKm_INSTALL_ONLY_LIBRARIES allows installation of only vtk-m libs 2018-01-08 14:00:58 -05:00
Robert Maynard
d07ab6bc4a Refactor benchmarking to be outside the vtkm folder structure
The benchmarking isn't installed as part of vtk-m and therefore shouldn't
be under vtkm/
2018-01-08 14:00:57 -05:00
Robert Maynard
ac7ba751f8 Benchmarks build with the correct backend when cuda is enabled 2018-01-08 14:00:57 -05:00
Robert Maynard
004bfe7b12 Prefer using existence of targets when looking for TBB/CUDA support 2018-01-08 14:00:57 -05:00
Robert Maynard
b2c03ad858 Unit_tests are built with the correct compiler when cuda is enabled.
Previously all the Unit_tests that shared source files would use cuda
once CUDA set the language on the file.
2018-01-08 14:00:57 -05:00
Robert Maynard
afc19ab0fc Setup symbol visibility controls for VTK-m 2018-01-08 14:00:57 -05:00
Robert Maynard
37a2359c70 Refactor the rendering context flags to not be a combo box.
This way in the future it is easier to make currently mutually exclusive
compile options be all enabled at the same time.
2018-01-08 14:00:57 -05:00
Kenneth Moreland
fe9594c1d1 Add hint to read source code for help
In trying to give error diagnostics with template definitions of invalid
types, the user encounters some pretty confusing error messages at
first. There is no way to get the compiler to give exactly the
diagnostics we want in a nice readable error message, so we are putting
some verbose instructions as comments in the code. However, a user might
not know to look at the source code since the error happens deep in an
unfamiliar (and complicated) class. Thus, add (yet another) error at the
front that gives a (hopefully) clear indication to look at the source
code for help in understanding the errors.
2018-01-08 10:53:44 -07:00
Kenneth Moreland
c3889a1a67 Give better error reporting when an Invoke parameter is wrong
When one of the parameters to DispatcherBase::Invoke is incorrect, you
get an error in a strange place. It is deep in a call stack using some
heavily templated types rather than where the Invoke is actually called.

Formerly, the code was structured to give a very obfuscated error
message. Try to make this easier on users by first adding helpful hints
in the code around where the error is to explain why the error occured
and helpful advice on how to track down the problem. Second, reconfigure
the static_assert so that the compiler gives a readable error message.
Third, add some auxiliary error messages that provide additional
information about the types and classes involved in the error.
2018-01-08 10:53:43 -07:00
Matthew Letter
f1d351f249 Updated FunctionInterfaceDetailPre.h based on pyexpander output
Updated FunctionInterfaceDetailPre.h based on pyexpander output after reverting the changes that were made to math.h
2018-01-04 16:00:46 -07:00
Matthew Letter
e90dfd932f Merge branch 'increase-worklet-arguments' of https://gitlab.kitware.com/mletter1/vtk-m into increase-worklet-arguments 2018-01-04 15:37:07 -07:00
Matthew Letter
172a1ba028 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into increase-worklet-arguments 2018-01-04 15:35:26 -07:00
Matthew Letter
104f5418e8 Revert "updated based on pyexpander output"
This reverts commit 6908952f597cba945245349734790bad81823022
2018-01-04 17:28:33 -05:00
Kenneth Moreland
2b5e74c7d1 Update Math.h.in to recent changes
There were some recent changes to supress some CUDA errors in (among
many other places) some Math.h functions. These changes were done to
Math.h, but they also need to be reflected in Math.h.in so we can
continue to mainting the automatically generated functions.
2018-01-04 15:14:40 -07:00
Matthew Letter
6908952f59 updated based on pyexpander output 2018-01-04 13:22:14 -07:00
Matthew Letter
c3737c728e Merge branch 'master' into increase-worklet-arguments 2018-01-04 12:07:38 -07:00
Matthew Letter
d9c51d650d increased the number of arguments to worklets
increase the number of arguments to worklets that we support to 10 from 20.
2018-01-04 12:06:16 -07:00
Robert Maynard
a9e64c4ba8 FloatPointReturnType is float if 'T' is < 32bytes instead of being double.
Previously FloatPointReturnType would always be double for types that
are not float, which caused Int8/Int16 types to promote to double instead
of float.
2018-01-04 13:22:31 -05:00
Utkarsh Ayachit
842019023a Merge branch 'diy-as-3rd-party' into 'master'
DIY as 3rd party import

See merge request vtk/vtk-m!1047
2018-01-04 10:58:51 -05:00
Robert Maynard
91178ffc3f Merge topic 'vtk-m-dot-integer-promotion'
a8415d8e VTK-m now widens result type for UInt8/Int8/UInt16/Int16 input.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1045
2018-01-04 10:25:35 -05:00
Robert Maynard
a8415d8e37 VTK-m now widens result type for UInt8/Int8/UInt16/Int16 input.
When using vtkm::dot on narrow types you easily rollover the values.
Instead the result type of vtkm::dot should be wide enough to store the results
(32bits) when this occurs.

Fixes #193
2018-01-03 16:32:41 -05:00
Utkarsh Ayachit
37969e9602 Use VTKM_DIY() to include diy headers.
This makes it easier to mangle diy and support using external diy.
2018-01-03 14:53:37 -05:00
Utkarsh Ayachit
92cf8bf6d4 cmake: update cmake rules to use vtkm/thirdparty/diy. 2018-01-03 14:37:23 -05:00