Commit Graph

408 Commits

Author SHA1 Message Date
Haocheng LIU
0d39806f4f Rename worklet testing executable
Now it's in accordance with vtkm testing name convension as
UnitTests_vtkm_worklet_testing.
2018-11-29 15:51:41 -05:00
Haocheng LIU
9d330cb541 Fix a logic flaw in vtkm_unit_tests function
This commit fixes a logic flaw that will wrongly append `--device=`
to tests that does not specified devices.
2018-11-27 14:31:32 -05:00
Haocheng LIU
8859636672 Merge worklet testing executables into a device dependent shared library
VTK-m has been updated to replace old per device worklet testing executables with a device
dependent shared library so that it's able to accept a device adapter
at runtime.
Meanwhile, it updates the testing infrastructure APIs. vtkm::cont::testing::Run
function would call ForceDevice when needed and if users need the device
adapter info at runtime, RunOnDevice function would pass the adapter into the functor.

Optional Parser is bumped from 1.3 to 1.7.
2018-11-23 10:13:56 -05:00
Robert Maynard
ad433780f0 Properly handle FindTBB modules that don't contain TBB_LIBRARY_RELEASE
The FindTBB modules that come with packages such as OSPRay don't
provide TBB_LIBRARY_RELEASE but instead only provide TBB_LIBRARY.
If TBB_LIBRARY_RELEASE isn't found, and TBB_LIBRARY is we will use
that as the release library
2018-11-19 15:50:38 -05:00
Robert Maynard
dfa9f64436 MSVC now supports the COMPILE_LANGUAGE generator expression. 2018-11-12 15:16:13 -05:00
Robert Maynard
a423cf056c TestBuild header paths are shorter to make windows happy.
ContourTreeAugumneted paths became too long and caused msvc
to fail to construct pdb paths
2018-10-16 15:01:39 -04:00
luz.paz
d5beb69ec1 Misc. typos
Found via `codespell`
2018-10-04 10:30:33 -04:00
Robert Maynard
36ca00794d Add turing to VTK-m support hardware now that CUDA 10 is out. 2018-09-20 08:34:25 -04:00
Robert Maynard
48cc2f661a Make sure VTK-m runs all OpenMP tests serially.
Fixes issue #276.
OpenMP tests when run in parallel exhibit negative scaling as we
have N openMP processes each spawning N threads. We speculate that
this causes excessive context switching and swapping and reduces
performance.
2018-08-08 10:01:18 -04:00
Sujin Philip
8126699dc9 Update FindTBB.cmake
Add support for gcc4.7 version of the ibrary. Based on the changes from VTK's
FindTBB.cmake file.
2018-07-23 14:08:44 -04:00
Allison Vacanti
feb987fec2 Fix bad target name. 2018-07-11 11:02:13 -04:00
Allison Vacanti
e95734ef2d Fix compilation on ICC. Option/definition mismatch. 2018-07-10 10:48:19 -04:00
Robert Maynard
2ebde3806a Remove cyclic link between vtkm_developer_flags and vtkm_compiler_flags.
Fixes #263
The vtkm_developer_flags target should only be to be consumed by
vtkm_compiler_flags.
2018-07-09 08:27:41 -04:00
Sujin Philip
7d4d734e83 OpenMP compiler flags were not being set properly
The command set_target_properties over-writes any existing values of the
property. Fixed the problem by using set_property with APPEND.
2018-06-22 14:10:22 -04:00
Robert Maynard
303cf06e4c Merge topic 'cmake_set_policies_to_new'
9861cdecb Use CMake to automatically set policies to NEW.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Allison Vacanti <allison.vacanti@kitware.com>
Merge-request: !1270
2018-06-19 17:11:58 -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
Robert Maynard
0e4bcf757c VTK-m supports openmp and cuda devices in same translation unit 2018-06-19 13:47:03 -04:00
Robert Maynard
d07e1f1e94 Merge topic 'tbb_not_found'
bef1965cd VTK-m now handles when TBB uses link scripts.
b2682ec5f VTK-m properly specifies the linker language of imported targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !1264
2018-06-18 17:46:27 -04:00
Robert Maynard
bef1965cd5 VTK-m now handles when TBB uses link scripts.
If somebody is using the official TBB binaries on linux
they will encounter issues as the .so files are actually
link scripts which CMake doesn't support. We now manually
work around this problem.
2018-06-18 14:41:00 -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
Robert Maynard
b2682ec5fc VTK-m properly specifies the linker language of imported targets 2018-06-14 09:08:00 -04:00
mclarsen
04162dc652 use openmp 4.0 2018-06-06 15:44:05 -07:00
Allison Vacanti
183bcf109a Add initial version of an OpenMP backend. 2018-05-31 16:47:48 -04:00
Allison Vacanti
f557bd1878 Fix vectorization flags used by CUDA.
The -Xcompiler flag wants a comma sep list of flags, we were
passing one with whitespace delimiters.
2018-05-22 14:50:04 -04:00
Robert Maynard
87ca7e7a45 Source in build test ignore the taotuple thirdparty library 2018-05-21 10:22:45 -04:00
Allison Vacanti
193447078f Add vtkm_taotuple to build system. 2018-05-16 11:45:11 -04:00
Sujin Philip
52758f7f3a Properly set up cuda architecture flags 2018-05-14 14:23:28 -04:00
Robert Maynard
4a75023115 UnitTests with an explicitly backend pass it as a compile def
Previously the backend was not past as a compile definition which
would cause serial worklet tests to use the TBB backend if
it was enabled.
2018-05-11 14:21:36 -04:00
Sujin Philip
d501a41576 Add VTKm_ENABLE_DEVELOPER_FLAGS cmake option
The goal is to provide a way to disable VTK-m warning flags when used as a
thirdparty library.
VTK-m's stricter warning flags were cauing several new warnings in VTK.
2018-05-10 12:47:20 -04:00
Robert Maynard
916c0902cf Correct Wstrict-overflow issues with gcc 5 and 6 2018-05-09 08:26:45 -04:00
Robert Maynard
c69fa0f39c Better document and consistently use vtkm compiler flag targets.
We now consistently use vtkm_compiler_flags for external faces
flags, and vtkm_developer_flags for internal flags
2018-05-08 17:38:35 -04:00
Sujin Philip
f213cd1fcb Merge topic 'fix-cmakefiles'
80789a85 Export vtkm::cuda and vtkm::tbb targets as GLOBAL
3be5ee8a Fix usage of vtkm_compile_as_cuda in examples

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1183
2018-05-04 17:29:00 -04:00
Sujin Philip
80789a85da Export vtkm::cuda and vtkm::tbb targets as GLOBAL 2018-05-04 16:14:53 -04:00
Robert Maynard
fb0da7f2de Allow vtkm_find_gl CMake function to be used no matter vtk-m settings
Previously vtkm_find_gl was only usable when rendering was enabled.
This is problematic as examples would use vtkm_find_gl even if
they didn't use vtkm rendering library.
2018-05-04 15:01:06 -04:00
Kenneth Moreland
5c5fb020a8 Merge topic 'fix-test-header-builds'
d393468e Add any OpenGL link targets to test builds
8b9c0f50 Re-add non testable files to test build sources
ffd98463 Load correct file extension in header test build
7c5f44a6 Fix warnings about no symbols
289a4bc1 Differentiate between header files with different extensions
9571c9b5 Fix vtkm_add_header_build_test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1160
2018-04-25 23:01:10 -04:00
Kenneth Moreland
d393468e9c Add any OpenGL link targets to test builds 2018-04-24 11:47:26 -04:00
Robert Maynard
7c7b1ed54a Make sure when compiling CUDA code we suppress unknown pragma 2018-04-23 15:27:08 -04:00
Robert Maynard
4ca2522c6e VTK-m when building CUDA code in debug now checks for more warnings 2018-04-23 14:27:53 -04:00
Utkarsh Ayachit
cf91ca520e Fix issues with VTKmDetermineVersion.
The code had 2 issues:
1. used obsolete 'output' if Git executable was missing. There was a
   possibility that output variable was never set and used some garbage
   value from parent scope.

2. version pattern matching was too liberal and would match
   absolute any long txt so long as it has some numbers in it that matched
   a typical version number.
2018-04-23 10:30:27 -04:00
Robert Maynard
4234fe4cb1 Merge topic 'correct_specify_visbility_controls'
51da7fab VTK-m now correctly specifies hidden symbol visibility be default.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1163
2018-04-23 09:06:58 -04:00
Robert Maynard
b62913bcac Merge topic 'update_vtkmconfig_documentation'
0bde9b9a Update VTKmConfig documentation to list variables and targets VTK-m constructs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1159
2018-04-20 16:07:27 -04:00
Robert Maynard
e9c5088506 Merge topic 'reandering-contexts-in-external-project'
96ff3a53 Find OpenGL libraries in external projects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1161
2018-04-20 14:35:21 -04:00
Robert Maynard
51da7faba2 VTK-m now correctly specifies hidden symbol visibility be default.
This correct very weird runtime crashes that showed up under CUDA 7.5
2018-04-20 14:30:51 -04:00
Robert Maynard
b34e0979a2 Merge topic 'support_relaxed_constexpr_windows_cuda'
eb25956a On MSVC+CUDA pass -expt-relaxed-constexpr

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1156
2018-04-20 13:42:34 -04:00
Kenneth Moreland
96ff3a5343 Find OpenGL libraries in external projects
Previously when an external project loaded VTK-m with find_package(VTKm)
and then tried to use anything with OpenGL, you would get compiler (and
probably linker) errors. The problem was that
VTKmRenderingContexts.cmake skipped over the loading of OpenGL libraries
because the vtkm_rendering_gl_context target was imported before this
code was ever called. Correct the problem by going through the motions
of checking OpenGL every time.
2018-04-19 19:41:46 -06:00
Kenneth Moreland
8b9c0f50f1 Re-add non testable files to test build sources
The vtkm_add_header_build_test was changed to identify "valid" header
files that were actually tested and only adding those to the source
list. This was a mistake. A big part of the point of adding headers that
are not tested to the test build sources is to list them to an IDE.
2018-04-19 15:31:41 -06:00
Kenneth Moreland
ffd98463f5 Load correct file extension in header test build
Not all VTK-m headers end in .h, but the created test build files
assumed that it was loading in a .h file. Fixed that.
2018-04-19 15:14:32 -06:00
Kenneth Moreland
7c5f44a65d Fix warnings about no symbols
The test build file did not actually define any symbols, so the linker
might give a warning about it not being used in the library. Define some
unique symbol so that the linker will not complain.
2018-04-19 15:10:57 -06:00
Kenneth Moreland
289a4bc1aa Differentiate between header files with different extensions
If you tried to create test builds of a header.h and header.hxx, you
would get an error about building two files with the same name (tried to
build header.cxx for both of them). Fixed this by adding the original
extension name to the source file name.
2018-04-19 15:02:33 -06:00
Kenneth Moreland
9571c9b54f Fix vtkm_add_header_build_test
The CMake configuration stopped creating any of the test builds. There
were a couple of errors introduced into this function that needed to be
fixed.

First, the condition on whether the testing should be skipped got
reversed. It was trying to create test build files for all the headers
that were not supposed to be built instead of the ones that were.

Second, the list of source files to build was not created correctly. The
set command that stored the name of the source file got removed, and so
nothing was being added to the list. I restored the variable and used
that consistently for the source file name.
2018-04-19 14:31:30 -06:00
Robert Maynard
0bde9b9afa Update VTKmConfig documentation to list variables and targets VTK-m constructs
Fixes #219
2018-04-19 16:27:38 -04:00
Robert Maynard
e62978853b Remove usage of CMake commands that don't exist in CMake 3.3 2018-04-19 15:31:43 -04:00
Robert Maynard
eb25956ae2 On MSVC+CUDA pass -expt-relaxed-constexpr 2018-04-19 10:06:20 -04:00
Robert Maynard
8c7c1be232 Specify an RPATH for CUDA runtime on OSX so tests will run 2018-04-17 14:05:07 -04:00
Robert Maynard
06c3389aa7 Merge topic 'correct_cuda_calling_host_function_warnings'
73c05c10 Suppressions of __host__ warnings shouldn't trigger internal compile errors
5100e559 Suppress warnings about calling __host__ functions from CUDA 9.0
282c515e Suppress warnings about calling __host__ functions from CUDA 8.0
5dfdc830 Cuda will also print error/warning pragma values now.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1150
2018-04-12 14:35:01 -04:00
Utkarsh Ayachit
d5b48645a3 Merge topic '217-add-distribute-testing-support'
3211c150 add support to run test with MPI.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1148
2018-04-12 14:26:47 -04:00
Robert Maynard
5dfdc8304b Cuda will also print error/warning pragma values now.
Previously we only printed out the error numbers on MSVC.
2018-04-12 10:06:57 -04:00
Robert Maynard
bc34a14f0f Merge topic 'remove_duplicate_lib_versioning'
2d522503 VTK-m library naming convention is now restored how it was done for v1.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1149
2018-04-11 17:18:45 -04:00
Robert Maynard
2d522503b0 VTK-m library naming convention is now restored how it was done for v1.2 2018-04-11 16:50:56 -04:00
Kenneth Moreland
c0bedb057e Merge topic 'find-tbb-version'
faf916f1 Fix condition on which to get the TBB version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1140
2018-04-11 13:45:22 -04:00
Utkarsh Ayachit
3211c1501c add support to run test with MPI.
`vtkm_unit_tests` now supports an MPI option that can be used to add
test that run with MPI. Adding `UnitTestFieldRangeGlobalCompute` to test
global ranges for fields.
2018-04-10 14:48:37 -04:00
Robert Maynard
de79765c24 Merge topic 'move_over_to_sm_archs'
d7ce601c To allow compiled in virtuals we need to only build for actual sm archs.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1146
2018-04-10 08:36:12 -04:00
Robert Maynard
5acaae3969 Merge topic 'examples_correctly_link_to_libGLU'
a37a3f39 Examples that use glu functions now properly link to OpenGL::GLU
a44ad273 Make sure Rendering example doesn't conflict with rendering testing name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Utkarsh Ayachit <utkarsh.ayachit@kitware.com>
Merge-request: !1147
2018-04-09 16:53:47 -04:00
Robert Maynard
a37a3f3968 Examples that use glu functions now properly link to OpenGL::GLU 2018-04-09 15:29:01 -04:00
Robert Maynard
d7ce601cd4 To allow compiled in virtuals we need to only build for actual sm archs.
CUDA currently doesn't support building for `compute_` and having compiled
in virtuals ( using separable compilation ). So we need to transition everything
over to `sm_`
2018-04-09 12:50:13 -04:00
Robert Maynard
b658a72af7 Fix broken VTK-m PyExpander functin
Fixes #216
2018-04-09 11:05:51 -04:00
Robert Maynard
84311a2453 Merge branch 'master' into cmake_refactor 2018-04-05 10:18:36 -04:00
Kenneth Moreland
faf916f1be Fix condition on which to get the TBB version
The FindTBB.cmake module gets the TBB version by reading and grepping
one of the header files. Before doing so, it checks to see if the
version variable already exists. The problem was it was checking
TBB_VERSION, which was never created. Worse, other build systems might
set this for us (for example, the ParaView superbuild). Correct this by
making sure both TBB_VERSION_MAJOR and TBB_VERSION_MINOR are set.
2018-04-04 16:34:34 -06:00
Kenneth Moreland
0d2309aba3 Add template sources to built library
Previously there was a special build for the template source files
(.hxx) that installed them but did not create the test builds (because
they cannot be built outside of their enclosing .h file). It also added
an entry into the IDE that let them show up on the file list. However,
because they were not explicitly built as part of something actually
compiled, they did not have an compile options associated with them.
This caused confusion in some IDEs where it could not find the header
files it included, which made it more frustrating to edit them.
2018-04-02 10:11:06 -06:00
Robert Maynard
cbadd3e67e Make CoordinateSystem not fail on CUDA 2018-03-10 16:38:41 -05:00
Utkarsh Ayachit
756c7e1d11 selectively disable C4275. 2018-02-27 13:42:52 -05:00
Utkarsh Ayachit
4813d7cb7f disable non-fixable MSVC warnings. 2018-02-26 15:33:56 -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
Thomas Otahal
84de519250 Applied patch from Rob Maynard
This makes finding the implementation and explicit instantiations easier.
It also removes most macro usage from RadixSort.
2018-02-13 09:16:45 -07:00
Robert Maynard
022c987182 Correct warnings and errors found with MSVC2017+CUDA9 2018-01-31 15:58:45 -05:00
Robert Maynard
3caeeb88f6 Make sure that CUDA unit tests actually use cuda
Also if .cu files are passed as sources to a unit tests we
don't shim them
2018-01-31 15:58:43 -05:00
Robert Maynard
8b4181141d Correct the build location of libraries. 2018-01-31 15:58:23 -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
800a1823b7 Merge topic 'determine-version-context'
32cc61f7 VTKmDetermineVersion: list the project we found the version for

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1065
2018-01-29 10:24:15 -05:00
Utkarsh Ayachit
da2e851187 skip fmt and tthread from doxygen 2018-01-26 13:31:10 -05:00
Ben Boeckel
32cc61f7b0 VTKmDetermineVersion: list the project we found the version for
It's confusing inside of VTK and ParaView.
2018-01-24 09:17:57 -05:00
Ben Boeckel
dd1f096255 cmake: allow overriding of the build-tree CMake location 2018-01-18 08:40:40 -05:00
Robert Maynard
d1f0b621ab VTKmConfig sets all VTKm variables before doing anything else 2018-01-17 16:34:38 -05:00
Robert Maynard
df406b5ed3 VTKmConfig.cmake now correctly stating which gl context rendering has 2018-01-17 13:23:29 -05:00
Robert Maynard
4f131d8223 Make VTK-m CMake output no extra information when configuring 2018-01-16 17:23:42 -05:00
Robert Maynard
0ea06bfdb7 Properly version dynamic libraries and build them in the correct location 2018-01-16 17:23:12 -05:00
Robert Maynard
06da1528c4 vtk-m installed included directory obeys VTKm_INSTALL_INCLUDE_DIR 2018-01-16 15:42:38 -05:00
Robert Maynard
89ce1a34a0 Respect the settings of VTKm_Vectorization when building VTK-m 2018-01-16 15:42:37 -05:00
Robert Maynard
7c882473bd Correct compilation under MSVC when CUDA is enabled. 2018-01-16 15:42:37 -05:00
Robert Maynard
ec074bb627 Redesign how we specify cxx files should be compiled as cuda.
Due to limitations in the CUDA MSBuild support and how CMake stores the language
of a source file, we had to change VTK-m over to using generated .cu files
to signal when we want CUDA compilation.
2018-01-16 15:42:37 -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
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
Ben Boeckel
c5d630a77e cmake: add a vtkm_option macro
Projects might want to force these without giving users the indication
that their choices actually matter.
2018-01-16 15:21:17 -05:00
Ben Boeckel
268a88e748 cmake: remove executable permissions from CMake files 2018-01-16 14:56:02 -05:00
Robert Maynard
4a09615000 Correct issues when building on windows 2018-01-08 14:00:58 -05:00
Matthew Letter
360174fd48 adding logic for determining a location for cuda windows
adding logic for determining a location for cuda windows, the location has to be valid for cmake to config cuda correctly.
2018-01-08 14:00:58 -05:00
Robert Maynard
5dd6e09da6 CUDA compilation on linux now works with CMake 3.9 and gcc 6 2018-01-08 14:00:58 -05:00
Robert Maynard
3f02d97ae4 Re-enable verification of generated files with pyexpander 2018-01-08 14:00:58 -05:00