The oneAPI DPC++ Library (oneDPL) provides the functionality specified in the C++ standard, with extensions to support data parallelism and offloading to devices, and with extensions to simplify its usage for implementing data parallel algorithms.
The library is comprised of the following components:
The C++ standard library. (See C++ Standard.) oneDPL defines a subset of the C++ standard library which you can use with buffers and data parallel kernels. (See Supported C++ Standard Library APIs and Algorithms.)
Parallel STL. (See Supported C++ Standard Library APIs and Algorithms.) oneDPL extends Parallel STL with execution policies and companion APIs for running algorithms on oneAPI devices. (See Extensions to Parallel STL.)
Extensions. An additional set of library classes and functions that are known to be useful in practice but are not (yet) included into C++ or SYCL specifications. (See Specific API of oneDPL.)
namespace std for the Supported C++ Standard
Library APIs and Algorithms including Parallel STL algorithms
and the subset of the standard C++ library for kernels,
namespace dpstd for its extended functionality.
Supported C++ Standard Library APIs and Algorithms¶
For all C++ algorithms accepting execution policies (as defined by C++17),
oneDPL provides an implementation supporting
dpstd::execution::device_policy and SYCL buffers (via
(See Extensions to Parallel STL.)