HPVM un compilator bazat pe LLVM pentru CPU, GPU, FPGA și acceleratoare

Dezvoltatorii proiectului LLVM lansat lansând recent compilatorul Heterogeneous Parallel Virtual Machine (HPVM) 1.0, care are ca scop simplifică programarea pentru sisteme eterogene și oferă instrumente de generare de cod pentru CPU, GPU, FPGA și acceleratoare hardware specific domeniului (suportul pentru FGPA și acceleratoare nu a fost inclus în versiunea 1.0).

Ideea principală în spatele HPVM este de a compila o reprezentare unificată a programelor executabile simultan care poate fi folosit pentru a rula pe o varietate de hardware paralel, inclusiv GPU-uri, instrucțiuni vectoriale, procesoare multi-core, FPGA-uri și diverse cipuri de accelerare specializate.

Programarea pentru sisteme paralele eterogene este complicată de prezența într-un sistem de componente (nuclee CPU, instrucțiuni vectoriale, GPU-uri etc.) care utilizează modele diferite pentru a realiza paralelism, seturi de instrucțiuni diferite și ierarhii de memorie diferite, iar fiecare sistem are o combinație de astfel de componente se schimbă.

Illinois LLVM Compiler Research Group este încântat să anunțe lansarea open source a HPVM (versiunea 1.0). HPVM este un cadru de compilare reorientat care vizează procesoare, GPU-uri și acceleratoare (această versiune nu include suportul acceleratorului) [1]. HPVM utilizează un IR compilator independent de țintă care extinde IR compilatorul LLVM 9.0.0 cu o reprezentare ierarhică explicită a fluxului de date care captează sarcini, date și paralelismul conductelor.

Această versiune este o adăugare importantă la prima noastră versiune (versiunea 0.5), care adaugă suport pentru operații de tensor de algebră liniară, interfețe Pytorch și Keras, aproximări pentru operatorii de convoluție și un cadru eficient și flexibil pentru ajustarea de aproximare. 

Trebuie remarcat faptul că utilizarea HPVM poate obține câștiguri semnificative de performanță întrucât ePerformanța de ieșire a traducătorilor HPVM este comparabilă cu cea a codului OpenCL scris de mână pentru GPU și dispozitive de calcul vectorial. Spre deosebire de alte sisteme, HPVM a încercat să combine trei posibilități de organizare a calculelor eterogene: reprezentarea intermediară independentă de limbă și hardware, arhitectura setului de instrucțiuni virtuale (V-ISA) și programarea în timp de execuție.

Reprezentarea intermediară independentă (IR) al sistemului țintă iar limbajul de programare utilizat în HPVM se bazează pe reprezentarea intermediară a instrucțiunilor LLVM 9.0 și îl extinde cu un grafic ierarhic al fluxului de date pentru a acoperi paralelismul la nivel de sarcină, date și conducte de calcul.

Intermediarul HPVM include, de asemenea, instrucțiuni vectoriale și memorie partajată. Scopul principal al utilizării reprezentării intermediare este generarea eficientă de coduri și optimizarea sistemelor eterogene.

Arhitectura setului de instrucțiuni virtuale (V-ISA) abstractizează caracteristicile hardware de nivel scăzut și unifică diferite forme de paralelism și arhitecturi de memorie folosind doar modelul de concurență de bază, graficul fluxului de date. V-ISA permite realizarea portabilității între diferite tipuri de echipamente de calcul paralele și permite să nu pierdem performanța atunci când se utilizează diferite elemente ale sistemelor eterogene. ISA virtual poate fi, de asemenea, utilizat pentru a furniza cod de program executabil universal care poate fi rulat folosind CPU, GPU, FPGA și diverse acceleratoare.

În stadiul actual de dezvoltare, HPVM oferă generatoare de cod capabile să traducă nodurile aplicației definite de ISA virtual pentru execuție folosind GPU-uri NVIDIA (cuDNN și OpenCL), instrucțiuni vectoriale Intel AVX și procesoare multi-core x86. }

În timpul execuției, HPVM aplică politici de planificare flexibile pentru procesul de calcul, implementate atât pe baza informațiilor despre program (structura grafică), cât și prin compilarea nodurilor individuale ale programului pentru execuție pe oricare dintre dispozitivele de calcul de destinație disponibile în sistem.

Comparativ cu prima versiune de previzualizare, HPVM 1.0 include suport pentru operații de tensor liniar de algebră, interfețe pentru Pytorch și Keras și un cadru de reglare a aproximării care selectează automat aproximări optime pentru anumite operații tensoriale și selectează o setare pentru performanțe optime.

În cele din urmă, dacă sunteți interesat să aflați mai multe despre acest compilator, Puteți verifica detaliile în următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.