In the following sections, we define the elements of oneAPI in more detail. They are the DPC++ language and libraries that use DPC++ to offload computation to an accelerator. The libraries provide domain-specific algorithms covering artificial intelligence (AI), high- performance computing (HPC), analytics, video processing, and cross-domain libraries for parallel algorithms and threading.
oneAPI elements include:
DPC++: oneAPI’s core language for programming accelerators and multiprocessors. DPCPP allows developers to reuse code across hardware targets (CPUs and accelerators such as GPUs and FPGAs) and tune for a specific architecture
oneDPL: A companion to the DPC++ Compiler for programming oneAPI devices with APIs from C++ standard library, Parallel STL, and extensions.
oneDNN: High performance implementations of primitives for deep learning frameworks
oneCCL: Communication primitives for scaling deep learning frameworks across multiple devices
Level Zero: System interface for oneAPI languages and libraries
oneDAL: Algorithms for accelerated data science
oneTBB: Library for adding thread-based parallelism to complex applications on multiprocessors
oneVPL: Algorithms for accelerated video processing
oneMKL: High performance math routines for science, engineering, and financial applications
For each element, we give an overview of the functionality, provide detailed information on the APIs, and provide links to tests and open source implementations.