2
0
mirror of https://github.com/boostorg/compute.git synced 2026-01-30 07:42:41 +00:00
Commit Graph

60 Commits

Author SHA1 Message Date
Kyle Lutz
05afa5f707 Use thread-local storage for global program cache 2014-09-28 12:37:48 -07:00
Kyle Lutz
f3f1c390de Add performance section to documentation 2014-09-21 18:36:58 -07:00
Kyle Lutz
ec254c04bb Add OpenCL 2.0 support 2014-09-13 12:29:03 -07:00
Kyle Lutz
8310e8e729 Add dynamic_bitset class 2014-09-07 11:21:46 -07:00
Ed Baunton
4f826a64fc Update design.qbk
Correcting typo in sentence and adding in that OpenCL supports C as well as C++.
2014-08-28 20:13:32 +02:00
Kyle Lutz
61645c41c3 Fix issues with popcount() on OpenCL 1.1 devices 2014-07-12 12:47:41 -07:00
Kyle Lutz
9dc87712e9 Improve documentation 2014-07-11 23:25:41 -07:00
Kyle Lutz
48cee2b619 Rename create_with_builtin_kernels() method 2014-07-10 19:27:17 -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
6103ff6cfb Add program::create_with_built_in_kernels() method 2014-07-02 23:45:35 -07:00
Kyle Lutz
90217d055b Add compile() and link() methods to program 2014-07-02 22:32:58 -07: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
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
3f0080b371 Update README file 2014-06-04 18:57:26 -07:00
Kyle Lutz
52886775f8 Support conversion of lambda expressions to function objects 2014-05-24 13:42:43 -07:00
Kyle Lutz
9343b99085 Improve documentation 2014-04-24 19:51:45 -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
21d81fcd76 Add user_event class 2014-04-16 21:11:47 -07:00
Kyle Lutz
85af0b7a19 Add cmake install target for Boost.Compute 2014-04-13 20:12:32 -07:00
Kyle Lutz
637cc98c01 Add print_vector example 2014-04-11 21:36:57 -07:00
Kyle Lutz
a439709fc2 Improve documentation 2014-03-16 13:59:14 -07:00
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
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
a385329c0b Fix complex header include in documentation 2014-01-06 18:45:12 -08:00
Kyle Lutz
b17888b604 Move future header to async directory 2014-01-06 18:44:37 -08:00
Kyle Lutz
98fb402dde Add FAQ to documentation 2014-01-05 20:29:26 -08:00
Kyle Lutz
3bc4a6366d Add BOOST_COMPUTE_STRINGIZE_SOURCE() macro 2014-01-05 18:30:34 -08:00
Kyle Lutz
b5ff4743bb Add field() function
This adds a new function which will return the named field
from a value. For example, this can be used to return one of
the components of a pair object or to swizzle a vector value.
2013-11-10 15:44:45 -08:00
Kyle Lutz
8213697307 Add BOOST_COMPUTE_FUNCTION() macro
This adds a new macro to ease the definition of custom user
functions. The BOOST_COMPUTE_FUNCTION() macro creates a new
boost::compute::function<> object with the provided return
type, argument types, function name and OpenCL source code.
2013-11-10 15:32:15 -08:00
Kyle Lutz
bc00a3fe27 Add documentation for supported platforms
This adds documentation listing the supported platforms,
compilers, and OpenCL implementations.
2013-08-21 21:31:43 -04:00
Kyle Lutz
b539e8413c Add Doxygen documentation
This replaces the BoostBook/XML based reference documentation
with Doxygen auto-generated documentation.
2013-07-16 21:48:16 -04:00
Kyle Lutz
90a537745c Cleanup documentation
This cleans up and improves the documentation.
2013-05-20 21:33:35 -04: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
Kyle Lutz
fab7be5f43 Add inplace_merge() algorithm
This adds a simple inplace_merge() algorithm which merges
two contiguous sorted ranges in-place.

For now, the implementation simply copies the ranges to
two temporary vectors and calls merge().
2013-05-20 20:50:12 -04:00
Kyle Lutz
4ab37ada07 Add system-wide default command queue
This adds a system-wide default command queue. This queue is
accessible via the new static system::default_queue() method.
The default command queue is created for the default compute
device in the default context and is analogous to the default
stream in CUDA.

This changes how algorithms operate when invoked without an
explicit command queue. Previously, each algorithm had two
overloads, the first expected a command queue to be explicitly
passed and the second would create and use a temporary command
queue. Now, all algorithms take a command queue argument which
has a default value equal to system::default_queue().

This fixes a number of race-conditions and performance issues
througout the library associated with create, using, and
destroying many separate command queues.
2013-05-15 20:59:56 -04:00
Kyle Lutz
130f8c30f1 Rename kernel::num_args() method to arity()
This renames the kernel::num_args() method to arity().
2013-05-11 20:15:00 -04:00
Kyle Lutz
178676df4f Refactor the system::default_device() method
This refactors the system::default_device() method. Now, the
default compute device for the system is only found once and
stored in a static variable. This eliminates many redundant
calls to clGetPlatformIDs() and clGetDeviceIDs().

Also, the default_cpu_device() and default_gpu_device() methods
have been removed and their usages replaced with default_device().
2013-05-10 22:49:05 -04:00
Kyle Lutz
9a64f6b39a Add get<N>() function
This adds a get<N>() function which returns the n'th element
of an aggregate type (e.g. vector type, pair, tuple).

This unifies the functionality of, and replaces, the get_pair()
and vector_component() functions.
2013-05-05 12:46:05 -04:00
Kyle Lutz
0ab2fe85eb Don't auto-initialize values in vector
This changes the vector class to not auto-initialize values
when it is created or resized. This improves performance by
eliminating a call to fill(). If needed, user code can call
fill() explicitly on the newly allocated values.
2013-04-27 10:30:26 -04:00
Kyle Lutz
425ada2d03 Add documentation for platform::unload_compiler()
This adds documentation for the unload_compiler() method in
the platform class.
2013-04-22 20:33:35 -04:00
Kyle Lutz
1fbb7b1b9a Add documentation for platform::get_extension_function_address()
This adds documentation for the get_extension_function_address()
method in the platform class.
2013-04-22 20:30:09 -04:00
Kyle Lutz
2f7ae1bc9c Remove documentation for non-existent platform methods
This removes the documentation for the non-existent platforms()
and platform_count() methods in the platform class. These methods
have been moved to the system class and are documented there.
2013-04-22 20:24:51 -04:00
Kyle Lutz
00cdca5b55 Add documentation for type-traits
This adds documentation for the type-traits.
2013-04-22 20:20:17 -04:00
Kyle Lutz
8142e5d5f9 Add move-constructors to wrapper classes
This adds move-constructors and move-assignment operators
to the OpenCL wrapper classes.
2013-04-17 20:45:04 -04:00
Kyle Lutz
d58b7c0902 Return event from command_queue::enqueue_task()
This changes the command_queue::enqueue_task() method to return
an event object.
2013-04-13 10:23:29 -04:00