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
Kyle Lutz
ab0a365060
Only allocate temporary vector if necessary in generic_reduce()
2014-04-22 21:42:28 -07:00
Kyle Lutz
72a5449ffe
Fix BOOST_COMPUTE_FUNCTION() usage in struct.hpp documentation
2014-04-22 21:31:14 -07:00
Kyle Lutz
127b350411
Remove unnecessary typename in function.hpp and closure.hpp
...
This fixes a warning when compiling these files with clang.
2014-04-20 19:34:21 -07:00
Kyle Lutz
4b67907023
Change BOOST_COMPUTE_FUNCTION() to use custom argument names
...
This changes the BOOST_COMPUTE_FUNCTION() macro (and the related
BOOST_COMPUTE_CLOSURE() macro) to use custom, user-provided argument
names instead of auto-generating them based on their index.
This is an API-breaking change. Users should now provide argument
names when using the BOOST_COMPUTE_FUNCTION() macro. The examples
and documentation have been updated to reflect the new API.
2014-04-20 19:13:48 -07:00
Kyle Lutz
2511bdb436
Merge pull request #97 from roshanr95/unique
...
Fix errors in unique
2014-04-20 16:42:56 -07:00
roshanr
3f537d806e
Add unique_copy, modify unique to use it
2014-04-21 01:43:10 +05:30
Kyle Lutz
a78212fdde
Rename K to K_BITS in radix_sort()
...
This should fix the following error seen on the Apple OpenCL
implementation when compiling the radix_sort program: "error:
definition of macro 'K' conflicts with an identifier used in
the precompiled header".
2014-04-20 10:16:02 -07:00
Kyle Lutz
8b06e3f7bb
Add event::duration() method
2014-04-19 12:31:37 -07:00
Kyle Lutz
6ac757887c
Support generic function callbacks for event
2014-04-19 11:38:10 -07:00
Kyle Lutz
7629748e49
Merge pull request #90 from roshanr95/perf_sort_by_key
...
Fix errors in perf_sort_by_key
2014-04-18 08:15:08 -07:00
roshanr
70da4979f5
Refactor recurring code into preprocessor
...
Makes it easy to add specialisations
2014-04-18 10:31:12 +05:30
Kyle Lutz
21d81fcd76
Add user_event class
2014-04-16 21:11:47 -07:00
Kyle Lutz
ac0be42cfc
Change program::build() to return void
2014-04-16 21:01:31 -07:00
Kyle Lutz
b3ab16578b
Include <boost/mpl/size.hpp> in function.hpp
2014-04-16 19:12:29 -07:00
Kyle Lutz
e84987b3f4
Fix unused parameter warning in reduce_on_gpu.hpp
2014-04-16 19:12:15 -07:00
Kyle Lutz
4f6c591362
Remove unnecessary typename in discard_iterator
2014-04-13 14:55:08 -07:00
Kyle Lutz
663ab01425
Add documentation for the random number generator classes
2014-04-13 14:33:03 -07:00
Kyle Lutz
3d8616e27e
Add mersenne_twister_engine::generate() overload with transform
2014-04-13 14:18:41 -07:00
Kyle Lutz
6336b81911
Rename mersenne_twister_engine::fill() to generate()
2014-04-13 14:13:53 -07:00
Kyle Lutz
2ebb04caac
Add discard() method to mersenne_twister_engine
2014-04-13 13:57:12 -07:00
Kyle Lutz
dd0b1fcb7b
Add discard_iterator class
2014-04-13 13:45:01 -07:00
Kyle Lutz
6a9efd6d03
Optimize vector<T>::erase() when last equals end()
2014-04-12 16:16:01 -07:00
Kyle Lutz
dadced4703
Remove unused context variable in random_fill()
2014-04-12 11:33:09 -07:00
Kyle Lutz
b7c4f0ce18
Change mersenne_twister::seed() to take a command_queue
2014-04-12 11:14:44 -07:00
Kyle Lutz
7b2ca68539
Add documentation for the enqueue_1d_range_kernel() method
2014-04-12 10:11:02 -07:00
Kyle Lutz
8dac90de3a
Fix spelling error in enqueue_native_kernel() documentation
2014-04-12 10:09:44 -07:00
Kyle Lutz
420c3dd15b
Remove cl_int return values from command_queue
...
This updates the methods in command_queue to either return void
(for synchronous operations) or an event object (for asynchronous
operations). The caller will be notified of OpenCL errors via an
exception being thrown.
2014-04-12 10:02:45 -07:00
Kyle Lutz
7966768c80
Remove read/write buffer convenience overloads in command_queue
2014-04-12 09:40:37 -07:00
Kyle Lutz
e3604817df
Remove explicit call to finish() in command_queue destructor
...
This removes the explicit call to finish() in the destructor
for the command_queue class.
The clFinish() function will be called automatically by the
clReleaseCommandQueue() function once the reference count for
the command queue drops to zero.
2014-04-12 09:35:39 -07:00
Kyle Lutz
7ec4566a00
Remove default local_work_size argument for enqueue_nd_range_kernel()
2014-04-12 09:22:28 -07:00
Kyle Lutz
89d97768d2
Remove enqueue_1d_range_kernel() overload with no local work-size
2014-04-12 09:17:48 -07:00
Kyle Lutz
15cf54cc48
Fix ambiguous member template warning with clang
2014-04-10 22:31:01 -07:00
Kyle Lutz
acb2188382
Improve reduce() performance with generic iterators
2014-04-10 22:16:04 -07:00
Kyle Lutz
b897b1f023
Copy multiple values per thread in copy_on_device()
2014-04-02 21:46:36 -07:00
Kyle Lutz
bae2bb6c7f
Add get_nvidia_compute_capability() function
2014-04-02 21:30:22 -07:00
Kyle Lutz
01eb24f36c
Fix bug in copy-constructor for wait_list
2014-03-23 21:26:09 -07:00
Kyle Lutz
6334d67720
Merge pull request #75 from roshanr95/unique
...
Unique algorithm
2014-03-23 21:24:05 -07:00
Kyle Lutz
5efecbdaad
Merge pull request #74 from ddemidov/master
...
Fixing several warnings given by pedantic g++-4.8.2
2014-03-23 21:23:21 -07:00
roshanr
1e81b7ec2e
Unique algorithm
...
Added unique() algorithm, tests and benchmarks. Removed unused variable
in scan_on_gpu() to remove warnings
2014-03-24 06:30:28 +05:30
Denis Demidov
d653df535d
Fixing several warnings given by pedantic g++-4.8.2
2014-03-22 22:37:39 +04:00
Kyle Lutz
667aa9c200
Add buffer::clone() method
2014-03-20 23:31:41 -07:00
Kyle Lutz
0446e24baf
Fix BOOST_COMPUTE_FUNCTION() with non-default-constructible types
2014-03-20 23:31:36 -07:00
Kyle Lutz
c15f35b0be
Check for empty strings in get_object_info()
2014-03-20 23:17:27 -07:00
Kyle Lutz
21f053fe00
Check binary status in program::create_with_binary()
2014-03-20 23:17:27 -07:00
Kyle Lutz
53d6e95054
Release v0.1
2014-03-16 15:18:26 -07:00
Kyle Lutz
a439709fc2
Improve documentation
2014-03-16 13:59:14 -07:00
Kyle Lutz
8e086104a0
Add event::set_callback() method
...
This adds a method to the event class which allows the user to
register a callback function to be invoked when the event reaches
the specified state (e.g. when it completes).
2014-03-16 13:20:57 -07:00
Kyle Lutz
0c3a325554
Move transform_if() algorithm to experimental
2014-03-16 13:16:39 -07:00
Kyle Lutz
9bf22a41d1
Merge pull request #66 from roshanr95/rotate_copy
...
rotate_copy algorithm and test
2014-03-13 08:07:11 -07:00
Kyle Lutz
bae7432c04
Improve sort_by_key() performance
2014-03-12 23:40:57 -07:00
Kyle Lutz
cf8e972e55
Improve kernel::set_arg() method
2014-03-12 21:02:22 -07:00
Kyle Lutz
e1e84252d0
Merge pull request #65 from roshanr95/mersenneTwister
...
Fix warnings in Mersenne Twister
2014-03-12 18:21:13 -07:00
roshanr
f1b7f39655
rotate_copy algorithm and test
2014-03-13 03:56:56 +05:30
Kyle Lutz
5fb6f94cea
Merge pull request #62 from roshanr95/rotate
...
Rotate algorithm
2014-03-12 10:38:56 -07:00
roshanr
d1a87603f0
Fix warnings in Mersenne Twister
2014-03-12 23:05:06 +05:30
roshanr
03edbbbdab
Rotate algorithm
2014-03-12 22:41:30 +05:30
Kyle Lutz
0a1c378731
Add opengl_renderbuffer class
2014-03-09 22:17:36 -07:00
Kyle Lutz
ad48527dcd
Add documentation for OpenGL interop headers
2014-03-09 22:16:10 -07:00
Kyle Lutz
6c8f158c00
Fix documentation for the wait_list class
2014-03-09 22:06:45 -07:00
Kyle Lutz
83d104f24f
Add BOOST_COMPUTE_CLOSURE() macro
...
This adds a new macro which allows users to create closure functions
which can capture C++ variables and make them available in OpenCL.
2014-03-08 18:44:03 -08:00
Kyle Lutz
dec92cc438
Add BOOST_COMPUTE_ADAPT_STRUCT() macro
...
This adds a new macro which allows the user to adapt a C++ struct
or class for use with OpenCL given its type, name, and members.
This allows for custom user-defined data-types to be used with the
Boost.Compute containers and algorithms.
2014-03-08 18:21:34 -08:00
Kyle Lutz
6f3f30bee9
Add enqueue_native_kernel() method to command_queue
2014-03-08 15:21:57 -08:00
Kyle Lutz
3b49cf14f8
Add wait_list class
...
This adds a wait_list class which contains a vector of OpenCL
events that can be waited on before executing further commands.
2014-03-08 14:09:41 -08:00
Kyle Lutz
71af014b3d
Add mapped_view container
2014-03-08 13:17:55 -08:00
Kyle Lutz
51e89596b1
Simplify accumulate() with reduce()
2014-03-08 13:13:32 -08:00
Kyle Lutz
b8de46d4de
Add experimental directory
...
This adds an experimental directory which contains various
experimental algorithms and functions. The files and APIs
under this directory are experimental and unstable.
2014-03-08 13:02:06 -08:00
Kyle Lutz
86c0bb0a12
Add inline specifier to opengl_enqueue_release_gl_objects()
2014-02-28 21:09:34 -08:00
Kyle Lutz
b1b50f5e3a
Add meta_kernel::insert_function_call() method
2014-02-24 19:56:52 -08:00
Kyle Lutz
d9a45b06d3
Move float vector stream operators in meta_kernel
2014-02-24 19:42:31 -08:00
Kyle Lutz
80781ce9d2
Add OpenCV-OCL interop functions
2014-02-22 10:57:42 -08:00
Kyle Lutz
dacdbf0ffd
Bug in fill() with uchar4
2014-02-22 10:51:39 -08:00
Kyle Lutz
e7a76c343a
Remove unused variable in reduce_on_gpu() kernel
2014-02-14 18:14:18 -08:00
Kyle Lutz
ec11d8cdc4
Add third-party perf tests
...
This adds third-party performance tests to use in comparing
Boost.Compute with other parallel/GPGPU frameworks like Intel's
TBB and NVIDIA's Thrust along with the C++ STL.
Also refactors the timing and profiling infrastructure and adds
a simple perf.py driver script for running performance tests.
2014-02-02 13:12:17 -08:00
Kyle Lutz
6de0b65d18
Improve documentation
2014-02-02 11:32:49 -08:00
Kyle Lutz
f3c2384af4
Add opengl_create_shared_context() function
2014-02-01 12:27:23 -08:00
Kyle Lutz
0c88eca831
Add platform::id() method
2014-02-01 12:17:21 -08:00
Kyle Lutz
9a0aa33c2f
Make platform::get_extension_function_address() const
2014-02-01 12:15:53 -08:00
Kyle Lutz
ccd6f21d98
Change vector constructors to take queue argument
...
This changes the vector<T> constructors which copy or initialize
data to take a queue argument used for performing the operations.
Previously they just took a context argument used to initialize the
buffer and then created a new command queue to use. This improves
performance by not requiring a new command queue and also fixes issues
when performing operations on a different command queue while the
vector was still being initialized.
2014-01-27 23:39:19 -08:00
Kyle Lutz
47922aa780
Add Boost version check to config.hpp
...
This adds a compile-time check to config.hpp which ensures
that the miniumum supported Boost version (1.48) is found.
2014-01-20 18:31:18 -08:00
Kyle Lutz
dc20f09d92
Add make_tuple() lambda function
2014-01-14 22:18:35 -08:00
Kyle Lutz
ea7c2bf2f4
Add make_pair() lambda function
2014-01-14 22:03:48 -08:00
Kyle Lutz
c784ae994e
Add third lambda placeholder
2014-01-14 22:00:22 -08:00
Kyle Lutz
46ef3fffb5
Make lambda function expressions variadic
2014-01-14 21:58:09 -08:00
Kyle Lutz
c57e1953d8
Make lambda get<N>() variadic
2014-01-14 21:54:54 -08:00
Kyle Lutz
8aad57612b
Make function_signature_to_mpl_vector<> meta-function variadic
2014-01-14 21:52:34 -08:00
Kyle Lutz
72664c8de9
Add test for generate() with pair<T1, T2>
2014-01-14 21:31:51 -08:00
Kyle Lutz
68412f5ae0
Refactor function handling in lambda expressions
2014-01-13 18:27:57 -08:00
Kyle Lutz
936d801466
Add support for host iterators to sort()
2014-01-13 18:27:52 -08:00
Kyle Lutz
413267b32a
Improve accumulate() performance
...
This improves the performance for the accumulate() algorithm
for types/operations that can be performed with reduce().
2014-01-13 18:27:48 -08:00
Kyle Lutz
ac148e8f1f
Fix extra semicolon warning in interop/eigen/core.hpp
2014-01-13 18:27:40 -08:00
Denis Demidov
5e912dff1c
Move BOOST_COMPUTE_MAX_ARITY definition to compute/config.hpp
2014-01-10 09:55:35 +04:00
Denis Demidov
52bae83504
Make zip_iterator take more than three elements
...
This uses Boost.Preprocessor macros to allow zip iterators to work with
arbitrary number of elements (the current limit is maximum boost::tuple
size which is 10 by default).
Refs #50
2014-01-09 23:39:58 +04:00
Denis Demidov
d24749ae52
Use SHA1 for online cache keys
...
This makes online cache use sha1 of the program source as key.
Introduces boost::compute::detail::sha1() function, which is moved
from compute::program into its own header file.
2014-01-07 23:07:18 +04:00
Kyle Lutz
6f52e3ce1f
Merge pull request #46 from ddemidov/offline-cache
...
Use the original program source for program creation/compilation
2014-01-07 10:11:08 -08:00
Denis Demidov
41d2052c2a
Fix linkage problem with detail::getenv()
...
detail::getenv() function was not declared inline, which led to
`multiple definition` errors at link time when a program consisted of
multiple objects that included Boost.Compute headers.
Fixed the problem and added core.multiple_objects test.
2014-01-07 21:29:18 +04:00
Denis Demidov
f519ad3639
Use the original program source for program creation/compilation
...
Instead of building the program from source with the added comment
block (used for distinction between different platforms and devices
when offline cache is in use), only use the altered source for the
hash computation. This way users will not get unexpected results from
program.source().
2014-01-07 21:05:26 +04:00
Kyle Lutz
aad03486d9
Add interop support
...
This adds interoperability support between Boost.Compute and various
other C/C++ libraries (Eigen, OpenCV, OpenGL, Qt and VTK). This eases
development for users using external libraries with Boost.Compute.
2014-01-06 23:35:38 -08:00
Kyle Lutz
b47e74df6f
Add is_fundamental type-trait
2014-01-06 23:04:36 -08:00
Kyle Lutz
eca81df028
Merge pull request #39 from ddemidov/offline-cache
...
Implements offline kernel caching
2014-01-06 22:47:52 -08:00
Denis Demidov
562f149b18
Implements offline kernel caching
...
See kylelutz/compute#21
This adds program::build_with_source() function that both creates and
builds the program for the given context with supplied source and
compile options. In case BOOST_COMPUTE_USE_OFFLINE_CACHE macro is
defined, it also saves the compiled program binary for reuse in the
offline cache located in $HOME/.boost_compute folder on UNIX-like
systems and in %APPDATA%/boost_compute folder on Windows.
All internal uses of program::create_with_source() followed by
program::build() are replaced with program::build_with_source().
2014-01-07 09:07:00 +04:00