HPVM LLVM oinarritutako konpiladorea CPU, GPU, FPGA eta azeleragailuetarako

Proiektuaren garatzaileak LLVM kaleratu dute duela gutxi kaleratu du Heterogeneous Parallel Virtual Machine konpilatzailea (HPVM) 1.0, helburu duena sistema heterogeneoentzako programazioa erraztu eta kodea sortzeko tresnak eskaintzen ditu CPU, GPU, FPGA eta hardware azeleragailuetarako domeinu espezifikoa (FGPA eta azeleragailuetarako laguntza ez zen 1.0 bertsioan sartu).

Ideia nagusia HPVM atzean programa exekutagarrien irudikapen bateratua aldi berean biltzea da hainbat hardware paralelotan exekutatzeko erabil daiteke, besteak beste, GPUak, argibide bektorialak, core anitzeko prozesadoreak, FPGAak eta azeleragailu espezializatutako hainbat txip barne.

Sistema paralelo heterogeneoentzako programazioa konplikatzen da paralelismoa lortzeko, hainbat instrukzio multzo eta memoria hierarkia desberdinak lortzeko eredu desberdinak erabiltzen dituzten osagai sistema batean (CPU nukleoak, bektorearen jarraibideak, GPUak, etab.), Eta sistema bakoitzak horrelako osagaiak aldatzen ari dira.

Illinois LLVM Compiler Research Group pozik agertu da HPVM kode irekiko bertsioa (1.0 bertsioa) iragarri duelako. HPVM PUZak, GPUak eta azeleragailuak zuzentzen dituen konpilagailu esparrua berrorientatzen duen bertsioa da (bertsio honek ez du azeleragailuaren euskarria barne) [1]. HPVM-k LLVM 9.0.0 IR konpilatzailea hedatzen duen helburuko independentea den IR konpilatzailea erabiltzen du, zereginak, datuak eta kanalizazioen paralelismoa jasotzen dituen datu-fluxuen irudikapen hierarkiko esplizituarekin.

Bertsio hau gure lehen bertsioaren gehigarri garrantzitsua da (0.5 bertsioa), eta horrek gehitzen du algebra linealaren tentsore eragiketetarako, Pytorch eta Keras interfazetarako, konboluzio operadoreentzako hurbilketak eta hurbilketa egokitzeko esparru eraginkor eta malgua. 

Kontuan izan behar da HPVMk etekin handiak lor ditzake gisa eHPVM itzultzaileen irteera errendimendua OpenCL kodearen parekoa da eskuz idatzia GPU eta bektore informatika gailuetarako. Beste sistema batzuek ez bezala, HPVM hiru aukera konbinatzen saiatu zen konputazio heterogeneoa antolatzeko: hizkuntza eta hardwarearekiko independenteak diren bitarteko irudikapena, instrukzio multzo birtualen arkitektura (V-ISA) eta exekuzioko programazioa.

Tarteko irudikapen independentea Xede-sistemaren (IR) eta HPVMn erabiltzen den programazio lengoaia LLVM 9.0 argibideen bitarteko irudikapenean oinarritzen da eta datu fluxu grafiko hierarkiko batekin hedatzen du paralelismoa estaltzeko ataza, datu eta konputazio hodien mailan.

HPVM bitartekoak bektore argibideak eta memoria partekatua ere biltzen ditu. Tarteko irudikapena erabiltzearen helburu nagusia sistema heterogeneoentzako kode sortze eta optimizazio eraginkorra da.

Instrukzio Birtualen Multzoen Arkitekturak (V-ISA) maila baxuko hardwarearen ezaugarriak laburbiltzen ditu eta hainbat paralelismo eta memoria arkitektura modu bateratzen ditu oinarrizko aldiberekotasun eredua soilik erabiliz, datu fluxuen grafikoa. V-ISA-k konputazio paraleloko ekipamendu mota desberdinen artean eramangarritasuna lortzea ahalbidetzen du eta sistema heterogeneoen elementu desberdinak erabiltzean errendimendua ez galtzea ahalbidetzen du. ISA birtuala PUZ, GPU, FPGA eta hainbat azeleragailu erabiliz exekutatu daitekeen programa exekutagarri unibertsaleko kodea emateko ere erabil daiteke.

Gaur egungo garapen fasean, HPVMk ISAk definitutako aplikazio nodoak itzultzeko gai diren kode sortzaileak eskaintzen ditu birtuala NVIDIA GPUak (cuDNN eta OpenCL), Intel AVX bektorearen argibideak eta core anitzeko x86 CPUak erabiliz exekutatzeko. }

Exekuzioan zehar, HPVM-k konputazio-prozesurako antolaketa-politika malguak aplikatzen ditu, bai programari buruzko informazioan oinarrituta (egitura grafikoa), bai sisteman eskuragarri dauden helmugako edozein gailutan exekutatzeko programa-nodo indibidualen bildumaren bidez.

Aurreikusitako lehen bertsioarekin alderatuta, HPVM 1.0-k aljebra linealaren tentsore eragiketetarako euskarria barne hartzen du. interfazeak Pytorch eta Keras-entzat eta gutxi gorabeherako sintonizazio esparrua automatikoki tentsore eragiketa jakin batzuetarako hurbilketa optimoak hautatzen ditu eta errendimendu optimoa lortzeko ezarpenak hautatzen ditu.

Azkenean, konpilatzaile honi buruz gehiago jakiteko interesa baduzu, Xehetasunak ondoko estekan kontsultatu ditzakezu.


Artikuluaren edukia gure printzipioekin bat dator etika editoriala. Akats baten berri emateko egin klik hemen.

Idatzi lehenengo iruzkina

Utzi zure iruzkina

Zure helbide elektronikoa ez da argitaratuko.

*

*

  1. Datuen arduraduna: Miguel Ángel Gatón
  2. Datuen xedea: SPAM kontrolatzea, iruzkinen kudeaketa.
  3. Legitimazioa: Zure baimena
  4. Datuen komunikazioa: datuak ez zaizkie hirugarrenei jakinaraziko legezko betebeharrez izan ezik.
  5. Datuak biltegiratzea: Occentus Networks-ek (EB) ostatatutako datu-basea
  6. Eskubideak: Edonoiz zure informazioa mugatu, berreskuratu eta ezabatu dezakezu.

bool (egia)