summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/compute/README.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/boost/libs/compute/README.md
parentInitial commit. (diff)
downloadceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.tar.xz
ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.zip
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/compute/README.md')
-rw-r--r--src/boost/libs/compute/README.md90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/boost/libs/compute/README.md b/src/boost/libs/compute/README.md
new file mode 100644
index 000000000..f8556116c
--- /dev/null
+++ b/src/boost/libs/compute/README.md
@@ -0,0 +1,90 @@
+# Boost.Compute #
+
+[![Build Status](https://travis-ci.org/boostorg/compute.svg?branch=master)](https://travis-ci.org/boostorg/compute)
+[![Build status](https://ci.appveyor.com/api/projects/status/4s2nvfc97m7w23oi/branch/master?svg=true)](https://ci.appveyor.com/project/jszuppe/compute/branch/master)
+[![Coverage Status](https://coveralls.io/repos/boostorg/compute/badge.svg?branch=master)](https://coveralls.io/r/boostorg/compute)
+[![Gitter](https://badges.gitter.im/boostorg/compute.svg)](https://gitter.im/boostorg/compute?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
+
+Boost.Compute is a GPU/parallel-computing library for C++ based on OpenCL.
+
+The core library is a thin C++ wrapper over the OpenCL API and provides
+access to compute devices, contexts, command queues and memory buffers.
+
+On top of the core library is a generic, STL-like interface providing common
+algorithms (e.g. `transform()`, `accumulate()`, `sort()`) along with common
+containers (e.g. `vector<T>`, `flat_set<T>`). It also features a number of
+extensions including parallel-computing algorithms (e.g. `exclusive_scan()`,
+`scatter()`, `reduce()`) and a number of fancy iterators (e.g.
+`transform_iterator<>`, `permutation_iterator<>`, `zip_iterator<>`).
+
+The full documentation is available at http://boostorg.github.io/compute/.
+
+## Example ##
+
+The following example shows how to sort a vector of floats on the GPU:
+
+```c++
+#include <vector>
+#include <algorithm>
+#include <boost/compute.hpp>
+
+namespace compute = boost::compute;
+
+int main()
+{
+ // get the default compute device
+ compute::device gpu = compute::system::default_device();
+
+ // create a compute context and command queue
+ compute::context ctx(gpu);
+ compute::command_queue queue(ctx, gpu);
+
+ // generate random numbers on the host
+ std::vector<float> host_vector(1000000);
+ std::generate(host_vector.begin(), host_vector.end(), rand);
+
+ // create vector on the device
+ compute::vector<float> device_vector(1000000, ctx);
+
+ // copy data to the device
+ compute::copy(
+ host_vector.begin(), host_vector.end(), device_vector.begin(), queue
+ );
+
+ // sort data on the device
+ compute::sort(
+ device_vector.begin(), device_vector.end(), queue
+ );
+
+ // copy data back to the host
+ compute::copy(
+ device_vector.begin(), device_vector.end(), host_vector.begin(), queue
+ );
+
+ return 0;
+}
+```
+
+Boost.Compute is a header-only library, so no linking is required. The example
+above can be compiled with:
+
+`g++ -I/path/to/compute/include sort.cpp -lOpenCL`
+
+More examples can be found in the [tutorial](
+http://boostorg.github.io/compute/boost_compute/tutorial.html) and under the
+[examples](https://github.com/boostorg/compute/tree/master/example) directory.
+
+## Support ##
+Questions about the library (both usage and development) can be posted to the
+[mailing list](https://groups.google.com/forum/#!forum/boost-compute).
+
+Bugs and feature requests can be reported through the [issue tracker](
+https://github.com/boostorg/compute/issues?state=open).
+
+Also feel free to send me an email with any problems, questions, or feedback.
+
+## Help Wanted ##
+The Boost.Compute project is currently looking for additional developers with
+interest in parallel computing.
+
+Please send an email to Kyle Lutz (kyle.r.lutz@gmail.com) for more information.