oneAPI (beräkningsacceleration) - oneAPI (compute acceleration)
| Förvar | github |
|---|---|
| Operativ system | Plattformsoberoende |
| Plattform | Plattformsoberoende |
| Typ | Programvara med öppen källkod för parallell programmering |
| Hemsida | www |
oneAPI är en öppen standard för en enhetlig programmeringsgränssnitt som är avsedd att användas över olika beräkningsaccelerator ( coprocessor ) arkitekturer, inklusive grafikprocessorer , AI acceleratorer och fältprogrammerbara grindmatriser . Det är avsett att eliminera behovet av utvecklare att upprätthålla separata kodbaser, flera programmeringsspråk och olika verktyg och arbetsflöden för varje arkitektur.
OneAPI -specifikationen
OneAPI-specifikationen utökar befintliga utvecklarprogrammeringsmodeller för att möjliggöra flera maskinvaruarkitekturer genom ett dataparallell språk, en uppsättning biblioteks-API: er och ett lågnivåhårdvarugränssnitt för att stödja programmering över flera arkitekturer. Det bygger på branschstandarder och tillhandahåller en öppen, plattformsoberoende utvecklarstack.
Data Parallell C ++
DPC ++ är ett öppet, överarkitekturspråk som bygger på ISO C ++ och Khronos Group SYCL- standarder. DPC ++ är en implementering av SYCL med tillägg som föreslås inkluderas i framtida revisioner av SYCL -standarden. Ett exempel på detta är bidraget från enhetligt delat minne, gruppalgoritmer och undergrupper till SYCL 2020.
oneAPI -bibliotek
Uppsättningen av API: er sträcker sig över flera domäner som drar nytta av acceleration, inklusive bibliotek för linjär algebramatematik, djupinlärning, maskininlärning, videobearbetning och andra.
| Bibliotekets namn |
Kort
namn |
Beskrivning |
|---|---|---|
| oneAPI DPC ++ bibliotek | oneDPL | Algoritmer och funktioner för att påskynda DPC ++ kärnprogrammering |
| oneAPI Math Kernel Library | oneMKL | Matematiska rutiner inklusive matrisalgebra, FFT och vektormatematik |
| oneAPI Data Analytics Library | oneDAL | Maskininlärning och dataanalysfunktioner |
| oneAPI Deep Neural Network Library | oneDNN | Neurala nätverksfunktioner för djupinlärningsträning och slutsatser |
| oneAPI Collective Communications Library | enCCL | Kommunikationsmönster för distribuerat djupinlärning |
| oneAPI gängning av byggstenar | en TBB | Tråd- och minneshanteringsmallbibliotek |
| oneAPI videobearbetningsbibliotek | oneVPL | Videokodning, avkodning, omkodning och bearbetning i realtid |
Den källkoden för de flesta implementationer av ovanstående biblioteken finns på GitHub.
Hårdvara abstraktion lager
oneAPI Level Zero, maskinvarugränssnittet på låg nivå, definierar en uppsättning funktioner och tjänster som en hårdvaruaccelerator behöver för att kunna koppla ihop med kompilatorens körtid och andra utvecklarverktyg.
Implementeringar
Intel har släppt oneAPI -verktygssatser för produktionskvalitet som implementerar specifikationen och lägger till CUDA -kodmigrations-, analys- och felsökningsverktyg. Dessa inkluderar Intel oneAPI DPC ++/C ++ Compiler , Intel Fortran Compiler , Intel VTune Profiler och flera prestandabibliotek.
Codeplay har släppt ett lager med öppen källkod så att oneAPI och SYCL/DPC ++ kan köras ovanpå Nvidia- GPU: er via CUDA .
University of Heidelberg har utvecklat en SYCL/DPC ++ - implementering för både AMD och Nvidia GPUS.
Huawei släppte en DPC ++ - kompilator för deras Ascend AI -chipset
Fujitsu har skapat en open-source ARM- version av oneAPI Deep Neural Network Library (oneDNN) för deras Fugaku-CPU.