Commit Graph

1616 Commits

Author SHA1 Message Date
Chuck Atkins
5f72eb9252 Merge topic 'fix-scope-resolution-for-pthread'
570e41e8 Fix scope resolution for nvidia pthread workaround

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !371
2016-03-18 13:11:23 -04:00
Chuck Atkins
570e41e809 Fix scope resolution for nvidia pthread workaround 2016-03-18 12:00:17 -04:00
Chuck Atkins
ab1ac55b29 Merge topic 'cleanup-gcc-warnings'
af7bba06 Refactor liner interpolation to use (1-w)*v0+w*v1
635f8c79 Add a CTestCustom file to to filter out warnings that cant be eliminated
f74c0d3c Remove type conversion related warnings for GCC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !351
2016-03-18 11:47:34 -04:00
Robert Maynard
81405ecf0e Merge topic 'correct_transfer_to_opengl_test'
df8c13ee Mark vtkm_force_linking_to_pthread_to_fix_nvidia_libgl_bug as static

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !369
2016-03-18 11:27:10 -04:00
Robert Maynard
df8c13eeda Mark vtkm_force_linking_to_pthread_to_fix_nvidia_libgl_bug as static 2016-03-18 11:25:59 -04:00
Chuck Atkins
af7bba062a Refactor liner interpolation to use (1-w)*v0+w*v1
Using v0+w*(v1-v0) can be numerically unstaqble due to floating point
arithmatic errors.  Additionaly, the newer form also resolves type
conversion warnings.
2016-03-18 10:54:56 -04:00
Robert Maynard
229a416b56 Merge topic 'correct_transfer_to_opengl_test'
c1c43d19 Force GCC linker to see that we need pthread to work around nvidia driver bug.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !365
2016-03-18 10:44:54 -04:00
Robert Maynard
c1c43d19d4 Force GCC linker to see that we need pthread to work around nvidia driver bug.
1. Some Linux distributions default linker implicitly enables the as-needed
linking flag. This means that your shared library or executable will only
link to libraries from which they use symbols. So if you explicitly link to
pthread but don't use any symbols you wont have a 'DT_NEEDED' entry for
pthread.

2. NVidia libGL (driver version 352 ) uses pthread but doesn't have
a DT_NEEDED entry for the library. When you run ldd or readelf on the library
you won't detect any reference to the pthread library. Aside this is odd
since the mesa version does explicitly link to pthread. But if you run the
following command:
       "strings  /usr/lib/nvidia-352/libGL.so.1 | grep pthread | less"
You will see the following:
{ pthread_create
  pthread_self
  pthread_equal
  pthread_key_crea
  ...
  libpthread.so.0
  libpthread.so
  pthread_create
}
This is very strong evidence that this library is using pthread.

3. So what does this all mean?
It means that on system that use the linking flag 'as-needed', are using
the nvidia driver, and don't use pthread will generate binaries that crash
on launch. The only way to work around this issue is to do either:
  A: Specify 'no-as-needed' to the linker potentially causing over-linking
     and a  slow down in link time
  B: Use a method from pthread, making the linker realize that pthread is
     needed.

 We went with method B.
2016-03-18 09:34:03 -04:00
Kenneth Moreland
345c360be1 Merge topic 'consistent-io-interface'
f81e8c64 Fix example that was using the old interface to VTKDataSetWriter
6aaf85ba Fix compile error with ofstream.
e863ee99 Change interface of VTKDataSetWriter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !364
2016-03-17 14:42:02 -04:00
Chuck Atkins
635f8c7987 Add a CTestCustom file to to filter out warnings that cant be eliminated 2016-03-17 13:14:30 -04:00
Chuck Atkins
f74c0d3c88 Remove type conversion related warnings for GCC 2016-03-17 13:05:38 -04:00
Kenneth Moreland
f81e8c642f Fix example that was using the old interface to VTKDataSetWriter
As a bonus, fix a compiler warning about an unused typedef.
2016-03-17 09:13:25 -06:00
Kenneth Moreland
6aaf85baa6 Fix compile error with ofstream.
Not all STD implementations allow constructing an ofstream with a filename
in a std::string. Get the c string instead.
2016-03-17 08:53:35 -06:00
Kenneth Moreland
e863ee991a Change interface of VTKDataSetWriter
Make it match VTKDataSetReader better. It's also a bit easier to use
because you just have to give it a filename rather than open your own file
stream.
2016-03-16 15:35:38 -06:00
Robert Maynard
3b06784146 Merge topic 'stop_icc_15_from_icing'
3f7d9429 Disable vectorization on debug Intel Compiler builds.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !363
2016-03-16 15:27:24 -04:00
Robert Maynard
7daa6668e8 Merge topic 'disable_vectorization_on_icc_14'
8818cfc6 Disable vectorization when building with ICC 14.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !362
2016-03-16 15:27:08 -04:00
Robert Maynard
57471721f7 Merge topic 'safer_vectorizations_for_serial_backend'
73b90a2e Don't provide vectorization hints for operations that can be done inplace.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !360
2016-03-16 15:27:02 -04:00
Robert Maynard
28c0118d83 Merge topic 'triangluate_table_conversion_warning'
81147365 fix a long long to int warning.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !361
2016-03-16 15:26:36 -04:00
Robert Maynard
3f7d9429c3 Disable vectorization on debug Intel Compiler builds.
The intel compiler generates internal compiler errors when you use
pragma simd and haven't defined NDEBUG.
2016-03-16 15:15:05 -04:00
Robert Maynard
8114736510 fix a long long to int warning. 2016-03-16 13:27:32 -04:00
Robert Maynard
8818cfc600 Disable vectorization when building with ICC 14.0
We have found that ICC 14.0 produces bad simd code that causes
vtkm worklets to throw SIGBUS signals. This issue was resolved in
ICC 15.0
2016-03-16 13:27:04 -04:00
Robert Maynard
73b90a2e44 Don't provide vectorization hints for operations that can be done inplace.
Previously we hinted to the compiler that it should vectorized operations
where the input and output are the same array. This obviously caused problems,
and these hints had to be removed.

In the future we need to first check for aliased arrays, and go from there.
2016-03-16 08:29:00 -04:00
Robert Maynard
177b31f330 Merge topic 'properly_compute_scatter_array_lengths'
85084f2c ScatterIdentity::GetVisitArray parameters are now named properly
86ecad65 ScatterIdentity::GetOutputToInputMap parameters are now named properly
40896e2b Allocate the scatter arrays to be proper length.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !359
2016-03-15 16:59:52 -04:00
Robert Maynard
85084f2ca1 ScatterIdentity::GetVisitArray parameters are now named properly
Now it is clear you pass in the input range and you will get the output
range
2016-03-15 16:49:36 -04:00
Robert Maynard
86ecad659a ScatterIdentity::GetOutputToInputMap parameters are now named properly
Now it is clear you pass in the input range and you will get the output
range.
2016-03-15 16:20:37 -04:00
Robert Maynard
40896e2bab Allocate the scatter arrays to be proper length.
The previous code would over allocate all the scatter arrays since
it was computing the output range, than using that as the input range.
2016-03-15 13:13:34 -04:00
Robert Maynard
2f352f90f4 Merge topic 'vtkm_filters'
e4237c3a Fix warnings found by the dashboard machines.
179b48e0 Reduce compile time for MarchingCubes by passing less info by Invoke.
8e4a47ef Update IsosurfaceUniformGrid to use the marching cubes filter.
d370155e MarchingCubes filter now generates coordinates when point merging is enabled.
c00fb53b Marching Cubes now generates vertices when merge duplicates is enabled.
f699c986 Renamed the ```Convert``` method to ```ApplyPolicy```
8e72ec8e Switch filter::threshold over to have a lower and upper bounds.
bcee8270 First draft of vtkm::filter design.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !311
2016-03-15 13:07:20 -04:00
Robert Maynard
e9040745e0 Merge topic 'functorbase_proper_constructor'
8683240b  vtkm::exec::FunctorBase now properly initializes ErrorMessageBuffer.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !358
2016-03-14 17:44:58 -04:00
Robert Maynard
af3c942e69 Merge topic 'implicit_function_wrong'
06424786 Correct implicit function test failures when vectorization is enabled.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !356
2016-03-14 17:44:47 -04:00
Robert Maynard
8683240b85 vtkm::exec::FunctorBase now properly initializes ErrorMessageBuffer. 2016-03-14 16:57:35 -04:00
Robert Maynard
62dd5e6a2a Merge topic 'proper_atomics_with_serial_device'
ee4e490f Moved SMP atomic operations from TBB to General.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !357
2016-03-14 16:56:23 -04:00
Robert Maynard
0642478668 Correct implicit function test failures when vectorization is enabled.
When vectorization is enabled we start using 'fast' math, and therefore instead
of getting perfect 0.0 values we get values that are extremely close to zero.
2016-03-14 15:56:27 -04:00
Robert Maynard
da09f73951 Merge topic '64bit_float_default_build_corrections'
f01fd68b DataSetBuilderUniform now builds when the float default is double.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !355
2016-03-14 13:05:10 -04:00
Robert Maynard
ee4e490f1d Moved SMP atomic operations from TBB to General.
Even when running with the serial backend, the compiler might enable SIMD
vectorization when optimizations are turned on. When this occurs, we need
to use properly atomic Add's and CAE's.
2016-03-14 10:40:42 -04:00
Robert Maynard
f01fd68b7e DataSetBuilderUniform now builds when the float default is double. 2016-03-14 10:36:13 -04:00
Robert Maynard
e4237c3a3b Fix warnings found by the dashboard machines. 2016-03-14 08:39:17 -04:00
Robert Maynard
179b48e094 Reduce compile time for MarchingCubes by passing less info by Invoke.
When the number of parameters to a worklet hits 6+ like the EdgeGenerate
worklet did, the compile times when some of those parameters are dynamic array
handle is very bad.

For example when building the MarchingCubes filter for VTK integration the
EdgeGenerate worklet would take 800+ seconds to compile, but when we switch
it to have fewer arguments the compile time comes down to ~250sec.
2016-03-14 08:39:17 -04:00
Robert Maynard
8e4a47ef57 Update IsosurfaceUniformGrid to use the marching cubes filter.
This way we have an example of how to use the filter code.
2016-03-14 08:39:17 -04:00
Robert Maynard
d370155e74 MarchingCubes filter now generates coordinates when point merging is enabled. 2016-03-14 08:39:17 -04:00
Robert Maynard
c00fb53b54 Marching Cubes now generates vertices when merge duplicates is enabled. 2016-03-14 08:39:17 -04:00
Robert Maynard
f699c98602 Renamed the ``Convert` method to `ApplyPolicy``
The original name was a really bad name, so thank to Ken for suggesting
a better name.
2016-03-14 08:39:17 -04:00
Robert Maynard
8e72ec8ea4 Switch filter::threshold over to have a lower and upper bounds. 2016-03-14 08:39:17 -04:00
Robert Maynard
bcee827097 First draft of vtkm::filter design. 2016-03-14 08:39:17 -04:00
Robert Maynard
531dececfd Multiple changes to VertexClustering to make it more suitable for filter.
The original implementation wasn't flexible enough to handle the requirements
that filter requires ( mainly policy support ).
2016-03-14 08:39:17 -04:00
Robert Maynard
aaa10f0c50 Remove the ability to get bounds from Make3DExplicitDataSetCowNose.
This isn't needed now that vtkm::cont::Field can compute bounds.
2016-03-14 08:39:17 -04:00
Robert Maynard
4b7054f4da Changes to computing bounds to allow custom types and storage. 2016-03-14 08:39:17 -04:00
Robert Maynard
52d8a4d9b7 Fix vtkm::cont::Field default constructor to have valid values. 2016-03-14 08:39:17 -04:00
Robert Maynard
5b6676d21f Merge topic 'feature/atomics'
5ddade7a Adding some basic documentation on atomics.
e5c4aa3f Fixing cuda index error
00a7f6c1 Correcting function call
249cce35 Adding type restrictions to serial atomics
43131ee0 Adding comments about CAS
40b6db7e Inserted missing ,
3b46706e Adding compare and swap and removing unsigned atomics
12632de3 Casting Uint64 to long long
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !336
2016-03-11 13:49:38 -05:00
Robert Maynard
b8f28d6dee Merge topic 'properly_specify_fermi_when_cuda_autodetect_fails'
19dc5672 Correct CUDA fallback to "fermi" when trying to do auto detection.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !353
2016-03-11 10:04:51 -05:00
Robert Maynard
ba202cc1c8 Merge topic 'suppress_thrust_warnings_on_windows'
55280637 Correct the VTKM_THIRDPARTY_PRE_INCLUDE/POST_INCLUDE for MSVC.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !354
2016-03-11 10:04:16 -05:00