Software:oneAPI (compute acceleration)

From HandWiki

Short description: Open standard for parallel computing
oneAPI
OneAPI-rgb-3000.png
Repositorygithub.com/oneapi-src
Operating systemCross-platform
PlatformCross-platform
TypeOpen-source software specification for parallel programming
Website{{{1}}}

oneAPI is an open standard, adopted by Intel,[1] for a unified application programming interface (API) intended to be used across different computing accelerator (coprocessor) architectures, including GPUs, AI accelerators and field-programmable gate arrays. It is intended to eliminate the need for developers to maintain separate code bases, multiple programming languages, tools, and workflows for each architecture.[2][3][4][5]

Specification

The oneAPI specification extends existing developer programming models to enable multiple hardware architectures through a data-parallel language, a set of library APIs, and a low-level hardware interface to support cross-architecture programming. It builds upon industry standards and provides an open, cross-platform developer stack.[6][7]

Data Parallel C++

DPC++[8][9] is a programming language implementation of oneAPI, built upon the ISO C++ and Khronos Group SYCL standards.[10] DPC++ is an implementation of SYCL with extensions that are proposed for inclusion in future revisions of the SYCL standard, including: unified shared memory, group algorithms, and sub-groups.[11][12][13]

Libraries

The set of APIs[6] spans several domains, including libraries for linear algebra, deep learning, machine learning, video processing, and others.

Library Name Short

Name

Description
oneAPI DPC++ Library oneDPL Algorithms and functions to speed DPC++ kernel programming
oneAPI Math Kernel Library oneMKL Math routines including matrix algebra, FFT, and vector math
oneAPI Data Analytics Library oneDAL Machine learning and data analytics functions
oneAPI Deep Neural Network Library oneDNN Neural networks functions for deep learning training and inference
oneAPI Collective Communications Library oneCCL Communication patterns for distributed deep learning
oneAPI Threading Building Blocks oneTBB Threading and memory management template library
oneAPI Video Processing Library oneVPL Real-time video encode, decode, transcode, and processing

The source code of parts of the above libraries is available on GitHub.[14]

The oneAPI documentation also lists the "Level Zero" API defining the low-level direct-to-metal interfaces and a set of ray tracing components with its own APIs.[6]

Hardware abstraction layer

oneAPI Level Zero,[15][16][17] the low-level hardware interface, defines a set of capabilities and services that a hardware accelerator needs to interface with compiler runtimes and other developer tools.

Implementations

Intel has released oneAPI production toolkits that implement the specification and add CUDA code migration, analysis, and debug tools.[18][19][20] These include the Intel oneAPI DPC++/C++ Compiler,[21] Intel Fortran Compiler, Intel VTune Profiler[22] and multiple performance libraries.

Codeplay has released an open-source layer[23][24][25] to allow oneAPI and SYCL/DPC++ to run atop Nvidia GPUs via CUDA.

University of Heidelberg has developed a SYCL/DPC++ implementation for both AMD and Nvidia GPUs.[26]

Huawei released a DPC++ compiler for their Ascend AI Chipset[27]

Fujitsu has created an open-source ARM version of the oneAPI Deep Neural Network Library (oneDNN)[28] for their Fugaku CPU.

References

  1. Fortenberry & Tomov 2022, p. 22.
  2. "Intel Expands its Silicon Portfolio, and oneAPI Software Initiative for Next-Generation HPC" (in en-US). 2019-12-09. https://www.hpcwire.com/2019/12/09/intel-expands-its-silicon-portfolio-and-oneapi-software-initiative-for-next-generation-hpc/. 
  3. "Intel Debuts New GPU – Ponte Vecchio – and Outlines Aspirations for oneAPI" (in en-US). 2019-11-18. https://www.hpcwire.com/2019/11/17/intel-debuts-new-gpu-ponte-vecchio-and-outlines-aspirations-for-oneapi/. 
  4. "SC19: Intel Unveils New GPU Stack, oneAPI Development Effort - ExtremeTech". https://www.extremetech.com/computing/302284-sc19-intel-unveils-new-gpu-stack-oneapi-development-effort. 
  5. Kennedy, Patrick (2018-12-24). "Intel One API to Rule Them All Is Much Needed to Expand TAM" (in en-US). https://www.servethehome.com/intel-one-api-to-rule-them-all-is-much-needed/. 
  6. 6.0 6.1 6.2 "oneAPI Specification". https://www.oneapi.io/spec/. 
  7. "Preparing for the Arrival of Intel's Discrete High-Performance GPUs" (in en-US). 2021-03-23. https://www.hpcwire.com/2021/03/23/preparing-for-the-arrival-of-intels-discrete-high-performance-gpus/. 
  8. "Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL". https://www.apress.com/gp/data-parallel-c-advanced-chapters-just-released/17382670. 
  9. Team, Editorial (2019-12-16). "Heterogeneous Computing Programming: oneAPI and Data Parallel C++" (in en-US). https://insidebigdata.com/2019/12/16/heterogeneous-computing-programming-oneapi-and-data-parallel-c/. 
  10. "The Khronos Group" (in en). 2020-02-11. https://www.khronos.org/news/permalink/intels-one-api-project-incorporates-sycl. 
  11. "Khronos Steps Towards Widespread Deployment of SYCL with Release of SYCL 2020 Provisional Specification" (in en). 2020-06-30. https://www.khronos.org/news/press/khronos-releases-sycl-2020-provisional-specification. 
  12. staff (2020-06-30). "New, Open DPC++ Extensions Complement SYCL and C++" (in en-US). https://insidehpc.com/2020/06/new-open-dpc-extensions-complement-sycl-and-c/. 
  13. "SYCL 2020 Launches with New Name, New Features, and High Ambition" (in en-US). 2021-02-09. https://www.hpcwire.com/2021/02/09/sycl-2020-launches-new-name-new-features/. 
  14. "oneAPI-SRC" (in en). https://github.com/oneapi-src. 
  15. Verheyde 2019-12-08T16:11:19Z, Arne. "Intel Releases Bare-Metal oneAPI Level Zero Specification" (in en). https://www.tomshardware.com/news/intel-releases-bare-metal-oneapi-level-zero-specification. 
  16. "Intel's Compute Runtime Adds oneAPI Level Zero Support - Phoronix". https://www.phoronix.com/scan.php?page=news_item&px=Intel-oneAPI-Level-Zero. 
  17. "Initial Benchmarks With Intel oneAPI Level Zero Performance - Phoronix". https://www.phoronix.com/scan.php?page=article&item=intel-level-zero&num=1. 
  18. "Intel Champions XPU Vision With oneAPI, Data Center GPUs - SDxCentral" (in en-US). SDxCentral. 2020-11-11. https://www.sdxcentral.com/articles/news/intel-champions-xpu-vision-with-oneapi-data-center-gpus/2020/11/. 
  19. "Intel Debuts oneAPI Gold and Provides More Details on GPU Roadmap" (in en-US). 2020-11-11. https://www.hpcwire.com/2020/11/11/intel-debuts-oneapi-gold-and-provides-more-details-on-gpu-roadmap/. 
  20. Moorhead, Patrick. "Intel Announces Gold Release Of OneAPI Toolkits And New Intel Server GPU" (in en). https://www.forbes.com/sites/patrickmoorhead/2020/12/02/intel-announces-gold-release-of-oneapi-toolkits-and-new-intel-server-gpu/. 
  21. "Data Parallel C++ for Cross-Architecture Applications" (in en). https://www.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html. 
  22. "Fix Performance Bottlenecks with Intel® VTune™ Profiler" (in en). https://www.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html. 
  23. "Codeplay Open Sources a Version of DPC++ for Nvidia GPUs" (in en-US). 2020-02-05. https://www.hpcwire.com/2020/02/04/codeplay-open-sources-a-version-of-computecpp-for-nvidia-gpus/. 
  24. "Intel's oneAPI / DPC++ / SYCL Will Run Atop NVIDIA GPUs With Open-Source Layer - Phoronix". https://www.phoronix.com/scan.php?page=news_item&px=Intel-oneAPI-DPC-SYCL-NVIDIA-CU. 
  25. "Codeplay - Codeplay contribution to DPC++ brings SYCL support for NVIDIA GPUs". https://www.codeplay.com/portal/02-03-20-codeplay-contribution-to-dpcpp-brings-sycl-support-for-nvidia-gpus. 
  26. Salter, Jim (2020-09-30). "Intel, Heidelberg University team up to bring Radeon GPU support to AI" (in en-us). https://arstechnica.com/gadgets/2020/09/intel-heidelberg-university-team-up-to-bring-radeon-gpu-support-to-ai/. 
  27. (in en) Extending DPC++ with Support for Huawei Ascend AI Chipset, https://www.youtube.com/watch?v=7foee4_QkbU, retrieved 2021-10-07 
  28. fltech. "A Deep Dive into a Deep Learning Library for the A64FX Fugaku CPU - The Development Story in the Developer's Own Words" (in ja). https://blog.fltech.dev/entry/2020/11/19/fugaku-onednn-deep-dive-en. 

Sources

External links