HPVM - LLVM bāzes kompilators centrālajam procesoram, GPU, FPGA un akseleratoriem

Projekta izstrādātāji LLVM atbrīvots nesen izlaidis Heterogeneous Parallel Virtual Machine kompilatoru (HPVM) 1.0, kuras mērķis vienkāršo heterogēnu sistēmu programmēšanu un nodrošina koda ģenerēšanas rīkus procesoriem, GPU, FPGA un aparatūras paātrinātājiem domēnam specifisks (FGPA un paātrinātāju atbalsts nebija iekļauts versijā 1.0).

Galvenā ideja aiz HPVM ir vienlaicīgi sastādīt izpildāmo programmu vienotu attēlojumu ko var izmantot, lai palaistu dažādas paralēlas aparatūras, tostarp GPU, vektoru instrukcijas, daudzkodolu procesorus, FPGA un dažādas specializētas paātrinātāja mikroshēmas.

Programmēšanu neviendabīgām paralēlām sistēmām sarežģī komponentu (CPU kodolu, vektoru instrukciju, GPU utt.) Klātbūtne sistēmā, kas izmanto dažādus modeļus, lai sasniegtu paralēlismu, dažādas instrukciju kopas un dažādas atmiņas hierarhijas, un katrai sistēmai ir kombinācija šādi komponenti mainās.

Ilinoisas LLVM kompilatoru pētījumu grupa ar prieku paziņo par HPVM atvērtā pirmkoda versiju (versija 1.0). HPVM ir kompilatora ietvara pārorientēšana, kas vērsta uz CPU, GPU un akseleratoriem (šajā laidienā nav iekļauts akseleratora atbalsts) [1]. HPVM izmanto no mērķa neatkarīgu kompilatora IR, kas paplašina LLVM 9.0.0 kompilatora IR ar skaidru hierarhisku datu plūsmas attēlojumu, kas uztver uzdevumus, datus un cauruļvada paralēlismu.

Šī versija ir svarīgs papildinājums mūsu pirmajai versijai (versija 0.5), kas papildina atbalstu lineāras algebras tenzora darbībām, Pytorch un Keras saskarnēm, tuvinājumiem konvolūcijas operatoriem un efektīvu un elastīgu ietvaru aproksimācijas pielāgošanai. 

Jāatzīmē, ka HPVM var sasniegt ievērojamu veiktspējas pieaugumu kopš tā laika eHPVM tulkotāju izvades veiktspēja ir salīdzināma ar OpenCL koda veiktspēju ar roku rakstīts GPU un vektoru skaitļošanas ierīcēm. Atšķirībā no citām sistēmām, HPVM mēģināja apvienot trīs iespējas, lai organizētu neviendabīgu skaitļošanu: no valodas un aparatūras neatkarīga starpposma attēlojums, virtuālo instrukciju kopu arhitektūra (V-ISA) un izpildlaika programmēšana.

Neatkarīgā starpposma pārstāvība (IR) mērķa sistēmā un HPVM izmantotā programmēšanas valoda ir balstīta uz LLVM 9.0 instrukciju starpposma attēlojumu un paplašina to ar hierarhisku datu plūsmas diagrammu, lai aptvertu paralēlismu uzdevuma, datu un skaitļošanas cauruļvadu līmenī.

HPVM starpprodukts ietver arī vektoru instrukcijas un koplietojamo atmiņu. Starpstāvēšanas izmantošanas galvenais mērķis ir efektīva kodu ģenerēšana un optimizācija neviendabīgām sistēmām.

Virtuālo instrukciju kopu arhitektūra (V-ISA) apkopo zema līmeņa aparatūras funkcijas un apvieno dažādas paralēlisma un atmiņas arhitektūras formas, izmantojot tikai pamata vienlaicīguma modeli - datu plūsmas diagrammu. V-ISA ļauj sasniegt pārnesamību starp dažādu veidu paralēlām skaitļošanas iekārtām un ļauj nezaudēt veiktspēju, izmantojot dažādus neviendabīgu sistēmu elementus. Virtuālo ISA var izmantot arī, lai nodrošinātu universālu izpildāmo programmas kodu, kuru var palaist, izmantojot CPU, GPU, FPGA un dažādus paātrinātājus.

Pašreizējā attīstības posmā HPVM piedāvā kodu ģeneratorus, kas spēj tulkot ISA definētos lietojumprogrammu mezglus Virtuāls, lai palaistu, izmantojot NVIDIA GPU (cuDNN un OpenCL), Intel AVX vektoru instrukcijas un daudzkodolu x86 procesorus. }

Izpildes laikā HPVM aprēķina procesam piemēro elastīgas plānošanas politikas, kas tiek ieviestas, pamatojoties gan uz informāciju par programmu (grafisko struktūru), gan arī apkopojot atsevišķus programmas mezglus izpildei uz jebkuru no galamērķa skaitļošanas ierīcēm, kas pieejamas sistēmā.

Salīdzinot ar pirmo priekšskatījuma versiju, HPVM 1.0 ietver atbalstu lineāras algebras tenzora darbībām, Pytorch un Keras saskarnes un aproksimācijas regulēšanas sistēma, kas automātiski izvēlas optimālos tuvinājumus noteiktām tenzora darbībām un izvēlas iestatījumu optimālai veiktspējai.

Visbeidzot, ja vēlaties uzzināt vairāk par šo kompilatoru, Sīkāku informāciju varat pārbaudīt šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.