Commit Graph

271 Commits

Author SHA1 Message Date
Chun-Ming Chen
4d9c25deff Merge remote-tracking branch 'robert/reduce_by_key_custom_binary_function' into ReduceByKey_fix 2015-06-15 10:55:44 -04:00
Chun-Ming Chen
dcc12e733f Fix ReduceByKey general algorithm to work with parallel ScanInclusive. Use bit representation for states. 2015-06-13 02:46:36 -04:00
Robert Maynard
53d7053d7a Fix a bug where DeviceAdapterGeneral::ReduceByKey ignored custom binary functor 2015-06-12 16:11:28 -04:00
Robert Maynard
50ffcec3bb Merge branch 'tbb_SortByKey_ZipArray_fix' into 'master'
TBB sort by key zip array fix

The original codes do not accept when the zip handle array contains two different storage types

See merge request !25
2015-06-12 15:43:09 -04:00
Chun-Ming Chen
360279c29a A more general Copy that allows copying into a diff. array type. Testing codes are added. 2015-06-12 12:42:43 -04:00
Robert Maynard
791e0c477c Add a test to use Reduce and ArrayHandleZip together. 2015-06-12 11:56:46 -04:00
Robert Maynard
2a2159b1e1 Generalize the support for zip handles inside the cuda backend.
Instead of having a single specialization for sort and zip handles,
we know handle any fancy handles being passed to the cuda device adapter.
This was done by reworking how we represent fancy iterators inside thrust,
and instead of using a transform iterator + counting iterator we just use
a iterator_facade.
2015-06-12 11:56:46 -04:00
Robert Maynard
c41f232edc Allow Serial Device to reduce Zip Array Handles. 2015-06-12 10:08:10 -04:00
Robert Maynard
cb4e509be7 Correct some missing VTKM_CONT_EXPORT macros. 2015-06-12 10:08:10 -04:00
Chun-Ming Chen
84192883fa Merge branch 'tbb_SortByKey_ZipArray_fix' of https://gitlab.kitware.com/chunmingchen/vtk-m into tbb_SortByKey_ZipArray_fix 2015-06-11 11:51:43 -04:00
Chun-Ming Chen
ebf814cb81 This merge adds ReduceByKey with different keys
Merge branch 'test_tbb_SortByKey' into tbb_SortByKey_ZipArray_fix

Conflicts:
	vtkm/cont/testing/TestingDeviceAdapter.h
2015-06-11 11:48:13 -04:00
Chun-Ming Chen
d42edb51ab Include ArrayHandleZip in related testing codes 2015-06-11 11:29:51 -04:00
Chun-Ming Chen
267505ff0f Remove unncecessary comments 2015-06-11 11:29:51 -04:00
Chun-Ming Chen
c7cf1a27f2 add testing ReduceByKey with zipped array with heterogeneous value types 2015-06-11 11:29:51 -04:00
Chun-Ming Chen
1088e855c3 Add ReduceByKey support for zip array input. A testing codelet to demo the problem. 2015-06-11 11:29:51 -04:00
Chun-Ming Chen
c60b9688fc TBB may fail in the new test case 2015-06-10 16:37:52 -04:00
Robert Maynard
d26cfcf5cc Merge branch 'sort_inplace_zip_arrays' into 'master'
Allow in-place sorting of ArrayHandleZip

See merge request !29
2015-06-10 15:51:40 -04:00
Robert Maynard
c052400ffb CUDA now converts ArrayHandleZip to ::thrust::zip iterator.
This is required so that we can use ArrayHandleZip with Sort/Reduce and
custom comparison operators. ArrayZip and PortalValue don't combine
well together, when used with DeviceAlgorithm that has a custom operator.
The custom operator is actually passed the PortalValue instead of
the real values, and by that point we can't fix anything since we
don't know what the original operator is.
2015-06-10 14:15:40 -04:00
Robert Maynard
cbf3faf135 Simplify the SortGreater and SortLesser Implementation. 2015-06-10 14:15:40 -04:00
Robert Maynard
549a7dd7c7 Adding support to cuda backend to write to a ZipHandle. 2015-06-10 14:15:40 -04:00
Robert Maynard
493d201029 Add tests to verify that you can properly sort ArrayHandleZip.
We have increased the ARRAY_SIZE for the TestingDeviceAdapter to work
around issues with backends not using parallel algorithms for arrays of length
500 or less.
2015-06-10 14:15:40 -04:00
Robert Maynard
543a3a0453 Allow TBB Device Adapter to sort array handle zip. 2015-06-10 14:15:39 -04:00
Robert Maynard
3a3a577e1b Allow Serial Device Adapter to sort array handle zip. 2015-06-10 14:15:39 -04:00
Robert Maynard
5b96d435c7 Give IteratorFromArrayPortalValue class a less operator.
This is required so that they can be sorted, which happens when sorting
an ArrayHandleZip.
2015-06-10 14:15:39 -04:00
Robert Maynard
040d7e761e Explicitly invoke all thrust algorithms using the cuda policy.
This is required if we ever want to use thrust from another device adapter.
2015-06-10 09:41:06 -04:00
Sujin Philip
8ed32edd3f Merge branch 'use_empty_fields_for_output' into 'master'
Allow creation of vtkm::cont::Field without any data.

This is needed to allow Field's to be used as output.

See merge request !27
2015-06-08 17:37:53 -04:00
Robert Maynard
44deb3c870 Allow creation of vtkm::cont::Field without any data.
This is needed to allow Field's to be used as output.
2015-06-08 16:14:49 -04:00
Chun-Ming Chen
274ed989c4 change KeyCompare() in DeviceAdapterAlgorithmGeneral from private to protected, to be used in DeviceAdapterAlgorithmSerial 2015-06-08 14:19:37 -04:00
Chun-Ming Chen
8a3cc844e8 Include ArrayHandleZip in related testing codes 2015-06-08 13:31:31 -04:00
Chun-Ming Chen
a936cb93c5 Add comments 2015-06-08 12:40:44 -04:00
Chun-Ming Chen
5d4a212c95 make internal algorithm primatives private 2015-06-08 12:23:03 -04:00
Chun-Ming Chen
7dd853aec1 to pass testing & pruning 2015-06-08 12:23:03 -04:00
Chun-Ming Chen
6ec7f4469d indexed sortByKey in serial 2015-06-08 12:23:03 -04:00
Chun-Ming Chen
bf44b9a840 Remove unncecessary comments 2015-06-08 12:13:19 -04:00
Chun-Ming Chen
5d87c1fa79 add testing ReduceByKey with zipped array with heterogeneous value types 2015-06-08 11:57:29 -04:00
Chun-Ming Chen
1533d7c63a Add ReduceByKey support for zip array input. A testing codelet to demo the problem. 2015-06-08 11:57:29 -04:00
Robert Maynard
252c8563ed Merge branch 'allow_creating_output_arrayhandle_zip' 2015-06-08 10:46:57 -04:00
Robert Maynard
0bd7d5e0f5 Merge branch 'schedule_id3_serial' 2015-06-08 10:38:20 -04:00
Robert Maynard
95cf2edc37 Allow the creation of array handle zips.
We now allow the user to use array handle zips as output with knowing
the size of the output.
2015-06-08 10:17:46 -04:00
Robert Maynard
2d6bdd1496 Correct a bug in the TBB Schedule 3D implementation. 2015-06-08 09:49:08 -04:00
Robert Maynard
34c005104f Simplify the implementation of Schedule 3D for the serial background. 2015-06-08 09:48:46 -04:00
Robert Maynard
1d595b868c Make Schedule 3D use a larger dim size to throughly test implementations.
A smaller dim size can hide problems with algorithms that don't sum properly,
or do to much math per iteration.
2015-06-08 09:47:17 -04:00
Robert Maynard
8a8fc9ea73 Remove unused code from TestingDeviceAdapter. 2015-06-08 08:45:38 -04:00
Robert Maynard
18dbdd5d52 Add in a better version of 3d scheduling to the serial backend.
This is the first step to having better 3d scheduling for the serial backend.
While this doesn't improve the performance, it lays the foundation for
allowing I,J,K indexing when iterating Cells of a uniform grid.
2015-06-08 08:32:07 -04:00
Robert Maynard
98b13aae2f Merge branch 'allow_modification_of_user_storage' 2015-06-08 08:26:33 -04:00
Sujin Philip
4c51138f60 Add new lines at end of files. 2015-06-05 13:14:28 -04:00
Robert Maynard
b43fb01ff0 Redesign StorageBasic to allow modification of user provided memory.
The driving desire for this change was to make vtk-m ArrayHandle behave more
like the standard vector. The canonical example of what we want to support is:

```
std::vector<vtkm::Id> values;
values.resize(100);
vtkm::cont::ArrayHandle<vtkm::Id> array = vtkm::cont::make_ArrayHandle(values);
vtkm::cont::DeviceAdapterAlgorithm<DeviceAdapter>::Sort(array);
```

And with-out the ability to modify user provided memory, this was impossible.
2015-06-05 10:32:48 -04:00
Robert Maynard
342a9989a5 Correct double to float conversion warnings. 2015-06-04 09:06:47 -04:00
Robert Maynard
0a433303e6 Correct headers to have the new copyright. 2015-06-03 15:06:43 -04:00
Robert Maynard
6af4961e40 Remove unneeded test file. 2015-06-03 15:06:32 -04:00