Hirdetés

Végleges formát öntött az Intel oneAPI

Az 1.0-s specifikáció számos komponensen keresztül kínál kvázi hardverfüggetlen programozást.

Az Intel a CPU-i mellett évek óta egyre többet beszél az FPGA-król, a GPU-król, illetve a specifikus gyorsítókról, gondolva itt például az AI-ra tervezett dizájnokra. A vállalat ezekre a területekre ma már saját rendszereket is kínál, hiszen egyre inkább azt vallják, hogy az egyes feladatok azokon a hardvereken fussanak, amelyeken a legjobb a sebesség, illetve a hatékonyság. Persze nem először fogalmazódott már meg ez az állítás a piacon, ami nem véletlen, mert van benne ráció. Léteznek ugyanis olyan komplex munkafolyamatok, amelyek a CPU-n működnek optimálisan, de bizonyos részfeladatokat érdemes gyorsítókra bízni. Utóbbi szempontból bonyolódnak a dolgok, hiszen a gyorsító maga lehet FPGA, GPU, vagy akár egyedi rendszer, ebből a szempontból a legegyszerűbb példa a gépi tanulás, hiszen ott a feldolgozás nagyjából 95%-a mátrixszorzás, amit nagyon is jól lehet specifikusan erre tervezett lapkával célozni.

Hirdetés

A hardveres rész világos, de kell valami, amivel ezek programozása hatékonyan megoldható, és az Intel koncepciójában itt jön képbe a OneAPI, ami tulajdonképpen egy olyan platform, amivel a kódot egyszer kell megírni, és az végül bármilyen hardveren futtatható, legyen szó CPU-ről, GPU-ról, FPGA-ról, vagy specifikus dizájnt használó gyorsítóról, de leginkább ezek kombinálása lehet kifejezetten érdekes, amivel a rendszerben található, különbözően megtervezett hardverelemek egységesen használhatók ki.


[+]

A oneAPI fő komponense a Data Parallel C++ nevű nyelvvariáns, amivel gyakorlatilag programozhatók az eltérő hardverek, a CPU-któl kezdve a különböző gyorsítókig. Ezzel a kód újrahasznosíthatósága igen magas lehet, miközben a rendszer azért megadja a lehetőséget a hardverspecifikus optimalizálásra is. Maga a Data Parallel C++ a SYCL-re épül, ami a Khronos Group platformfüggetlen absztrakciós rétege. Ez biztosítja azt flexibilis alapot, hogy egyetlen C++ forrásból megoldható legyen maga programfejlesztés.

Mivel az LLVM/Clang-alapú fordítóinfrastruktúra számos függvénykönyvtárhoz kínál egyenes utat, a oneAPI egyéb komponenseket is kínál. Ezek közül a legfontosabb a oneDPL, ami biztosítja a C++ sztenderd függvénykönyvtárral, a Parallel STL-lel, illetve az egyéb kiegészítésekkel való programozást.

A fentieken túl van még pár gépi tanulással kapcsolatos (oneDNN és oneCCL), tudományos munkákhoz (oneDAL), videofeldolgozáshoz (oneVPL), illetve szálszintű párhuzamossághoz (oneTBB) való kiegészítés, de nem hiányoznak a nagy teljesítményű matematikai rutinok sem (oneMKL). Végül lényeges eleme a rendszernek még a Level Zero API, ami gyakorlatilag a oneAPI nyelveinek és függvénykönyvtárainak alacsony szintű rendszerinterfésze.

Az Intel természetesen a oneAPI-t a saját hardvereihez tervezte, de mivel a forráskódja nyílt, így más gyártó rendszereihez is hozzáigazíthatók. Többek között a Codeplay – az Intellel együttműködve – már dolgozik az NVIDIA GPU-ira tervezett implementáción. A CPU-s résszel igazából nem szokott gond lenni, hiszen ott azért az utasításarchitektúrák elég jól dokumentáltak és ismertek, így várhatóan jól fog működni a csomag a konkurens processzorokon, ideértve nem csak az AMD megoldásait, hanem az ARM-ot és az IBM Powert is.

A oneAPI 1.0 specifikációja az alábbi oldalon keresztül érhető el, míg a forráskód a GitHubon férhető hozzá.

Hirdetés

Fotóznál vagy videóznál? Mutatjuk, melyik okostelefon mire való igazán!

PR Vásárlás előtt érdemes megnézni, mit kínálnak az aktuális telefonok, ha igazán ütős képeket vagy profi mozgóképeket szeretnénk készíteni.

  • Kapcsolódó cégek:
  • Intel

Azóta történt

Előzmények