Commit Graph

791 Commits

Author SHA1 Message Date
Lorenzo Pistone
9211260bcc fix a few instances where the device type is not used as a bit mask 2015-09-11 12:21:11 +02:00
Kyle Lutz
239f4a247c Merge pull request #498 from boostorg/invoke
Add invoke() utility function
2015-09-01 21:49:54 -07:00
Kyle Lutz
5ac31a7f5f Merge pull request #496 from haahh/pr_enqueue_methods_return_events
Return events from all command_queue::enqueue_* methods
2015-09-01 21:49:23 -07:00
Jakub Szuppe
c882466dbd enqueue_* methods in command_queue class now return event object
All enqueue_* methods in command_queue class (except for
enqueue_map_buffer() and enqueue_barrier()) now return event object.
2015-08-20 12:01:55 +02:00
Kyle Lutz
cf5e40ee26 Merge pull request #497 from haahh/pr_find_extrema_supports_custom_comparision
Support for custom comparison function in find_extrema()
2015-08-19 20:24:04 -07:00
Kyle Lutz
ef109b75d5 Add invoke() utility function
This adds an invoke() function which calls an OpenCL function on a
device with the given arguments.
2015-08-19 08:18:15 -07:00
Jakub Szuppe
e6b20e6af7 Rename find_extrema_reduce() to find_extrema_with_reduce() 2015-08-19 13:42:22 +02:00
Jakub Szuppe
a50dae747d Support for custom comparision function in find_extrema() and min/max_element() 2015-08-19 13:42:22 +02:00
Kyle Lutz
057b220d18 Merge pull request #495 from haahh/pr_improve_find_if
Checking multiple values per thread in find_if()
2015-08-18 08:27:20 -07:00
Jakub Szuppe
75a42646a1 Checking multiple values per thread in find_if_with_atomics() 2015-08-15 15:39:06 +02:00
Kyle Lutz
fd43795770 Merge pull request #491 from haahh/pr_always_serial_reduce_for_cpus
Using serial_reduce() when reducing on CPU device
2015-08-12 08:30:14 -07:00
Jakub Szuppe
d98e6dfee6 Using serial_reduce() when reducing on CPU device 2015-08-08 18:00:49 +02:00
Jakub Szuppe
de0c8ba177 CPU-targeted merge sort adapted for sorting by key 2015-08-03 23:37:48 +02:00
Kyle Lutz
cadff8e049 Merge pull request #489 from haahh/pr_serial_merge
Using serial merge in merge() for small inputs
2015-08-01 13:44:52 -07:00
Jakub Szuppe
e3324f887d Using serial merge in merge algorithm for small inputs 2015-08-01 19:41:16 +02:00
Kyle Lutz
f278c66c14 Merge pull request #486 from haahh/pr_sort_cpu
CPU-targeted merge sort
2015-08-01 09:10:13 -07:00
Jakub Szuppe
b6c2e71ba3 Using merge with merge path algorithm in merge sort
Merge with merge path is used in merge part of merge sort
algorithm as it's seems to be more efficient than block merge
when there are a few big sorted blocks left to be merged.
2015-07-30 20:56:40 +02:00
Jakub Szuppe
b5bef712cd Merge sort for CPU devices 2015-07-30 20:55:49 +02:00
Kyle Lutz
15a778d84a Merge pull request #480 from haahh/pr_boost_inspection
Fixing problems reported in Boost Inspection Report
2015-07-18 11:01:57 -07:00
Jakub Szuppe
7a8d078926 Update Boost macros, macros style unification 2015-07-18 16:12:24 +02:00
Jakub Szuppe
7e12f63a81 Add missing Boost license info and copyrights 2015-07-18 14:01:29 +02:00
Jakub Szuppe
350f2c93a8 Fix violations of Boost min/max guidelines 2015-07-16 21:18:08 +02:00
Jakub Szuppe
c5409541ac Parallel reduce by key algorithm implementation 2015-07-15 11:20:49 +02:00
Jakub Szuppe
706af4fce8 Reduce by key algorithm (serial implementation) 2015-07-15 11:06:23 +02:00
Kyle Lutz
377e509acd Merge pull request #472 from msuchard/master
Apple NVIDIA vendor name does not include Corporation
2015-06-24 21:54:23 -07:00
Marc Suchard
7009451dbf Apple NVIDIA vendor does not include Corporation 2015-06-24 14:53:59 -07:00
Kyle Lutz
2298aa5ff1 Merge pull request #468 from haahh/custom_funcs_for_scan
Support for custom functions in inclusive and exclusive scan
2015-06-24 08:30:06 -07:00
Jakub Szuppe
7bea0b13a1 Support for a custom function in exclusive and inclusive scan 2015-06-24 08:39:45 +02:00
Kyle Lutz
20ff5cbfb7 Fix compilation error in find_extrema_reduce() 2015-06-23 22:03:19 -07:00
Jakub Szuppe
feeab7a277 Add single-argument constructor for vector types 2015-06-23 10:14:50 +02:00
Kyle Lutz
1c68d8a73b Merge pull request #443 from bkchr/runtime_version_checking
Runtime version checking
2015-06-22 19:59:53 -07:00
Bastian Köcher
60f4b31bdd Add runtime version checking in the command_queue functions and fixed bug with context::get_device().
This adds runtime version checking in the command_queue functions which fixes issues if you compile
with OpenCL2.x and run your code on OpenCL1.x devices.
Fixed bug with context::get_device() if the context contains more than one device.
2015-06-04 11:59:54 +02:00
Junaid Muzammil
a9c373f92c Merge remote-tracking branch 'newrepo/develop' into develop 2015-06-02 19:18:00 +05:00
Jakub Szuppe
4c20b3fb52 Add find_extrema based on parallel reduction
This adds find_extrema_reduce function based on parallel reduction.
Now find_extrema uses find_extrema_with_atomics only if local memory size
requirements for running find_extrema_reduce are not met.
2015-05-21 13:27:06 +02:00
Kyle Lutz
fda67a22d0 Update GitHub links 2015-05-17 20:32:09 -07:00
Kyle Lutz
ca0bf77551 Fix default values in uniform_int_distribution constructor
This fixes the default values for the uniform_int_distribution
constructor to match std::uniform_int_distribution.
2015-05-17 11:37:54 -06:00
Kyle Lutz
4c00484e04 Merge pull request #454 from haahh/pr_valarray_operators
Missing valarray operators
2015-05-15 10:41:39 -06:00
Jakub Szuppe
c2c8eb6e54 Fix valarray support for vector types 2015-05-15 18:12:12 +02:00
Jakub Szuppe
332a412d1a Valarray operators work only with fundamental OpenCL types
Valarray arithmetic, logical and comparison operators work only
when valarray type is built-in OpenCL scalar or vector type.
This also fixes empty macro argument error when compiled with
pedantic and Werror options, and ambiguous 'bind' function call
error.
2015-05-15 18:12:12 +02:00
Jakub Szuppe
28f08dda44 Add valarray operators
This adds missing operators to valarray. Note that in OpenCL it's impossible
to create memory buffer with bool type and because of that valarray<char> is used
as a return type for comparison and logical operators instead of valarray<bool>.
Implemented operators work only for default context (queue) and are asynchronous.
2015-05-15 18:12:07 +02:00
Jakub Szuppe
29dc53b110 Add missing bitwise shift operators 2015-05-15 18:05:44 +02:00
Kyle Lutz
79aa8f9086 Merge pull request #452 from haahh/strided_iterator
Add strided_iterator class (skip_iterator) #121
2015-04-20 19:58:31 -07:00
Jakub Szuppe
1ba5c5d950 Fix make_strided_iterator_end() description
Fix make_strided_iterator_end() description and some comments.
2015-04-18 10:55:32 +02:00
Jakub Szuppe
6c22df7077 Better descriptions and minor refactoring 2015-04-12 22:45:39 +02:00
Jakub Szuppe
7ce179d414 Add make_strided_iterator_end function 2015-04-12 16:05:22 +02:00
Jakub Szuppe
c80d42aa29 Strided iterator
Iterator adaptor which skips over multiple elements each time it is incremented.
2015-04-12 15:56:10 +02:00
Denis Demidov
d4651113e7 Get rid of (potentially huge) temporary strings in offline cache
See #440, #441
2015-04-08 15:20:02 +03:00
Anees Haider
b979ff527d Added Threefry RNG to performance benchmark 2015-04-06 09:51:53 +05:00
Anees Haider
b565232b8e Merge remote-tracking branch 'compute/develop' 2015-04-06 09:33:52 +05:00
Junaid Muzammil
31342d7e53 Threefry generate signature modification 2015-04-05 21:27:31 +05:00
Denis Demidov
56ca5f2331 Add opencl vector types to the list of fundamental types
refs #449
2015-04-05 15:27:34 +03:00
Kyle Lutz
6a6a2aaf64 Merge pull request #448 from ddemidov/develop
kernel::get_work_group_info() should be const
2015-04-04 15:55:19 -07:00
Denis Demidov
a754fcb720 kernel::get_work_group_info() should be const 2015-04-04 22:02:42 +03:00
Muhammad Junaid Muzammil
61e16c8963 Overloaded Method for default Key Values 2015-04-02 00:26:06 +05:00
Kyle Lutz
f9136ed842 Add transform_if() algorithm 2015-03-31 19:45:58 -07:00
Junaid Muzammil
1c41612c9a Unit Test Fixed and Comments Added 2015-03-29 00:57:56 +05:00
Junaid Muzammil
1c75d5752d Necessary Changes Made to Threefry Engine as recommended 2015-03-28 18:06:01 +05:00
Junaid Muzammil
44c54d4f7a Refactored Threefry RNG 2015-03-22 18:04:01 +05:00
Muhammad Junaid Muzammil
37e060d0ca Threefry Random 123 Support Added 2015-03-22 16:53:47 +05:00
Kyle Lutz
34e042a298 Reduce Boost header includes 2015-03-21 11:38:30 -07:00
Kyle Lutz
78db09bf10 Use gcc-4.8 on Travis-CI 2015-03-16 19:55:11 -07:00
Kyle Lutz
4175a85171 Add parameter_cache class
This adds a parameter_cache class which can be used to store
execution parameters for an algorithm. Also updates some of
the benchmark programs to find and store optimal parameters.
2015-03-15 18:15:57 -07:00
Jakub Szuppe
f95b1ee682 Separate kernel for reverse_copy()
Separate kernel for reverse_copy() algorithm improves its performance,
new tests for reverse_copy_int
2015-03-10 22:25:38 +01:00
Kyle Lutz
d4adfc5feb Add support for OpenCL-OpenCL sharing on Mac OS X 2015-02-26 14:57:26 -07:00
Kyle Lutz
a71a4e9853 Add begin() and end() methods to extents<N> 2015-02-25 11:06:45 -07:00
Shehzan Mohammed
4961a6177f BUGFIX enable double for key type in radix sort by key 2015-02-23 12:15:40 -05:00
Kyle Lutz
de76e66dd1 Merge pull request #426 from jmr1/msvc2013
MSVC 2013 build fixes
2015-02-22 19:02:45 -07:00
jmr1
9c3d2e0a87 MSVC 2013 workaround for passing one parameter to a variadic template 2015-02-22 17:33:35 +01:00
Kyle Lutz
ca0bc4b7d3 Refactor image classes 2015-02-08 16:26:34 -08:00
Kyle Lutz
6e38dafbd5 Merge pull request #423 from kylelutz/buffer-clone-flags
Preserve memory flags in buffer::clone()
2015-02-08 15:06:57 -08:00
Kyle Lutz
a34aaf0456 Merge pull request #422 from kylelutz/no-device-found-exception
Add no_device_found exception
2015-02-08 15:06:43 -08:00
Kyle Lutz
8b2788f026 Add no_device_found exception 2015-02-07 12:47:11 -08:00
Kyle Lutz
3c56ea4cbe Preserve memory flags in buffer::clone() 2015-02-07 12:27:24 -08:00
Kyle Lutz
155ec4b8b9 Disable default context error handler 2015-02-07 10:56:34 -08:00
Bastian Köcher
426fbbb8c4 - Added missing header 2015-01-21 20:03:54 +01:00
Bastian Köcher
1e711e0330 - Rebased with develop branch
- Moved include into the test

Conflicts:
	test/test_buffer.cpp
2015-01-20 10:19:37 +01:00
Kyle Lutz
f4bf942a31 Merge pull request #412 from bastiankoe/createsubbuffer
CreateSubbuffer support
2015-01-16 18:40:01 -08:00
Bastian Köcher
09d3c44cd7 - Added templated register_destructor_callback function and a test for this new functionality 2015-01-16 16:38:25 +01:00
Bastian Köcher
7eba538c55 Merge branch 'develop' into createsubbuffer 2015-01-16 15:59:24 +01:00
Bastian Köcher
78ce892705 - Added testcase for subbuffer creation
- Added documentation and asserts for buffer.create_subbuffer function
2015-01-16 15:57:28 +01:00
Bastian Köcher
1e2da6b9c8 - Added function to create a subbuffer 2015-01-15 15:10:50 +01:00
Kyle Lutz
79aa6758f2 Add wait_guard class 2015-01-07 20:19:05 -08:00
Kyle Lutz
5b5eae8270 Change assert() to static_assert() in copy_async()
This changes the assert() for contiguous host iterators in
the copy_async() algorithm to a static_assert() so that this
currently unsupported case can be caught at compile-time.
2014-12-30 20:59:04 -08:00
Kyle Lutz
c74c2abc4f Add four-iterator versions of equal() and mismatch() 2014-12-30 13:44:24 -08:00
Kyle Lutz
d2ea30895d Merge pull request #395 from roshanr95/includes
Make documentation of includes algorithm more clearer
2014-12-30 13:40:36 -08:00
Kyle Lutz
a72ee2f289 Merge pull request #394 from roshanr95/bernoulli-distribution
Change default parameter to 0.5
2014-12-30 13:39:13 -08:00
Roshan
35b6ff62ee Make documentation of includes algorithm more clearer 2014-12-31 02:00:57 +05:30
Roshan
2a24b282f5 Change default parameter to 0.5 2014-12-31 01:55:55 +05:30
Kyle Lutz
cfdb10c808 Move is_device_iterator to the public API 2014-12-30 10:06:47 -08:00
Kyle Lutz
c31195ec7d Add local_buffer class 2014-12-24 14:06:18 -08:00
Kyle Lutz
417cb03670 Fixes for Mac OS X 2014-12-24 09:25:55 -08:00
Kyle Lutz
e3bbce456b Merge pull request #352 from kylelutz/rename-types-builtin
Rename types/builtin.hpp to types/fundamental.hpp
2014-12-21 09:15:29 -08:00
Kyle Lutz
c97c83a562 Rename types/builtin.hpp to types/fundamental.hpp 2014-12-20 13:39:50 -08:00
Kyle Lutz
73b246603b Add for_each_n() algorithm 2014-12-20 13:30:36 -08:00
Kyle Lutz
885a2ad135 Improve documentation 2014-12-20 10:39:38 -08:00
Pavan Yalamanchili
10890fd7d1 BUG FIX: sort_by_key now works with larger vector sizes.
- sort_by_key now calls radix_sort for size >= 32 even with Compare
2014-12-15 14:57:49 -05:00
Kyle Lutz
57eec36d20 Release v0.4 2014-12-14 17:03:36 -08:00
Kyle Lutz
c4d49cef20 Merge pull request #341 from kylelutz/device-platform
Add device::platform() method
2014-12-14 10:58:38 -08:00
Kyle Lutz
2bab2c5ee7 Add device::platform() method 2014-12-13 11:25:11 -08:00
Kyle Lutz
a4a6614895 Add program_cache to the public API 2014-12-13 10:38:56 -08:00
Kyle Lutz
1a591e277b Add result_of<F(Args...)> meta-function 2014-12-10 22:58:54 -08:00
Kyle Lutz
8883a85fec Merge pull request #330 from Mageswaran1989/histogram_example
added histogram example based on opencv
2014-12-10 20:12:11 -08:00
Mageswaran.D
010753db26 added histogram example based on opencv 2014-12-10 22:43:23 +05:30
Kyle Lutz
848d95601e Merge pull request #335 from kylelutz/flat-map-custom-kernel
Add test for flat_map with custom kernel
2014-12-07 13:50:34 -08:00
Kyle Lutz
d62c214ddd Add test for flat_map with custom kernel 2014-12-07 13:38:26 -08:00
Kyle Lutz
425a9c006f Add utility directory
This adds a new utility directory and moves some of the utility
functions and classes (e.g. dim(), extents, wait_list) there.
2014-12-06 12:51:25 -08:00
Kyle Lutz
17e0e5e686 Add cl_gl_ext.hpp forwarding header 2014-12-06 12:15:22 -08:00
Kyle Lutz
1c3703beea Merge pull request #329 from kylelutz/fully-qualify-bind
Fully qualify call to bind() in nth_element()
2014-12-03 23:26:24 -08:00
Kyle Lutz
5974366313 Merge pull request #324 from kylelutz/refactor-dispatch-sort
Refactor dispatch_sort() function
2014-12-03 23:26:16 -08:00
Kyle Lutz
5696537619 Fully qualify call to bind() in nth_element() 2014-12-03 22:24:23 -08:00
Kyle Lutz
4185694366 Add extents<N> class
This adds an extents<N> class which stores an array of n-dimensional
extent values. This can be used to represent an ND-range for launching
an OpenCL kernel or for storing the size/shape of a 2D/3D image.

Also adds a variadic dim() function which provides a concise syntax
for creating extents<N> objects.
2014-12-02 22:42:24 -08:00
Kyle Lutz
faddbf2368 Refactor dispatch_sort() function 2014-12-02 21:52:06 -08:00
Roshan
12bbd995a3 Add support for comparator in merge 2014-12-02 12:59:36 +05:30
Roshan
b848b44c40 Fix bug in balanced path
Fixed a bug with precedence when the comparison function is not
enclosed in parentheses
2014-12-02 12:58:55 +05:30
Kyle Lutz
16fdb15395 Add identity<T>() function 2014-11-29 10:19:53 -08:00
Kyle Lutz
85e03f7e69 Merge pull request #315 from kylelutz/copy-to-vector-bool
Fix issue with copy() and std::vector<bool>
2014-11-28 12:34:46 -08:00
Kyle Lutz
5e7fb41e73 Merge pull request #312 from Mageswaran1989/string_find_string
oveloaded find() for string and char pointer
2014-11-26 22:23:02 -08:00
Mageswaran.D
9d813a2309 oveloaded find() for string and char pointer 2014-11-27 11:31:43 +05:30
Kyle Lutz
a6bdf21b31 Fix issue with copy() and std::vector<bool> 2014-11-26 08:46:39 -08:00
Kyle Lutz
8ae2b4ec23 Fix compilation error in dispatch_copy() with Boost 1.57 2014-11-25 23:16:10 -08:00
robotrovsky
bd845fea46 Fixed OpenCL 2.0 Header compatibility 2014-11-20 18:43:51 +01:00
Kyle Lutz
16834b9fb4 Improve documentation 2014-11-19 23:29:28 -08:00
Kyle Lutz
f53a2b3a8d Add read() and write() methods to buffer_iterator 2014-11-19 22:08:45 -08:00
Mageswaran.D
af7e38d2ce added lexicographical_compare algorithm & test cases 2014-11-19 23:49:10 +05:30
Kyle Lutz
53a869a7a1 Merge pull request #305 from kylelutz/stable-sort-radix-sort
Use radix_sort() for stable_sort() when possible
2014-11-10 21:24:14 -08:00
Kyle Lutz
88d19723e3 Use radix_sort() for stable_sort() when possible 2014-11-09 11:06:47 -08:00
Kyle Lutz
5c1aac441c Fix bug when calling radix_sort() with partial ranges 2014-11-09 10:53:23 -08:00
Mageswaran.D
4b50a5c1dc added support for output stream(cout<<) for compute::string : updated 2014-11-09 03:07:51 +05:30
Kyle Lutz
0bdcf3601a Merge pull request #302 from 9prady9/windows_macro_errors
min, max macro conflicts on windows platform
2014-11-07 22:35:34 -08:00
Pradeep Garigipati
505d1ac0ec Bugfix to avoid conflicts with macro definitions on windows platform 2014-11-07 15:31:06 -05:00
Kyle Lutz
52eab193e7 Merge pull request #301 from Mageswaran1989/swap_api_string_class
added swap api for string class
2014-11-07 12:03:08 -08:00
Mageswaran.D
119e201c94 added swap api for string class 2014-11-07 23:51:00 +05:30
Kyle Lutz
c5cd43bf0b Merge pull request #299 from shehzan10/unused-warning-fixes
Removing unused variables that cause warnings
2014-11-05 20:03:18 -08:00
Shehzan Mohammed
ee4e2a03f2 Removing unused variables that cause warnings 2014-11-05 17:54:46 -05:00
Kyle Lutz
e8cccb517c Use ulong_ instead of size_type for dynamic_bitset::count()
This fixes the following compilation error on Mac OS X:

"error: implicit instantiation of undefined template
'boost::compute::detail::type_name_trait<unsigned long>'"
2014-11-05 08:13:08 -08:00
Kyle Lutz
a11fda7aa3 Merge pull request #295 from Mageswaran1989/String_find-issue288
String find issue288
2014-11-05 07:56:58 -08:00
Mageswaran.D
1dca7c7734 updated with lit<char> instead int 2014-11-04 13:21:40 +05:30
Mageswaran.D
bdc6d79e4d String::find() signed char fix with test case 2014-11-04 13:06:11 +05:30
Kyle Lutz
b45da6f052 Fix issue when calling fill() with empty range 2014-11-01 10:47:00 -07:00
Kyle Lutz
934c04fbb2 Remove usage of deprecated clEnqueueTask()
This removes the usage of the deprecated clEnqueueTask()
function when compiled with OpenCL 2.0 or later.
2014-10-29 23:04:47 -07:00
Kyle Lutz
34baff744d Add documentation for BOOST_COMPUTE_DEFAULT_DEVICE_TYPE 2014-10-24 06:05:26 -07:00
cwkx
1c5b6af7fc Update context.hpp
Fix compilation on windows
2014-10-23 16:01:23 +01:00
Kyle Lutz
e25f167088 Merge pull request #279 from pentschev/adjacent_difference_temp_vector
Added temporary vector to adjacent_difference().
2014-10-22 23:13:06 -04:00
Peter Andreas Entschev
c117648c4c Added temporary vector to adjacent_difference().
The intermediary temporary vector fixes an issue where first element of a work
group can be corrupted when output vector is the same as the input.
2014-10-16 13:56:19 -03:00
Roshan
635f365058 Rename tile_sets kernel, add support for comparator
Rename the tile_sets kernel to balanced_path for consistency with
merge_path. Also add support for giving a custom comparator.
2014-10-16 12:49:50 +05:30
Kyle Lutz
ad33665b89 Add type_definition<T>() function 2014-09-30 22:24:31 -07:00
Kyle Lutz
e7578b697f Merge pull request #272 from kylelutz/improve-test-coverage
Improve test coverage
2014-09-29 21:26:21 -07:00
Kyle Lutz
eef75bf1fa Merge pull request #269 from kylelutz/thread-safe
Use thread-local storage for global program cache
2014-09-29 20:41:54 -07:00
Kyle Lutz
f300370366 Add test for platform class 2014-09-29 20:30:39 -07:00
Kyle Lutz
f3158959ed Fix return value for dispatch_fill_async() 2014-09-29 20:01:17 -07:00
Kyle Lutz
44895606ac Merge pull request #268 from kylelutz/search-use-find
Change search() and search_n() to use find()
2014-09-28 14:38:35 -07:00
Kyle Lutz
05afa5f707 Use thread-local storage for global program cache 2014-09-28 12:37:48 -07:00
Kyle Lutz
76a416c5a9 Change search() and search_n() to use find() 2014-09-28 10:16:14 -07:00
Kyle Lutz
10d79c6689 Fix bug when using bind() with adapted structs 2014-09-27 11:42:29 -07:00
Kyle Lutz
0b0cbd399e Merge pull request #265 from roshanr95/uniform_int_distribution
Uniform int distribution
2014-09-21 11:06:08 -07:00
Kyle Lutz
7e05c0f9a5 Merge pull request #262 from kylelutz/opencl-2.0
Add OpenCL 2.0 support
2014-09-21 11:05:15 -07:00
roshanr
ba09a9f3d0 Fix issue #159 2014-09-20 15:35:35 +05:30
Kyle Lutz
4b10ea608b Merge pull request #264 from kylelutz/refactor-get-info
Refactor get_info() functions
2014-09-14 21:13:36 -07:00
Kyle Lutz
cdcd4c5a32 Refactor get_info() functions 2014-09-13 18:42:43 -07:00
Kyle Lutz
7912b344d1 Add variadic bind() implementation 2014-09-13 13:18:16 -07:00
Kyle Lutz
ec254c04bb Add OpenCL 2.0 support 2014-09-13 12:29:03 -07:00
Kyle Lutz
60f0709bc1 Merge pull request #259 from kylelutz/dynamic-bitset
Add dynamic_bitset class
2014-09-07 11:37:50 -07:00
Kyle Lutz
8310e8e729 Add dynamic_bitset class 2014-09-07 11:21:46 -07:00
Kyle Lutz
49fc80d204 Fix bug when using popcount() with ulong 2014-09-07 11:00:46 -07:00
Kyle Lutz
a4c11ddb5d Merge pull request #243 from kylelutz/address-space-enum
Address space enum
2014-09-06 12:04:50 -07:00
Kyle Lutz
d44af78be5 Use address_space enum for meta_kernel::add_arg() 2014-09-06 11:43:31 -07:00
Kyle Lutz
c5546c92a1 Add address_space enum to memory_object 2014-09-06 11:37:46 -07:00
Kyle Lutz
94d182d47d Rearrange allocator headers
This moves the allocator headers from 'container' to a new
top-level 'allocator' directory.

Also renames allocator<T> to buffer_allocator<T>.
2014-09-06 09:51:46 -07:00
Kyle Lutz
891aff215d Fix bug when calling reduce() with empty ranges 2014-09-04 20:42:37 -07:00
Kyle Lutz
0151195871 Remove usage of 'uint' in linear_congruential_engine 2014-08-25 23:35:17 -07:00
Kyle Lutz
744359715f Implement is_sorted() with adjacent_find() 2014-08-21 22:43:46 -07:00
Kyle Lutz
c69ea170fb Remove adjacent_transform_iterator class 2014-08-21 07:00:13 -07:00
Kyle Lutz
b3ea818248 Rewrite unique() algorithm 2014-08-21 07:00:10 -07:00
Kyle Lutz
b533df6a5c Rewrite adjacent_find() algorithm 2014-08-20 22:46:51 -07:00
Kyle Lutz
45c5ec3281 Rewrite adjacent_difference() algorithm 2014-08-20 22:43:27 -07:00
roshanr
515e1b29ba Enforce same tile_size for all kernels 2014-08-18 16:55:20 +05:30
Kyle Lutz
417a50e3f3 Merge pull request #238 from roshanr95/templating
Modify templating
2014-08-15 19:30:34 -07:00
roshanr
d10d992f62 Move templating from kernel to its member function 2014-08-15 20:32:18 +05:30
Kyle Lutz
8c7efd24fd Add support for multi-device contexts 2014-08-13 20:28:34 -07:00
Kyle Lutz
9f5cc79606 Merge pull request #228 from roshanr95/merge
Merge algorithm
2014-08-11 19:59:17 -07:00
roshanr
c48760fd90 Add a merge-path based merge algorithm and change merge to use it
Added a merge_path kernel and a merge algorithm based on it.
Also changed merge to use the new algorithm.
2014-08-10 07:29:08 +05:30
Kyle Lutz
bd427b8a1b Merge pull request #224 from kylelutz/capture-containers-with-closure
Capture containers with closure
2014-08-09 09:00:43 -07:00
Kyle Lutz
06e0ae10ee Merge pull request #225 from f-koehler/issue217
added wait_list as argument and event as return for opengl enqueue_* methods
2014-08-09 08:56:57 -07:00
f-koehler
3c15712941 added wait_list as argument and event as return for opengl enqueue_* methods 2014-08-08 19:12:10 +02:00
Kyle Lutz
fd8c8f934b Support capturing containers with BOOST_COMPUTE_CLOSURE() 2014-08-07 22:20:16 -07:00
Kyle Lutz
95c331fa84 Capture references with BOOST_COMPUTE_CLOSURE() 2014-08-07 20:57:34 -07:00
Kyle Lutz
4703488c45 Merge pull request #212 from roshanr95/nth-element
Nth element
2014-08-05 19:00:30 -07:00
roshanr
30082abd59 Improve nth_element performance and unit testing 2014-08-05 22:12:45 +05:30
Kyle Lutz
5d663ff338 Fix bug with count_if() on AMD
This fixes an issue in which the count_if_with_reduce()
function fails to compile because convert_ulong(bool) is
not supported.

See issue #202.
2014-07-30 21:40:00 -07:00
Kyle Lutz
2cb564c59c Merge pull request #200 from kylelutz/bind
Add bind() function
2014-07-29 18:29:16 -07:00
Kyle Lutz
f21abdff7e Add bind() function 2014-07-27 10:33:59 -07:00
roshanr
92ae416a32 Improve binary_find performance 2014-07-18 12:32:18 +05:30
Kyle Lutz
f50e9c0110 Release v0.3 2014-07-15 21:07:20 -07:00
Kyle Lutz
132fc85270 Add OpenCL 1.2 memory flags to mem_flags enum 2014-07-12 14:44:03 -07:00
Kyle Lutz
89eee4b60e Merge pull request #193 from kylelutz/unify-seed-method-interface
Unify seed() method interface in the random number engines
2014-07-12 14:35:50 -07:00
Kyle Lutz
e8afaf1e7c Add perf_copy_if benchmark 2014-07-12 14:19:23 -07:00
Kyle Lutz
84b24fcacb Unify seed() method interface in the random number engines
This updates the random number engines to both use the same
interface for their seed() method.
2014-07-12 14:07:48 -07:00
Kyle Lutz
61645c41c3 Fix issues with popcount() on OpenCL 1.1 devices 2014-07-12 12:47:41 -07:00
Kyle Lutz
dfe9399c9f Check OpenCL version before calling enqueue_fill_buffer()
This adds a check for OpenCL version 1.2 before calling the
enqueue_fill_buffer() function in the fill() algorithm.
2014-07-12 11:22:01 -07:00
Kyle Lutz
9dc87712e9 Improve documentation 2014-07-11 23:25:41 -07:00
Kyle Lutz
a4ae254adc Rename mersenne_twister_engine header
This renames the mersenne_twister_engine header from
"mersenne_twister.hpp" to "mersenne_twister_engine.hpp".
2014-07-11 22:27:16 -07:00
Kyle Lutz
40d0166cb2 Merge pull request #182 from kylelutz/rename-create-with-builtin-kernels
Rename create_with_builtin_kernels() method
2014-07-10 20:02:51 -07:00
Kyle Lutz
94306ce2e8 Merge pull request #179 from kylelutz/deprecate-device-ptr
Move device_ptr to the detail namespace
2014-07-10 20:02:39 -07:00
Kyle Lutz
48cee2b619 Rename create_with_builtin_kernels() method 2014-07-10 19:27:17 -07:00
Kyle Lutz
9106222e61 Merge pull request #178 from kylelutz/equality-operators
Add equality operators for all wrapper classes
2014-07-09 22:10:36 -07:00
Kyle Lutz
e0535d7233 Move device_ptr to the detail namespace
This deprecates the device_ptr class and moves it to the detail
namespace. The buffer_iterator class should be used instead of
device_ptr for referencing a memory location on the device.
2014-07-08 21:04:23 -07:00
Kyle Lutz
7d377989ee Add equality operators for all wrapper classes 2014-07-08 20:33:02 -07:00
Kyle Lutz
4a1b3edf48 Fix resize bug with vector::assign()
This fixes a bug in which vector::assign() would not resize
itself to accommodate the assigned values. Now the behavior
matches that of std::vector.
2014-07-07 21:56:39 -07:00
Kyle Lutz
cae813ec3c Add get_info<Info>() specializations 2014-07-07 19:14:14 -07:00
Kyle Lutz
bd164a24b2 Merge pull request #175 from kylelutz/fix-platform-empty-devices
Fix errors when using platforms with no devices
2014-07-07 18:57:16 -07:00
Kyle Lutz
5d6921f162 Merge pull request #170 from kylelutz/create-program-with-built-in-kernels
Add program::create_with_built_in_kernels() method
2014-07-07 08:04:12 -07:00
Kyle Lutz
c156ca7198 Merge pull request #169 from kylelutz/hash-function
Add hash() function
2014-07-07 08:02:09 -07:00
Kyle Lutz
8f952b3c5b Merge pull request #168 from kylelutz/struct-is-packed
Add check for packed structs in BOOST_COMPUTE_ADAPT_STRUCT()
2014-07-07 08:01:50 -07:00
Kyle Lutz
73443e0111 Fix errors when using platforms with no devices
This fixes errors caused when handling OpenCL platforms with
no devices. Now the platform::devices() method will properly
return an empty vector without throwing an exception when such
a platform is encountered.

Previously, default_device() would throw an exception when
confronted with a platform with no devices even if devices
from other platforms on the system were available.

Thanks to Godeffroy Valet for reporting this issue.
2014-07-07 07:57:02 -07:00
Kyle Lutz
6103ff6cfb Add program::create_with_built_in_kernels() method 2014-07-02 23:45:35 -07:00
Kyle Lutz
6af32b3d8f Add hash() function 2014-07-02 23:24:18 -07:00
Kyle Lutz
235261a977 Add check for packed structs in BOOST_COMPUTE_ADAPT_STRUCT()
This adds a compile-time check for non-padded structs in the
BOOST_COMPUTE_ADAPT_STRUCT() macro. Also updates the macro to
add "__attribute__((packed))" to the OpenCL struct definition.
2014-07-02 22:53:48 -07:00
Kyle Lutz
90217d055b Add compile() and link() methods to program 2014-07-02 22:32:58 -07:00
roshanr
acf4698af1 Add benchmark for lce
Added benchmark for lce and changed threads to 1024
2014-06-30 23:41:58 +05:30
roshanr
d81edfc387 Fix errors in lce
Remove unused parameter
Fix discard() to work for all sizes
2014-06-30 23:41:16 +05:30
Kyle Lutz
2fa478a11f Merge pull request #158 from roshanr95/search-algorithms
Search algorithms
2014-06-25 18:37:56 -07:00
roshanr
f3d20639f7 Change function signature of search algorithms to match STL versions 2014-06-26 01:27:21 +05:30
Kyle Lutz
be9be67348 Merge pull request #155 from Mageswaran1989/image_format-support-grey-images
image_format-support-grey-images
2014-06-24 18:39:52 -07:00
Mageswaran
f10d3d549d updated interop/opencv/core.hpp for grey images 2014-06-24 20:59:48 +05:30
Mageswaran
81994ed6c9 support for OpenCV grey images 2014-06-21 16:48:42 +05:30
Kyle Lutz
1d5a088e94 Merge pull request #152 from roshanr95/set_algorithms
Set algorithms
2014-06-20 18:55:25 -07:00
roshanr
5b832d8ee1 Fix errors in set algorithms
Fix all the kernels so that they work with very low number
of elements in the two sets
2014-06-21 02:42:27 +05:30
jamboree
c518869dd4 Use BOOST_NOEXCEPT 2014-06-19 18:03:09 +08:00
Kyle Lutz
b670212ee8 Use "OpenCL API" rather than "OpenCL C API"
This changes references to the OpenCL API in the documentation
from "OpenCL C API" to just "OpenCL API". See issue #142.
2014-06-18 18:42:21 -07:00
roshanr
fd2506b161 Add quick and dirty linear congruential engine 2014-06-18 02:47:00 +05:30
Kyle Lutz
3ac85e3fbc Merge pull request #141 from roshanr95/discrete_distribution
Add discrete_distribution
2014-06-16 18:39:59 -07:00
roshanr
a0a7a85d0d Add discrete_distribution 2014-06-16 03:01:36 +05:30
roshanr
79063d4fb4 Add uniform_int_distribution 2014-06-15 02:28:59 +05:30
Kyle Lutz
6ea122adb7 Add support for specifying wait-lists in command_queue 2014-06-08 22:23:59 -07:00
Kyle Lutz
57470c48c2 Add device::get() method 2014-06-08 14:03:27 -07:00
Kyle Lutz
a639e408b8 Cleanup move-semantics for all core types 2014-06-08 13:40:27 -07:00
Kyle Lutz
c2c1346f19 Rename event::get_status() to event::status() 2014-06-08 10:45:35 -07:00
Kyle Lutz
69e483696b Use reduce() for accumulate() with min()/max() 2014-06-08 10:35:49 -07:00
Kyle Lutz
d2379699d0 Limit maximum number of program_cache instances
This limits the maximum number of program_cache instances to eight
using an LRU cache. This prevents potential CL_OUT_OF_RESOURCES
errors when creating and using many different context objects.
2014-06-07 22:04:06 -07:00
Kyle Lutz
60aca4401b Simplify the program::create_kernel() implementation 2014-06-07 19:58:36 -07:00
Kyle Lutz
732ab539f3 Improve documentation 2014-06-07 15:03:56 -07:00
Kyle Lutz
fc9f014526 Add core.hpp header 2014-06-07 11:57:11 -07:00
Kyle Lutz
b228de76a7 Add memory_object::set_destructor_callback() method 2014-06-07 11:13:52 -07:00
Kyle Lutz
d30dcfb564 Use clEnqueueWriteBuffer() for writing single values with fill() 2014-06-06 23:10:27 -07:00
Kyle Lutz
2ca2c16839 Swap allocators in vector::swap() 2014-06-06 08:29:45 -07:00
Kyle Lutz
07ae8638de Remove bogus assert() in command_queue::enqueue_nd_range_kernel() 2014-06-04 18:50:43 -07:00
Kyle Lutz
53c3e1af83 Add normal_distribution.hpp to random.hpp header 2014-06-04 18:44:55 -07:00
Kyle Lutz
36681a6ad5 Merge pull request #131 from roshanr95/bernoulli-distribution
Add bernoulli distribution
2014-06-04 18:41:37 -07:00
roshanr
1777b7e5bf Add bernoulli distribution 2014-06-04 03:41:19 +05:30
Kyle Lutz
99891752a6 Merge pull request #129 from vaa-msu/patch-1
Changed some 'uint's to 'uint_'s
2014-06-02 22:55:49 -07:00
Kyle Lutz
b2f80daf17 Merge pull request #128 from 'daniel-murray/develop'
add BOOST_COMPUTE_DEFAULT_DEVICE_TYPE env variable support
2014-06-02 22:48:07 -07:00
daniel-murray
b34c02c239 add BOOST_COMPUTE_DEFAULT_DEVICE_TYPE env variable support
allows a user to easily select between a gpu and a cpu without recompiling
2014-06-02 22:47:18 -07:00
vaa-msu
d65a5cf881 Changed some 'uint's to 'uint_'s 2014-06-03 09:27:17 +04:00
roshanr
b772ae4849 Add algorithm and test for is_permutation 2014-06-01 06:01:38 +05:30
roshanr
5e08e1b0b6 Add algorithm and test for prev_permutation 2014-06-01 06:01:31 +05:30
roshanr
9943683627 Minor fixes for next_permutation
Add it to algorithm.hpp.
Remove unnecessary includes.
Change naming so as to prevent conflicts.
2014-06-01 06:00:57 +05:30
Kyle Lutz
ff11312fd5 Merge pull request #126 from roshanr95/next_permutation
Add algorithm and test for next_permutation
2014-05-29 23:16:31 -07:00
roshanr
79d374f646 Minor fix in binary_search
Changed it to use read_single_value instead of
* operator
2014-05-29 22:49:25 +05:30
roshanr
e4f0783ecd Add algorithm and test for next_permutation 2014-05-29 22:31:11 +05:30
roshanr
c8d4836a6f Add partition_point algorithm and test 2014-05-26 03:43:19 +05:30
roshanr
1bf09a5624 Add binary_find algorithm
Added binary_find algorithm.
Changed upper_bound, lower_bound, binary_search to use it
2014-05-25 20:41:12 +05:30
Kyle Lutz
52886775f8 Support conversion of lambda expressions to function objects 2014-05-24 13:42:43 -07:00
roshanr
4d3d114285 Add algorithm and test for stable_partition
Added algorithm and test for stable_partition.
Changed partition to use it for now till a
better implementation is found
2014-05-23 14:19:17 +05:30
Kyle Lutz
c7802d0a49 Move variadic event handling to async/wait.hpp 2014-05-20 23:08:46 -07:00
Kyle Lutz
85af9d2630 Add variadic wait_for_all() function 2014-05-18 19:47:19 -07:00
Kyle Lutz
13bc000117 Add image2d::clone() method 2014-05-18 19:34:24 -07:00
Kyle Lutz
376713f1b4 Simplify lambda wrappers for binary geometric functions 2014-05-18 16:13:47 -07:00
roshanr
8dbc2b658d Add algorithm and test for includes 2014-05-19 01:42:16 +05:30
roshanr
de9b2ef6ff Add algorithm and test for set_symmetric_difference 2014-05-19 01:08:41 +05:30
roshanr
acbabfeeff Add algorithm and test for set_difference 2014-05-18 22:50:00 +05:30
roshanr
5f7cd290cf Add algorithm and test for set_union 2014-05-18 22:49:54 +05:30
Kyle Lutz
4683a3b5be Add default constructor for image_sampler 2014-05-17 17:26:43 -07:00
roshanr
1bb652cbea Minor fixes
Change tile_size from string to int, use read_single_value instead of
finish
2014-05-17 20:41:03 +05:30
roshanr
c522d9a337 Add algorithm and test for set_intersection 2014-05-16 19:14:48 +05:30
roshanr
c0f844f018 Add compact kernel
Added kernel to compact the results of set kernels into actual sets
2014-05-16 19:13:27 +05:30
roshanr
78d06b2e26 Add tile_sets kernel
Added kernel to tile sets based on a balanced path
2014-05-16 19:13:03 +05:30
Kyle Lutz
b41ec2b1cb Fix bug when invoking binary closures 2014-05-14 10:44:52 -07:00
Kyle Lutz
72747e0830 Release v0.2 2014-05-11 10:34:16 -07:00
Kyle Lutz
b89c886462 Refactor exception classes
This refactors and improves the exception classes. Additional
documentation as well as testing has been added. This also adds
a new static method to opencl_error which converts OpenCL error
codes to human-readable strings.
2014-05-10 14:59:33 -07:00
Kyle Lutz
b1eef72ec2 Add device vendor predicate functions
This adds a couple new functions for checking the vendor of a
compute device. This is useful for algorithms which specialize
based on the type of the underlying hardware.
2014-05-10 10:33:24 -07:00
Benoit Dequidt
985414ed50 Improve reduce_on_gpu kernel if device.vendor() == NVIDIA
An internal template functor is used in order to get a clear code
when the device is from nvidia we can do:

  - loop unrolling
  - warp reduction using volatile local memory
2014-05-10 10:16:22 -07:00
Kyle Lutz
4bb78de369 Merge pull request #110 from roshanr95/search_n
Search_n
2014-05-10 10:09:16 -07:00
roshanr
d3b3881d9e Add algorithm and test for search_n 2014-05-09 22:48:40 +05:30
roshanr
09760b4372 Add algorithm and test for find_end 2014-05-09 05:16:04 +05:30
Kyle Lutz
6b7d83b40e Merge pull request #103 from roshanr95/search_algorithms
Search algorithm
2014-05-07 21:04:40 -07:00
roshanr
79d5353a4e Minor fixes
Change documentation style, add test for search(), remove unused
variable, remove trailing whitespaces
2014-05-07 15:53:03 +05:30
Kyle Lutz
88b6a8b3d4 Only call clRetainDevice()/clReleaseDevice() for sub-devices 2014-05-06 19:56:11 -07:00
roshanr
747fe2d41f Search algorithm
Add algorithm and test for search()
2014-05-04 23:41:43 +05:30
roshanr
f49f8ca36a Add kernel for pattern matching
Finds all matches. Can tell if there is a match starting at  a
particular index.
2014-05-03 01:52:39 +05:30
Kyle Lutz
d23894322f Merge pull request #102 from roshanr95/gather/scatter
Gather/scatter
2014-05-01 19:06:55 -07:00
roshanr
cd88be2e94 Rewrite scatter using meta_kernel 2014-05-01 14:53:34 +05:30
roshanr
d0e5efdbb7 Rewrite gather using meta_kernel 2014-05-01 14:26:58 +05:30
Kyle Lutz
37a00f5c4e Add normal_distribution class 2014-04-27 15:27:15 -07:00
Kyle Lutz
714416f17f Change uniform_real_distribution to use BOOST_COMPUTE_FUNCTION() 2014-04-27 15:17:30 -07:00
Kyle Lutz
7429589ca7 Change mersenne_twister_engine::generate() to use temporary storage 2014-04-27 15:14:59 -07:00
Kyle Lutz
02fc4fa170 Add define() method to function<> and closure<> 2014-04-27 15:02:48 -07:00
Kyle Lutz
0117e462e2 Fix unused parameter warnings 2014-04-27 13:11:24 -07:00
Kyle Lutz
6b00246e09 Simplify function/closure macro implementations 2014-04-27 12:56:14 -07:00
Kyle Lutz
9343b99085 Improve documentation 2014-04-24 19:51:45 -07:00
Kyle Lutz
2dc1a8cbfe Change count_if() to use reduce() 2014-04-22 22:24:51 -07:00