Commit Graph

1353 Commits

Author SHA1 Message Date
Robert Maynard
a7127f0fc3 Adding vtkm::cont::RuntimeDeviceInformation.
The RuntimeDeviceInformation class allows developers to check if a given
device is supported on a machine at runtime. This allows developers to properly
check for CUDA support before running any worklets.
2015-12-15 17:25:27 -05:00
Robert Maynard
7d249e8996 Move DeviceAdapterTraits into vtkm::cont as they are user API.
When writing multiple backend code users of vtkm need to use the
DeviceAdapterTraits classes, so therefore we should move them to vtkm::cont
to signify this.
2015-12-11 09:52:18 -05:00
Robert Maynard
36e927c47c Merge topic 'reduce_test_failures'
4fd4095b Extend the timeout for vtkm worklet tests to reduce timeout failures.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !286
2015-12-10 16:04:56 -05:00
Robert Maynard
4fd4095b36 Extend the timeout for vtkm worklet tests to reduce timeout failures.
Dejagore and Renar are both having tests timeout, so lets extend the window.
2015-12-10 15:28:36 -05:00
Robert Maynard
9d172652fb Merge topic 'add_easy_cuda_flags_to_cmake'
f6ae5f3d CUDA GPU architecture detection now works with MSVC generators.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !285
2015-12-10 13:30:47 -05:00
Robert Maynard
f6ae5f3dec CUDA GPU architecture detection now works with MSVC generators. 2015-12-10 09:34:30 -05:00
Robert Maynard
33cac51e22 Merge topic 'add_easy_cuda_flags_to_cmake'
204804af Teach VTK-m how to specify the CUDA GPU architecture to build for.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !281
2015-12-10 09:08:18 -05:00
Robert Maynard
204804af50 Teach VTK-m how to specify the CUDA GPU architecture to build for.
Like the ability to specify the vectorization level, users of CMake can
now specify what GPU architectures they want to build for. Most users
should just use the default 'native'.
2015-12-09 13:17:00 -05:00
Kenneth Moreland
763de94aca Merge branch 'whole-array-control-signature' into 'master'
WholeArray tag for ControlSignature

Add WholeArrayIn, WholeArrayInOut, and WholeArrayOut tags for ControlSignature. They tags behave similarly to using an ExecObject tag with an ExecutionWholeArray or ExecutionWholeArrayConst object. However, the WholeArray* tags can simplify some implementations in two ways. First, it allows you to specify more precisely what data is passed in. You have to pass in an ArrayHandle or else an error will occur (as opposed to be able to pass in any type of execution object). Second, this allows you to easily pass in arrays stored in DynamicArrayHandle objects. The Invoke mechanism will automatically find the appropriate static class. This cannot be done easily with ExecutionWholeArray.


See merge request !284
2015-12-07 18:24:54 -05:00
Kenneth Moreland
0475e1cd18 Merge branch 'use-stl-min-max' into 'master'
Use std::Min/Max over fmin/fmax

We had a report that vtkm::Min/Max was significantly slower than other
products. This was traced back to the fact that these functions were not
completely inlining because they were calling fmin or fmax, and that
resulted in an actual C library call. It turns out using the templated
functions in the std namespace is faster.

This change has the VTK-m min/max functions use the std version in
almost all circumstances. The one exception (so far) is that fmin and
fmax are used for CUDA devices since the std functions are not declared
to run on the device and the nvcc compiler treats these functions
special.

See merge request !279
2015-12-07 12:51:44 -05:00
Kenneth Moreland
6f03f72b49 Use WholeArrayIn instead of ExecObject for MarchingCubes worklets
The two worklets for marching cubes use tables stored in arrays that
have random access. Previously, they arrays were passed using the
ExecObject tag in ControlSignature along with ExecutionWholeArrayConst.
This changes to using a WholeArrayIn tag and just passing the
ArrayHandle directly to the Invoke method. The end result is the same,
but the code is a bit cleaner.
2015-12-07 09:52:29 -07:00
Kenneth Moreland
2ac8456b5e Add WholeArray* ControlSignature tags
The WholeArrayIn, WholeArrayInOut, and WholeArrayOut ControlSignature
tags behave similarly to using an ExecObject tag with an
ExecutionWholeArray or ExecutionWholeArrayConst object. However, the
WholeArray* tags can simplify some implementations in two ways. First,
it allows you to specify more precisely what data is passed in. You have
to pass in an ArrayHandle or else an error will occur (as opposed to be
able to pass in any type of execution object). Second, this allows you
to easily pass in arrays stored in DynamicArrayHandle objects. The
Invoke mechanism will automatically find the appropriate static class.
This cannot be done easily with ExecutionWholeArray.
2015-12-07 09:52:29 -07:00
Kenneth Moreland
5d829f2142 Use std::Min/Max over fmin/fmax
We had a report that vtkm::Min/Max was significantly slower than other
products. This was traced back to the fact that these functions were not
completely inlining because they were calling fmin or fmax, and that
resulted in an actual C library call. It turns out using the templated
functions in the std namespace is faster.

This change has the VTK-m min/max functions use the std version in
almost all circumstances. The one exception (so far) is that fmin and
fmax are used for CUDA devices since the std functions are not declared
to run on the device and the nvcc compiler treats these functions
special.
2015-12-07 09:26:27 -07:00
Robert Maynard
03661259b8 Merge topic 'simplify_vectorization_options'
2df501c7 Suppress failure to vectorize warnings from the Intel Compiler.
68e3032b Properly detect OSX Intel Compiler as Intel not Clang.
646b3ad7 Suppress notification about failure to vectorize on release builds.
05e8f592 Disable vectorization pragma's if we detect the compiler doesn't support them.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !282
2015-12-04 11:00:41 -05:00
Robert Maynard
2df501c7a0 Suppress failure to vectorize warnings from the Intel Compiler. 2015-12-04 09:18:54 -05:00
Robert Maynard
ca03614f2d Merge branch 'fix-isosurfaceuniformgrid-example' into 'master'
Use vtkm::Float32 with OpenGL, not vtkm::FloatDefault.

When vtkm was built with VTKm_USE_DOUBLE_PRECISION, the IsosurfaceUniformGrid
example would not compile. Now it does.

See merge request !283
2015-12-03 15:54:22 -05:00
T.J. Corona
e14dba7ed4 Use vtkm::Float32 with OpenGL, not vtkm::FloatDefault.
When vtkm is built with VTKm_USE_DOUBLE_PRECISION, the IsosurfaceUniformGrid
example would not compile. Now it does.
2015-12-03 15:02:41 -05:00
T.J. Corona
baa73eaad8 Merge topic 'marching-cubes'
33b0d1bf Move marching cubes edge table out of the worklet.
a5ae4127 Remove IsosurfaceUniformGrid.
35355382 Generalize IsosurfaceUniformGrid to Accept explicit cell sets.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !272
2015-12-03 14:54:02 -05:00
Robert Maynard
68e3032b4e Properly detect OSX Intel Compiler as Intel not Clang. 2015-12-03 14:41:07 -05:00
Robert Maynard
646b3ad7f9 Suppress notification about failure to vectorize on release builds. 2015-12-03 13:54:51 -05:00
Robert Maynard
05e8f592cd Disable vectorization pragma's if we detect the compiler doesn't support them. 2015-12-03 13:44:52 -05:00
T.J. Corona
33b0d1bfd7 Move marching cubes edge table out of the worklet. 2015-12-02 15:33:52 -05:00
T.J. Corona
a5ae4127e0 Remove IsosurfaceUniformGrid. 2015-12-02 15:11:56 -05:00
Robert Maynard
6e62b9626a Merge topic 'simplify_vectorization_options'
bfb6c26a Simplify the design of vectorization support.
4ea567ae Remove VTKm_ENABLE_VECTORIZATION, as VTKm_Vectorization handles all use cases.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !277
2015-12-02 08:15:52 -05:00
Robert Maynard
bfb6c26a98 Simplify the design of vectorization support.
Remove the configured file variables, as that causes problems
when using an installed version of VTK-m.
2015-12-01 11:37:41 -05:00
Kenneth Moreland
034d56481f Merge branch 'warnings-streamline-example' into 'master'
Fix streamline example warnings



See merge request !278
2015-11-30 18:46:33 -05:00
Kenneth Moreland
a598f03fbb Fix initialization order of fields in MakeStreamLines class
When a C++ object is constructed, the fields (ivars) of that object are
initialized in the order they are declared in the structure regardless
of the order of initializers listed in the constructor. Thus, it is good
C++ convention to list the initializers of the constructor in the same
order they are declared in the class so that there is no confusion about
the order of initialization (which can matter if there are any
dependencies). To help enforce this convention, some compilers warn if
the order does not match. This commit fixes that issue.

This commit also removes trailing whitespace at the end of some lines in
StreamLineUniformGrid.h. My editor does this automatically because
trailing whitespace bugs some programmers.
2015-11-30 14:20:00 -07:00
Kenneth Moreland
0d0294d4b2 Fix conversion warnings in streamline example.
vtkm::Id is a signed integer whereas size_t used by standard C++
functions is unsigned. It doesn't matter, but compilers like to complain
about it. Make any such conversions explicit.
2015-11-30 14:14:07 -07:00
Robert Maynard
4ea567aee9 Remove VTKm_ENABLE_VECTORIZATION, as VTKm_Vectorization handles all use cases. 2015-11-30 11:08:21 -05:00
Robert Maynard
c06c54b1fb Merge topic 'enable_vectorization'
4ceb111a Enable vectorization inside the Serial and TBB backends.
514ea09a Teach VTK-m how to enable vectorization for gcc, clang, and icc.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !275
2015-11-27 09:36:15 -05:00
Robert Maynard
4ceb111a68 Enable vectorization inside the Serial and TBB backends. 2015-11-25 15:59:13 -05:00
Sujin Philip
9c31290619 Merge topic 'io-reader-unsupported-cells'
066e1bf3 Convert unsupported cell types to supported types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !273
2015-11-24 15:29:58 -05:00
Sujin Philip
066e1bf3b1 Convert unsupported cell types to supported types 2015-11-24 13:56:23 -05:00
Patricia
e033d5a391 Merge topic 'streamline'
6c4fb856 Add example data file for streamline.
cba0e218 Verify unit test results
3946b0c4 Add unit test, pass all args in Run()
09e43778 Merge branch 'master' of gitlab.kitware.com:Fasel/vtk-m into streamline
02f84a19 StreamLine filter outputs dataset.  Add example.
34cc9719 StreamLine particle tracing returns output dataset.
e34aaa02 Merge branch 'master' of gitlab.kitware.com:Fasel/vtk-m into streamline
82d9c102 Pass input and output datasets and not arrays. Support FORWARD, BACKWARD and BOTH.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !267
2015-11-24 10:34:10 -05:00
Patricia Kroll Fasel - 090207
6c4fb856df Add example data file for streamline. 2015-11-23 17:00:22 -07:00
Patricia Kroll Fasel - 090207
cba0e218d8 Verify unit test results 2015-11-23 16:46:23 -07:00
Patricia Kroll Fasel - 090207
3946b0c462 Add unit test, pass all args in Run() 2015-11-23 16:19:26 -07:00
Patricia Kroll Fasel - 090207
09e4377891 Merge branch 'master' of gitlab.kitware.com:Fasel/vtk-m into streamline 2015-11-23 12:56:27 -07:00
Patricia Kroll Fasel - 090207
02f84a1992 StreamLine filter outputs dataset. Add example. 2015-11-23 12:54:12 -07:00
Patricia Kroll Fasel - 090207
34cc971969 StreamLine particle tracing returns output dataset. 2015-11-23 12:50:13 -07:00
Robert Maynard
514ea09afc Teach VTK-m how to enable vectorization for gcc, clang, and icc. 2015-11-23 12:44:05 -05:00
Robert Maynard
9b7643806d Merge topic 'file-name-case'
8dca9f5f Fix case in reference to UseVTKmCUDA.cmake.
5a4c357c Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m
53bb34b8 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m
5b1a6b36 Adding Clear() method to DataSet.
f5e3c3ac Add missing methods to CellSetPermutation.
cec123c6 CellSetSingleType::Fill now works with custom storage types.
8adbdefd WIP: Install missing header.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !274
2015-11-20 13:17:06 -05:00
T.J. Corona
8dca9f5f6a Fix case in reference to UseVTKmCUDA.cmake. 2015-11-20 13:06:14 -05:00
T.J. Corona
5a4c357c6e Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m 2015-11-20 13:00:31 -05:00
T.J. Corona
353553829d Generalize IsosurfaceUniformGrid to Accept explicit cell sets. 2015-11-20 12:38:03 -05:00
Kenneth Moreland
b5803a5f05 Merge branch 'improve-cmake-module' into 'master'
Improve CMake module

Some improvements to VTKmConfig.cmake and the device configuration scripts to better support CMake projects using VTK-m.

See merge request !271
2015-11-12 18:09:01 -05:00
Patricia Kroll Fasel - 090207
e34aaa02ea Merge branch 'master' of gitlab.kitware.com:Fasel/vtk-m into streamline 2015-11-12 16:08:44 -07:00
Patricia Kroll Fasel - 090207
82d9c10206 Pass input and output datasets and not arrays. Support FORWARD, BACKWARD and BOTH. 2015-11-12 15:35:46 -07:00
Kenneth Moreland
8d207097b1 If VTK-m is required in find_package, require sub packages
If a project loads VTK-m with find_package(VTKm REQUIRED), then also make
it required to find any packages the default devices require.
2015-11-12 14:41:22 -07:00
Kenneth Moreland
fac5d79a52 Remove direct use of TBB_LIBRARIES and TBB_INCLUDE_DIRS
Instead, use VTKm_LIBRARIES and VTKm_INCLUDE_DIRS where the configuration
stores all necessary libraries and include directories.
2015-11-12 14:34:31 -07:00