Commit Graph

95 Commits

Author SHA1 Message Date
Kyle Lutz
f3f1c390de Add performance section to documentation 2014-09-21 18:36:58 -07:00
Ed Baunton
0be4019ef5 Style 2014-08-25 20:12:58 +02:00
Ed Baunton
0ced318a38 Improve the warning when perf test hasn't been compiled 2014-08-25 20:11:38 +02:00
Kyle Lutz
744359715f Implement is_sorted() with adjacent_find() 2014-08-21 22:43:46 -07:00
Kyle Lutz
b3ea818248 Rewrite unique() algorithm 2014-08-21 07:00:10 -07:00
Kyle Lutz
ade2ffa067 Fix perf_merge benchmark with odd-sized inputs 2014-08-13 20:53:30 -07:00
roshanr
d356a2c40d Add benchmark for nth_element 2014-07-30 18:18:34 +05:30
roshanr
5df5d8c3ee Add benchmark for binary_find 2014-07-18 12:32:18 +05:30
Kyle Lutz
e8afaf1e7c Add perf_copy_if benchmark 2014-07-12 14:19:23 -07:00
Kyle Lutz
fb5c5442f7 Add perf_fill benchmark 2014-07-12 13:47:01 -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
roshanr
cd41289bbc Add benchmarks for the new disributions 2014-07-02 20:00:23 +05:30
roshanr
acf4698af1 Add benchmark for lce
Added benchmark for lce and changed threads to 1024
2014-06-30 23:41:58 +05:30
roshanr
be18866bca Add benchmarks for permutation algorithms 2014-06-27 08:22:32 +05:30
roshanr
7baff5980a Add benchmarks for search algorithms 2014-06-26 01:27:58 +05:30
roshanr
2e825a9ad1 Add benchmarks for partitioning algorithms 2014-06-25 04:43:47 +05:30
roshanr
e2c5fe5504 Add benchmarks for set algorithms 2014-06-21 02:51:00 +05:30
Benoit Dequidt
fed05b3ba5 Update perf_partial_sum : no internal allocation and copy
Calling the partial_sum algorithm with the same input/output
buffer leads to an internal allocation and copy.
2014-05-14 23:55:14 +08:00
Benoit Dequidt
48687cd29e Add perf tests for exclusive_scan
- perf_exclusive_scan for Boost.Compute
        - perf_thrust_exclusive_scan for thrust
2014-05-14 23:54:58 +08:00
Kyle Lutz
c2ad69aaa0 Fix BOOST_COMPUTE_FUNCTION() usage in perf_cart_to_polar 2014-04-22 21:33:44 -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
59efaa0eeb Add tests and benchmarks for unique_copy 2014-04-21 02:00:02 +05:30
Kyle Lutz
8b06e3f7bb Add event::duration() method 2014-04-19 12:31:37 -07:00
roshanr
f491c55dbd Change perf_sort_by_key to use int_ and long_ instead of int and long 2014-04-18 12:17:55 +05:30
Kyle Lutz
6336b81911 Rename mersenne_twister_engine::fill() to generate() 2014-04-13 14:13:53 -07:00
Kyle Lutz
fa8fcade52 Add perf_erase_remove benchmark 2014-04-12 16:07:30 -07:00
Kyle Lutz
b7c4f0ce18 Change mersenne_twister::seed() to take a command_queue 2014-04-12 11:14:44 -07:00
roshanr
fca6e136c2 Fix unique benchmarks 2014-04-03 12:07:16 +05:30
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
roshanr
9450014389 Add benchmarks for rotate and rotate_copy
Added compute and stl benchmarks for rotate() and rotate_copy()
2014-03-17 19:12:49 +05:30
Kyle Lutz
da22127181 Merge pull request #67 from roshanr95/reverse_benchmarks
Add benchmarks for reverse
2014-03-16 10:27:14 -07:00
roshanr
a65804d0c9 Add benchmarks for reverse
Added STL and Compute benchmarks for reverse()
2014-03-16 22:31:29 +05:30
Kyle Lutz
bae7432c04 Improve sort_by_key() performance 2014-03-12 23:40:57 -07:00
Kyle Lutz
9e5bff9d83 Add SYSTEM to third-party include_directories() calls 2014-03-12 20:41:04 -07: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
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
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
Kyle Lutz
84b45b4394 Bump Boost version requirement to 1.48
This bumps the required Boost version to 1.48 as Boost.Compute
makes use of Boost.Move which was added in version 1.48.

See issue #37.
2014-01-05 18:53:19 -08:00
Kyle Lutz
8b812a2081 Add perf_cart_to_polar benchmark
This adds a new benchmark to measure the performance of converting
cartesian to polar coordinates using the transform() algorithm.
2013-11-23 12:26:10 -08:00
Kyle Lutz
5b7e22bac2 Add perf_mersenne_twister benchmark
This adds a benchmark for the mersenne_twister engine.
2013-09-24 22:51:26 -04:00
Kyle Lutz
07e4a6b3aa Remove BLAS functions
This removes the incomplete BLAS API functions.
2013-09-24 22:19:56 -04:00
Denis Demidov
84394de119 Get rid of type convesion warnings inside VS2010 2013-06-24 09:57:22 +02:00
Kyle Lutz
3bc5bfaf78 Remove timer class
This removes the timer class. The technique of measuring the time
difference between two different OpenCL markers on a command queue
is not portable to all OpenCL implementations (only works on NVIDIA).

A new internal timer class has been added which uses boost::chrono
(or std::chrono if BOOST_COMPUTE_TIMER_USE_STD_CHRONO is defined).
This new timer is used by the benchmarks to measure time elapsed
on the host.
2013-05-20 21:08:42 -04:00
Dominic Meiser
2a93124ef5 Using FindOpenCL module from VexCL
Changed CMakeLists.txt files in Boost.Compute to use the variables
defined by FindOpenCL.
2013-04-23 20:03:38 -04:00
Kyle Lutz
d34cdaac59 Initial commit 2013-03-02 15:14:17 -05:00