oneAPI (beräkningsacceleration) - oneAPI (compute acceleration)

oneAPI
OneAPI-rgb-3000.png
Förvar github .com /oneapi-src
Operativ system Plattformsoberoende
Plattform Plattformsoberoende
Typ Programvara med öppen källkod för parallell programmering
Hemsida www .oneapi .com

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.

Referenser

externa länkar