oneAPI (aceleración de cómputo)
oneAPI | ||
---|---|---|
Información general | ||
Tipo de programa | Especificación formal para programación paralela | |
Licencia | Software de código abierto | |
Información técnica | ||
Plataformas admitidas | Multiplataforma | |
Enlaces | ||
oneAPI es un estándar abierto, con marca registrada de Intel,[1] para una interfaz de programación de aplicaciones unificada destinada a ser utilizada en diferentes arquitecturas de aceleradores informáticos ( coprocesador ), incluidas GPU, aceleradores de IA y matrices de compuertas programables en campo. Su objetivo es eliminar la necesidad de que los desarrolladores mantengan bases de código separadas, múltiples lenguajes de programación y diferentes herramientas y flujos de trabajo para cada arquitectura.[2][3][4][5]
La especificación oneAPI
[editar]La especificación oneAPI amplía los modelos de programación de desarrolladores existentes para habilitar múltiples arquitecturas de hardware a través de un lenguaje de datos paralelos, un conjunto de API de biblioteca y una interfaz de hardware de bajo nivel para admitir la programación entre arquitecturas. Se basa en los estándares de la industria y proporciona una pila de desarrolladores abierta y multiplataforma.[6][7]
Data Parallel C++
[editar]DPC++[8][9] es un lenguaje abierto de arquitectura cruzada basado en los estándares ISO C++ y Khronos Group SYCL.[10] DPC++ es una implementación de SYCL con extensiones que se proponen para su inclusión en futuras revisiones del estándar SYCL. Un ejemplo de esto es la contribución de la memoria compartida unificada, los algoritmos de grupo y los subgrupos a SYCL 2020.[11][12][13]
Bibliotecas oneAPI
[editar]El conjunto de API[6] abarca varios dominios que se benefician de la aceleración, incluidas bibliotecas para álgebra lineal, aprendizaje profundo, aprendizaje automático, procesamiento de video y otros.
Nombre de la biblioteca | Nombre Corto | Descripción |
---|---|---|
Biblioteca oneAPI DPC++ | oneDPL | Algoritmos y funciones para acelerar la programación del núcleo DPC++ |
Biblioteca del núcleo matemático oneAPI | oneMKL | Rutinas matemáticas que incluyen álgebra matricial, FFT y matemática vectorial |
Biblioteca de análisis de datos oneAPI | oneDAL | Funciones de aprendizaje automático y análisis de datos |
Biblioteca de redes neuronales profundas oneAPI | oneDNN | Funciones de redes neuronales para entrenamiento e inferencia de aprendizaje profundo |
Biblioteca de comunicaciones colectivas oneAPI | oneCCL | Patrones de comunicación para el aprendizaje profundo distribuido |
Bloques de creación de subprocesos de oneAPI | oneTBB | Biblioteca de plantillas de gestión de memoria y creación de subprocesos |
Biblioteca de procesamiento de video oneAPI | oneVPL | Codificación, decodificación, transcodificación y procesamiento de video en tiempo real |
El código fuente de la mayoría de las implementaciones de las bibliotecas anteriores está disponible en GitHub.[14]
La documentación de oneAPI también enumera la API de "Nivel cero" que define las interfaces directas al metal de bajo nivel y un conjunto de componentes de trazado de rayos con sus propias API.[6]
Capa de abstracción de hardware
[editar]oneAPI Level Zero,[15][16][17] la interfaz de hardware de bajo nivel, define un conjunto de capacidades y servicios que un acelerador de hardware necesita para interactuar con los tiempos de ejecución del compilador y otras herramientas de desarrollo.
Implementaciones
[editar]Intel ha lanzado kits de herramientas oneAPI de calidad de producción que implementan la especificación y agregan herramientas de migración, análisis y depuración de código CUDA.[18][19][20] Estos incluyen Intel oneAPI DPC++/C++ Compiler,[21] Intel Fortran Compiler, Intel VTune Profiler[22] y varias bibliotecas de rendimiento.
Codeplay ha lanzado una capa de código abierto[23][24][25] para permitir que oneAPI y SYCL/DPC++ se ejecuten sobre GPU Nvidia a través de CUDA.
La Universidad de Heidelberg ha desarrollado una implementación SYCL/DPC++ para GPU AMD y Nvidia.[26]
Huawei lanzó un compilador DPC++ para su Ascend AI Chipset[27]
Fujitsu ha creado una versión ARM de código abierto de oneAPI Deep Neural Network Library (oneDNN)[28] para su CPU Fugaku.
Referencias
[editar]- ↑ «Fluid Numerics - Trademarks». www.fluidnumerics.com (en inglés estadounidense). Consultado el 12 de abril de 2023.
- ↑ «Intel Expands its Silicon Portfolio, and oneAPI Software Initiative for Next-Generation HPC». HPCwire (en inglés estadounidense). 9 de diciembre de 2019. Consultado el 11 de febrero de 2020.
- ↑ «Intel Debuts New GPU – Ponte Vecchio – and Outlines Aspirations for oneAPI». HPCwire (en inglés estadounidense). 18 de noviembre de 2019. Consultado el 11 de febrero de 2020.
- ↑ «SC19: Intel Unveils New GPU Stack, oneAPI Development Effort - ExtremeTech». www.extremetech.com. Consultado el 11 de febrero de 2020.
- ↑ Kennedy, Patrick (24 de diciembre de 2018). «Intel One API to Rule Them All Is Much Needed to Expand TAM». ServeTheHome (en inglés estadounidense). Consultado el 11 de febrero de 2020.
- ↑ a b c «oneAPI Specification». oneAPI.
- ↑ «Preparing for the Arrival of Intel's Discrete High-Performance GPUs». HPCwire (en inglés estadounidense). 23 de marzo de 2021. Consultado el 29 de marzo de 2021.
- ↑ «Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL». Apress.
- ↑ Team, Editorial (16 de diciembre de 2019). «Heterogeneous Computing Programming: oneAPI and Data Parallel C++». insideBIGDATA (en inglés estadounidense). Consultado el 11 de febrero de 2020.
- ↑ «The Khronos Group». The Khronos Group (en inglés). 11 de febrero de 2020. Consultado el 11 de febrero de 2020.
- ↑ «Khronos Steps Towards Widespread Deployment of SYCL with Release of SYCL 2020 Provisional Specification». The Khronos Group (en inglés). 30 de junio de 2020. Consultado el 6 de julio de 2020.
- ↑ staff (30 de junio de 2020). «New, Open DPC++ Extensions Complement SYCL and C++». insideHPC (en inglés estadounidense). Consultado el 6 de julio de 2020.
- ↑ «SYCL 2020 Launches with New Name, New Features, and High Ambition». HPCwire (en inglés estadounidense). 9 de febrero de 2021. Consultado el 16 de febrero de 2021.
- ↑ «oneAPI-SRC». GitHub (en inglés).
- ↑ Verheyde 2019-12-08T16:11:19Z, Arne. «Intel Releases Bare-Metal oneAPI Level Zero Specification». Tom's Hardware (en inglés). Consultado el 11 de febrero de 2020.
- ↑ «Intel's Compute Runtime Adds oneAPI Level Zero Support - Phoronix». www.phoronix.com. Consultado el 10 de marzo de 2020.
- ↑ «Initial Benchmarks With Intel oneAPI Level Zero Performance - Phoronix». www.phoronix.com. Consultado el 13 de abril de 2020.
- ↑ «Intel Champions XPU Vision With oneAPI, Data Center GPUs - SDxCentral». SDxCentral (en inglés estadounidense). 11 de noviembre de 2020. Consultado el 11 de noviembre de 2020.
- ↑ «Intel Debuts oneAPI Gold and Provides More Details on GPU Roadmap». HPCwire (en inglés estadounidense). 11 de noviembre de 2020. Consultado el 11 de noviembre de 2020.
- ↑ Moorhead, Patrick. «Intel Announces Gold Release Of OneAPI Toolkits And New Intel Server GPU». Forbes (en inglés). Consultado el 8 de diciembre de 2020.
- ↑ «Data Parallel C++ for Cross-Architecture Applications». Intel (en inglés). Consultado el 7 de octubre de 2021.
- ↑ «Fix Performance Bottlenecks with Intel® VTune™ Profiler». Intel (en inglés). Consultado el 7 de octubre de 2021.
- ↑ «Codeplay Open Sources a Version of DPC++ for Nvidia GPUs». HPCwire (en inglés estadounidense). 5 de febrero de 2020. Consultado el 12 de febrero de 2020.
- ↑ «Intel's oneAPI / DPC++ / SYCL Will Run Atop NVIDIA GPUs With Open-Source Layer - Phoronix». www.phoronix.com. Consultado el 6 de diciembre de 2019.
- ↑ «Codeplay - Codeplay contribution to DPC++ brings SYCL support for NVIDIA GPUs». www.codeplay.com. Consultado el 11 de febrero de 2020.
- ↑ Salter, Jim (30 de septiembre de 2020). «Intel, Heidelberg University team up to bring Radeon GPU support to AI». Ars Technica (en inglés estadounidense). Consultado el 7 de octubre de 2021.
- ↑ Extending DPC++ with Support for Huawei Ascend AI Chipset (en inglés), consultado el 7 de octubre de 2021.
- ↑ fltech. «A Deep Dive into a Deep Learning Library for the A64FX Fugaku CPU - The Development Story in the Developer's Own Words». fltech - 富士通研究所の技術ブログ (en japonés). Consultado el 10 de febrero de 2021.
Enlaces externos
[editar]- Sitio web oficial
- Intel oneAPI Product
- Bringing Nvidia GPU support to SYCL developers
- Reinders, James et al. (2021). Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL. Open Access Book. Springer. ISBN 978-1-4842-5574-2. doi:10.1007/978-1-4842-5574-2.
- OneAPI en GitHub.