HPVM, egy LLVM fordító CPU-khoz, GPU-khoz, FPGA-khoz és hardvergyorsítókhoz

A projekt nemrég Az LLVM bejelentette a kiadását a fordító új verziója HPVM 2.0 (Heterogén párhuzamos virtuális gép), amelynek célja a rendszerek programozásának egyszerűsítése és eszközöket biztosítanak a tartományspecifikus CPU-k, GPU-k, FPGA-k és hardvergyorsítók kódjának előállításához.

A heterogén párhuzamos rendszerek programozása bonyolult, mivel egy rendszerben olyan komponensek vannak jelen, amelyek különböző modelleket használnak a párhuzamosság eléréséhez (CPU magok, vektorutasítások, GPU-k stb.), eltérő utasításkészletek és eltérő memóriahierarchiák. Mindegyik rendszer ezen összetevők saját kombinációját használja.

A fő ötlet a HPVM projektről a párhuzamosan futtatható programok egységes ábrázolását használja fordításkor, amelyek különböző típusú, párhuzamos számítást támogató hardverekhez használható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.

Más rendszerekkel ellentétben, A HPVM három lehetőséget próbált kombinálni heterogén számítástechnika megszervezéséhez: köztes reprezentáció (IR), virtuális utasításkészlet architektúra (V-ISA) és futásidejű programozás, programozási nyelvtől és hardvertől függetlenül.

A HPVM köztes reprezentáció kibővíti az LLVM utasítások közbenső reprezentációját egy hierarchikus adatfolyam-gráf használatával a párhuzamosság megragadására a feladatok, az adatok és a számítási folyamatok szintjén. A HPVM közbenső reprezentáció vektoros utasításokat és megosztott memóriát is tartalmaz. A köztes reprezentáció használatának fő célja a hatékony kódgenerálás és heterogén rendszerek optimalizálása.

A Virtual Instruction Set Architecture (V-ISA) elvonatkoztatja az alacsony szintű hardvert, és egyesíti a párhuzamosság és a memóriaarchitektúrák különféle formáit, csak az alapul szolgáló párhuzamossági modellt, az adatfolyam-gráfot használva.

A V-ISA lehetővé teszi a hordozhatóságot a különböző hardvertípusok között a párhuzamos számításokhoz, és lehetővé teszi, hogy ne veszítse el a teljesítményt heterogén rendszerek különböző elemeinek használatakor. A Virtual ISA arra is használható, hogy általános program futtatható kódot szállítson, amely CPU-kon, GPU-kon, FPGA-kon és különféle gyorsítókon futtatható.

A rugalmas számítási ütemezési házirendek futás közben kerülnek alkalmazásra, és a programra vonatkozó információk (grafikus struktúra) alapján, valamint egyedi programcsomópontok összeállításával valósulnak meg a rendszerben elérhető bármely célszámítási eszközön történő végrehajtáshoz.

A projekt által kifejlesztett kódgenerátorok képesek lefordítani a virtuális ISA által meghatározott alkalmazáscsomópontokat NVIDIA GPU-kon (cuDNN és ​​OpenCL), Intel AVX vektorutasításokon, FPGA-kon és többmagos x86 CPU-kon. Meg kell jegyezni, hogy a HPVM fordítók kimeneti teljesítménye hasonló a kézzel írt OpenCL-kódhoz a GPU-hoz és a vektoros számítástechnikai eszközökhöz.

A HPVM 2.0 főbb újdonságai

Részéről a bemutatott újdonságok közül Ebben az új verzióban a következők tűnnek ki:

  • A Hetero-C++ nyelvi frontendet javasoljuk, amely leegyszerűsíti az alkalmazáskód párhuzamosítását C/C++ nyelveken a HPVM-ben történő fordításhoz. A Hetero-C++ kiterjesztéseket határoz meg az adatszintű párhuzamossághoz és a HPVM szálgráfokhoz leképező hierarchikus feladatokhoz.
  • Egy FPGA háttérrendszer került hozzáadásra, amely támogatja a kód futtatását Intel FPGA-n. A végrehajtás megszervezéséhez az Intel FPGA SDK for OpenCL használatos.
  • Kiegészült a DSE (Design Space Exploration) keretrendszerrel, amely a fordítóoptimalizálást és a szűk keresztmetszetek észlelési mechanizmusait tartalmazza az alkalmazások automatikus hangolásához egy adott hardverplatformhoz.
  • A keretrendszer egy beépített teljesítménymodellt tartalmaz Intel FPGA-khoz, és lehetővé teszi saját processzorainak csatlakoztatását bármely HPVM-kompatibilis eszköz optimalizálásához.
  • Az optimalizálás mind a HPVM adatfolyam-gráf szintjén, mind az LLVM szintjén alkalmazható.
  • Az LLVM összetevői frissítve a 13.0-s verzióra.
  • A kódot átszervezték, hogy könnyebb legyen navigálni a kódbázisban, a könyvtárakban és a segédprogramokban.
  • Javult a tesztelési infrastruktúra, új tesztekkel egészültek ki a különböző HPVM-komponensekhez.

Végül, Ha többet szeretne megtudni a HPVM-ről, ben ellenőrizheti a részleteket a következő link.


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: AB Internet Networks 2008 SL
  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.