...one of the most highly
regarded and expertly designed C++ library projects in the
world. — Herb Sutter and Andrei
The Boost Compute library consists of several different components. The core
layer provides a "thin" C++ wrapper over the OpenCL API. This includes
classes to manage OpenCL objects such as
On top of the core layer is a partial implementation of the C++ standard
library providing common containers (e.g.
array<T, N>) along
with common algorithms (e.g.
The library also provides a number of "fancy" iterators (e.g.
which enhance the functionality of the standard algorithms.
Boost.Compute also supplies a number of facilities for interoperation with other C and C++ libraries. See the section on interoperability for more information.
See the API Overview section for a full list of functions, classes, and macros provided by Boost.Compute.
Boost.Compute uses OpenCL as its interface for executing code on parallel devices such as GPUs and multi-core CPUs.
OpenCL was chosen for a number of reasons: