oneAPI és un estàndard obert, adoptat per Intel, per a una interfície de programació d'aplicacions (API) unificada destinada a utilitzar-se en diferents arquitectures d'acceleradors (coprocessadors), incloses les GPU, acceleradors d'IA i matrius de portes programables en camp. Es pretén eliminar la necessitat que els desenvolupadors mantinguin bases de codi separades, diversos llenguatges de programació, eines i fluxos de treball per a cada arquitectura.
oneAPI competeix amb altres piles de computació de GPU: CUDA de Nvidia i ROCm d'AMD.
Especificació L'especificació oneAPI amplia els models de programació de desenvolupadors existents per habilitar múltiples arquitectures de maquinari mitjançant un llenguatge paral·lel de dades, un conjunt d'API de biblioteca i una interfície de maquinari de baix nivell per donar suport a la programació entre arquitectures. Es basa en els estàndards de la indústria i proporciona una pila de desenvolupadors oberta i multiplataforma.
Dades paral·lel C++ DPC++ és una implementació de llenguatge de programació de oneAPI, construïda sobre els estàndards ISO C++ i Khronos Group SYCL. DPC++ és una implementació de SYCL amb extensions que es proposen per incloure'ls en futures revisions de l'estàndard SYCL, que inclouen: memòria compartida unificada, algorismes de grup i subgrups.
Biblioteques El conjunt d'API abasta diversos dominis, incloses biblioteques per a àlgebra lineal, aprenentatge profund, aprenentatge automàtic, processament de vídeo i altres. Nom de la bibliotecaCurt NomDescripcióBiblioteca oneAPI DPC++oneDPLAlgorismes i funcions per accelerar la programació del nucli DPC++Biblioteca del nucli matemàtic oneAPIoneMKLRutines matemàtiques que inclouen àlgebra matricial, FFT i matemàtiques vectorialsBiblioteca d'anàlisi de dades oneAPIoneDALFuncions d'aprenentatge automàtic i anàlisi de dadesBiblioteca de xarxa neuronal profunda oneAPIoneDNNLes xarxes neuronals funcionen per a l'entrenament i la inferència d'aprenentatge profundBiblioteca de comunicacions col·lectives oneAPIoneCCLPatrons de comunicació per a l'aprenentatge profund distribuïtOneAPI Threading Building BlocksoneTBBBiblioteca de plantilles de gestió de subprocesos i memòriaBiblioteca de processament de vídeo oneAPIoneVPLCodificació, descodificació, transcodificació i processament de vídeo en temps real El codi font de parts de les biblioteques anteriors està disponible a GitHub.
La documentació oneAPI també enumera l'API "Level Zero" que defineix les interfícies de baix nivell directe a metall i un conjunt de components de traçat de raigs amb les seves pròpies API.
Capa d'abstracció de maquinari oneAPI Level Zero, la interfície de maquinari de baix nivell, defineix un conjunt de capacitats i serveis que un accelerador de maquinari necessita per interactuar amb els temps d'execució del compilador i altres eines de desenvolupament.
Implementacions Intel ha llançat conjunts d'eines de producció oneAPI que implementen l'especificació i afegeixen eines de migració, anàlisi i depuració de codi CUDA. Aquests inclouen el compilador Intel oneAPI DPC++/C++, Intel Fortran Compiler, Intel VTune Profiler i diverses biblioteques de rendiment.
Codeplay ha llançat una capa de codi obert per permetre que oneAPI i SYCL/DPC++ s'executin sobre les GPU Nvidia mitjançant CUDA.
La Universitat de Heidelberg ha desenvolupat una implementació SYCL/DPC++ per a les GPU AMD i Nvidia.
Huawei va llançar un compilador DPC++ per al seu chipset Ascend AI.
Fujitsu ha creat una versió ARM de codi obert de la biblioteca de xarxa neuronal profunda oneAPI (oneDNN) per a la seva CPU Fugaku.
Unified Acceleration Foundation (UXL) i el futur d'oneAPI Unified Acceleration Foundation (UXL) és un nou consorci tecnològic que treballa en la continuïtat de la iniciativa OneAPI, amb l'objectiu de crear un nou ecosistema de programari accelerador d'estàndards oberts, estàndards oberts relacionats i projectes d'especificació a través de grups de treball i grups d'interès especial (SIG). L'objectiu competirà amb el CUDA de Nvidia. Les principals empreses que hi ha darrere són Intel, Google, ARM, Qualcomm, Samsung, Imagination i VMware.
Referències
Categoria:API