oneAPI Elements

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.