Commit Graph

250 Commits

Author SHA1 Message Date
Allison Vacanti
bd337854ec Initial implementation of general logging.
Addresses #291.
2018-10-02 11:37:55 -04:00
Robert Maynard
23c5f11823 vtk-m brigand nows knows what workaround are only needed for CUDA 9.
Some CUDA 9 compiler issues are fixed in CUDA 10.
2018-09-20 14:02:16 -04:00
Robert Maynard
3eec282f24 GCC 7.1 was warning about invalid ConnectivityStructuredInternals states
In theory if you requested negative indices's or generated a structure
with invalid point sizes the result of some operations would be
in an invalid state. Gave the compiler hints that this states
can't occur.
2018-09-17 08:15:43 -04:00
Robert Maynard
e3ef8ed52c Make BRIGAND_COMP_CUDA_9PLUS capture all future versions of cuda 2018-08-09 15:12:24 -04:00
Robert Maynard
40b71f69e9 Fix nvcc warnings on using __device__ on defaulted constructors 2018-07-31 11:15:43 -04:00
Robert Maynard
a5bcba2b4e Fix GCC 7 uninitialized warnings in ArrayPortalUniformPointCoordinates 2018-07-30 11:59:13 -04:00
Robert Maynard
c631dccfcb Invocation parameters are now non const and can be 'modified'
The invocation parameters need to be non const as we want to
be able to call non-const methods like `PrepareForOutput` on them
from a transport function.

The original implementation abused the fact that everything
could be copied by value and have that work properly. But
when we start introducing virtual classes copying by value of
a base type can cause type slicing.
2018-07-06 14:27:36 -04:00
Robert Maynard
46d85146d5 Update the documentation on why VTKM_ALWAYS_EXPORT exists. 2018-06-28 11:46:13 -04:00
Sujin Philip
ecb46023f6 Add ListTagAppend and ListTagAppendUnique 2018-06-21 15:59:31 -04:00
Allison Vacanti
183bcf109a Add initial version of an OpenMP backend. 2018-05-31 16:47:48 -04:00
Allison Vacanti
d602784348 Specialize swap for ArrayPortalValueReference types. 2018-05-29 14:46:46 -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
Sujin Philip
78577345e2 Fix warnings
Fixes "switch statement contains 'default' but no 'case' labels" warning.
2018-05-08 15:03:10 -04:00
Robert Maynard
adfff37e2c Merge topic 'cmake_refactor'
8472b64e Suppress more CUDA host function from a host/device function warnings
cd333bf8 Remove unneeded semicolon after closing parentheses on a some methods.
84311a24 Merge branch 'master' into cmake_refactor
83b360f1 vtkm::Lerp now casts integer types to an appropriate scalar type.
0d45c5cf Correct warnings found after disabling all warning when CUDA is enabled.
8808b41f Merge branch 'master' into vtk-m-cmake_refactor
d205f953 Update the documentation on when we need CMake 3.9+
e630ac5a Merge branch 'master' into vtk-m-cmake_refactor
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1135
2018-04-05 12:35:38 -04:00
Kenneth Moreland
3dd66e852a Do not use __assume for icc in gcc compatability mode
When using the GNU header files on a system, the icc compiler emulates
the behavior of the gcc compiler on the system. (See https://
software.intel.com/en-us/node/522750) This appears to mean that icc
features that are not available in gcc could get turned off. In
particular, we found that the __assume feature stopped working.

To get around this problem, do not use __assume when compiling with icc
and __GNUC__ is defined. Instead, use the available gcc features.
2018-04-04 15:00:03 -06:00
Robert Maynard
8808b41fbd Merge branch 'master' into vtk-m-cmake_refactor 2018-03-29 22:51:26 -04:00
Robert Maynard
7c54125b66 Switch over from static const to static constexpr where possible. 2018-03-10 11:39:58 -05:00
Robert Maynard
601a839d5d VTK-m uses static const/constexpr when supported ( so not on cuda 7.5 )
These changes now allow VTK-m to compile on CUDA 7.5 by using const arrays,
when compiling with CUDA 8+ support we upgrade to static const arrays, and
lastly when CUDA is disabled we fully elevate to static constexpr.
2018-02-26 16:41:29 -05:00
Robert Maynard
505e7aa1ec VTK-m now has defines for the CUDA version even when not using nvcc.
This is needed so so that the CUDA and C++ compiler generate the same code
when scanning a shared header but generating different translation units
2018-02-26 16:38:26 -05:00
Robert Maynard
ee69c7a4b7 Remove VS2013 workarounds from VTK-m. 2018-02-23 15:39:39 -05:00
Robert Maynard
e630ac5aa4 Merge branch 'master' into vtk-m-cmake_refactor 2018-02-23 14:52:00 -05:00
Robert Maynard
182f4707e7 vtkm prefers 'using' over typedef. 2018-02-23 10:47:20 -05:00
Robert Maynard
d0a68d3266 Refactor vtk-m storage basic to generate less code
By moving all common operations to a parent class we can
significantly reduce the vtk-m library size.
2018-02-16 09:59:19 -05:00
luz.paz
80b11afa24 Misc. typos
Found via `codespell -q 3` via downstream VTK
2018-01-30 06:51:47 -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
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
104f5418e8 Revert "updated based on pyexpander output"
This reverts commit 6908952f597cba945245349734790bad81823022
2018-01-04 17:28:33 -05: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
a81919999a Merge topic 'vtkm_host_device_warnings'
93bc0198 Suppress false positive warnings about calling host device functions.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1042
2018-01-02 14:10:54 -05:00
Robert Maynard
93bc0198fe Suppress false positive warnings about calling host device functions. 2018-01-02 10:40:49 -05:00
Robert Maynard
053dccac24 Properly propagate down the VTKM_NO_ASSERT flag to configure file. 2017-12-28 16:44:48 -05:00
Utkarsh Ayachit
d52b275e59 Making vtkm-cont depend on diy. 2017-12-15 15:15:23 -05:00
Robert Maynard
06c5f1613f Teach brigand about more intel compiler limitations introduced in 18.X. 2017-12-14 13:40:03 -05:00
Robert Maynard
f9f205e9df ListCrossProduct now uses a special version for MSVC2013
The lazy version that was implemented to get the Intel compiler to work doesn't
work under MSVC2013. Since MSVC2013 is our least c++11 conforming compiler we
add a special MSVS2013 code path, since it will be the first compiler we drop.
2017-12-11 16:27:15 -05:00
Robert Maynard
c02349a8e7 ListCrossProduct now uses a lazy evaluation implementation
The intel compiler could not generate code in a timely manner ( 12+ hours ) when
asked to produce a cross product of very long lists. By moving to a lazy
evaluation scheme we now have all compilers product a cross product in a
reasonable amount of time ( 2-4 seconds ).

This resolves Issues:
- https://gitlab.kitware.com/vtk/vtk-m/issues/190
- https://gitlab.kitware.com/vtk/vtk/issues/17196
2017-12-11 13:31:56 -05:00
Sujin Philip
e28309f09b Remove VTKM_EXEC_CONSTANT
If a global static array is declared with VTKM_EXEC_CONSTANT and the code
is compiled by nvcc (for multibackend code) then the array is only accesible
on the GPU. If for some reason a worklet fails on the cuda backend and it is
re-executed on any of the CPU backends, it will continue to fail.

We couldn't find a simple way to declare the array once and have it available
on both CPU and GPU. The approach we are using here is to declare the arrays
as static inside some "Get" function which is marked as VTKM_EXEC_CONT.
2017-12-05 13:49:55 -05:00
Robert Maynard
f6e18ac452 Remove IntegerSequence.h as we don't need it in vtk-m anymore 2017-11-29 10:55:04 -05:00
Robert Maynard
7f76220427 Redesign the Dispatcher to not need FunctionInterface to convert dynamic types 2017-11-28 11:01:02 -05:00
Robert Maynard
cc71e8ec6e vtkm::ListForEach can handle passing any number of extra arguments
Rather than requiring all the arguments to be placed as member variables to
the functor you can now pass extra arguments that will be added to the functor
call signature.

So for example:

  vtkm::ForEach(functor, vtkm::TypeListTagCommon(), double{42.0}, int{42});

will be converted into:

  functor(vtkm::Int32, double, int)
  functor(vtkm::Int64, double, int)
  functor(vtkm::Float32, double, int)
  functor(vtkm::Float64, double, int)
  ...
2017-11-08 08:24:47 -05:00
Robert Maynard
3701776e8d Refactor DynamicArrayHandle CastAndCall
This is the first step in making a more efficient CastAndCall for
DynamicArrayHandle.
2017-11-07 13:20:46 -05:00
Robert Maynard
eafd5cc075 Stop providing the VTKM_OVERRIDE define.
This define should not be used as VTK-m requires C++11 and prefers the
override keyword.
2017-11-06 14:46:32 -05:00
Allison Vacanti
e9633e1dea Move some MSVC warning disablers to Configure.h
These useless warnings are popping up in VTK/ParaView builds that use
VTKm. Moving them to a header so other projects will get them.
2017-10-23 15:16:49 -04:00
Allison Vacanti
b396716f86 Merge topic 'vertexclustering-reducepoints'
8fabece1 Use median point from cluster as representative vertex.
c7bf0c95 Compute PointIdMap while reducing cluster ids.
5dee7c6a Select input point from cluster rather than averaging.
28e76ddb Update vertex clustering benchmarking code.
e3c9e7bb Optimize cell map computation.
d7669650 Use requested grid in VertexClustering worklet.
0472dc11 Fix warning on Cuda.
3f4e17e2 Add field mapping to VertexClustering.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !960
2017-10-11 16:25:30 -04:00
Sujin Philip
730fa4390a Update cuda 9 workaround for cuda 9 final release 2017-10-10 11:34:29 -04:00
Allison Vacanti
0472dc1198 Fix warning on Cuda.
assert(false && ""); emitted a

"warning : controlling expression is constant"

Replace the assertion with an exception, which is more appropriate here
anyway.
2017-10-10 10:28:51 -04:00
Allison Vacanti
75f88b4c46 Add versioning to VTKM installed include/share dirs. 2017-10-02 11:39:10 -04:00
Robert Maynard
fe8b75f7bf Consistenly use nullptr in vtk-m. 2017-09-25 09:57:23 -04:00
Kenneth Moreland
fb6be2819d Merge topic 'doxygen-fixes'
52060f52 Fix many warnings from doxygen

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !951
2017-09-22 14:05:24 -04:00