A HPVM egy LLVM-alapú fordító CPU, GPU, FPGA és gyorsítók számára

A projekt fejlesztői Az LLVM megjelent nemrégiben kiadta a Heterogén Párhuzamos Virtuális Gép fordítót (HPVM) 1.0, amelynek célja egyszerűsíti a heterogén rendszerek programozását, és kódgeneráló eszközöket biztosít a CPU, GPU, FPGA és hardveres gyorsítók számára tartományspecifikus (az FGPA és a gyorsítók támogatása nem szerepelt az 1.0 verzióban).

A fő ötlet a HPVM mögött a futtatható programok egyszerû reprezentációjának összeállítása amelyek különféle párhuzamos hardvereken futtathatók, beleértve a GPU-kat, a vektoros utasításokat, a többmagos processzorokat, az FPGA-kat és a különféle speciális gyorsító chipeket.

A heterogén párhuzamos rendszerek programozását bonyolítja az olyan rendszerek (CPU-magok, vektoros utasítások, GPU-k stb.) Jelenléte a rendszerben, amelyek különböző modelleket használnak a párhuzamosság, a különböző utasításkészletek és a különböző memóriahierarchiák elérésére, és mindegyik rendszer kombinációja az ilyen alkatrészek változnak.

Az Illinois LLVM Compiler Research Group örömmel jelentette be a HPVM (1.0 verzió) nyílt forráskódú kiadását. A HPVM a CPU-kat, GPU-kat és gyorsítókat célzó átirányító keretrendszer (ez a kiadás nem tartalmazza a gyorsító támogatását) [1]. A HPVM egy céltól független fordítói IR-t használ, amely kiterjeszti az LLVM 9.0.0 fordító IR-jét egy explicit hierarchikus adatfolyam-reprezentációval, amely rögzíti a feladatokat, az adatokat és a folyamat párhuzamosságot.

Ez a verzió fontos kiegészítés az első verziónkhoz (0.5-ös verzió), amely támogatja a lineáris algebra tenzor műveleteket, a Pytorch és a Keras interfészeket, a közelítéseket a konvolúciós operátorok számára, valamint egy hatékony és rugalmas keretet a közelítés illesztéséhez. 

Meg kell jegyezni, hogy a A HPVM jelentős teljesítménynövekedést érhet el óta eA HPVM fordítók kimeneti teljesítménye összehasonlítható az OpenCL kódéval kézzel írva GPU és vektor számítástechnikai eszközökhöz. Más rendszerektől eltérően a HPVM három lehetőséget próbált kombinálni a heterogén számítástechnika megszervezésében: nyelvtől és hardvertől független köztes ábrázolás, virtuális utasításkészlet architektúra (V-ISA) és futásidejű programozás.

A független köztes reprezentáció (IR) a célrendszer és a HPVM-ben használt programozási nyelv az LLVM 9.0 utasítások köztes ábrázolásán alapul és kiterjeszti egy hierarchikus adatfolyamdiagrammal, hogy lefedje a párhuzamosságot a feladat, az adatok és a számítási folyamatok szintjén.

A HPVM köztes tartalmaz vektoros utasításokat és megosztott memóriát is. A köztes reprezentáció használatának fő célja a hatékony kódgenerálás és optimalizálás heterogén rendszerek számára.

A virtuális utasításkészlet-architektúra (V-ISA) kivonja az alacsony szintű hardver jellemzőit, és egyesíti a párhuzamosság és a memória architektúrájának különféle formáit, csak az alapvető egyidejűségi modell, az adatfolyam-grafikon felhasználásával. A V-ISA lehetővé teszi a különböző típusú párhuzamos számítástechnikai eszközök közötti hordozhatóság elérését, és lehetővé teszi a teljesítmény elvesztését a heterogén rendszerek különböző elemeinek használata esetén. A virtuális ISA használható univerzális futtatható programkód biztosítására is, amely futtatható CPU, GPU, FPGA és különféle gyorsítók segítségével.

A jelenlegi fejlődési szakaszban A HPVM olyan kódgenerátorokat kínál, amelyek képesek lefordítani az ISA által meghatározott alkalmazáscsomópontokat Virtuális az NVIDIA GPU-k (cuDNN és ​​OpenCL), az Intel AVX vektoros utasítások és a többmagos x86-os processzorok használatával. }

A végrehajtás során a HPVM rugalmas ütemezési házirendeket alkalmaz a számítási folyamatra, mind a programra vonatkozó információk alapján (grafikus szerkezet), mind az egyes programcsomópontok összeállításán keresztül végrehajtásra a rendszerben elérhető bármely rendeltetési hely számítási eszközén.

Az első előnézeti verzióhoz képest A HPVM 1.0 támogatja a lineáris algebra tenzor műveletek támogatását, interfészek a Pytorch és a Keras számára, valamint egy közelítő hangolási keretrendszer, amely automatikusan kiválasztja az optimális közelítéseket bizonyos tenzorműveletekhez, és kiválaszt egy beállítást az optimális teljesítmény érdekében.

Végül, ha többet szeretne tudni erről a fordítóról, A részleteket a következő linken ellenőrizheti.


Legyen Ön az első hozzászóló

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.