HPVM 2.0 është publikuar, një kompajler për CPU, GPU, FPGA dhe përshpejtues të harduerit

Projekti LLVM prezantoi lançimin e kompajlerit HPVM 2.0 (Heterogeneous Parallel Virtual Machine), e cila ka si qëllim thjeshtimin e programimit për sisteme heterogjene dhe ofron mjete për gjenerimin e kodit për CPU, GPU, FPGA dhe akseleratorë hardware të bazuar në fusha të caktuara. Kodi i projektit shpërndahet nën licencën Apache 2.0.

Programimi për sisteme heterogjene paralele është i komplikuar për shkak të pranisë në një sistem të komponenteve që përdorin modele të ndryshme për arritjen e paralelizmit (në bërthama CPU, instrukcione vektoriale, GPU etj.), grupe instruksionesh të ndryshme dhe hierarkira memorie të ndryshme. Në çdo sistem përdoret një kombinim i tillë i komponentëve. Ideja kryesore e projektit HPVM është përdorimi i një përfaqësimi të unifikuar të programeve që ekzekutohen paralelisht gjatë kompajlimi, i cili mund të aplikohet për lloje të ndryshme pajisjesh që mbështesin shpërndarjen e llogaritjeve, duke përfshirë GPU, instrukcione vektoriale, procesorë shumëbërthamorë, FPGA dhe çipa-specializuar për akcelerim.

Ndryshe nga sistemet e tjera, nĂ« HPVM u pĂ«rpoqĂ«n tĂ« pĂ«rfshijnĂ« tre mundĂ«si pĂ«r organizimin e llogaritjeve heterogjene — njĂ« pĂ«rfaqĂ«sim tĂ« ndĂ«rmjetĂ«m tĂ« pavarur nga gjuha e programimit dhe hardueri (IR), njĂ« arkitekturĂ« virtuale tĂ« setit tĂ« instrukcioneve (V-ISA) dhe planifikim nĂ« kohĂ« ekzekutimi (runtime scheduling):

  • PĂ«rfaqĂ«simi i ndĂ«rmjetĂ«m HPVM zgjerohet nga pĂ«rfaqĂ«simi i ndĂ«rmjetĂ«m tĂ« instrukcioneve LLVM duke pĂ«rdorur njĂ« graf tĂ« hierarkizuar tĂ« fluksit tĂ« tĂ« dhĂ«nave, duke lejuar pĂ«rfshirjen e paralelizmit nĂ« nivelin e detyrave, tĂ« dhĂ«nave dhe tubacioneve tĂ« llogaritjeve. PĂ«rfaqĂ«simi i ndĂ«rmjetĂ«m HPVM gjithashtu pĂ«rfshin instrukcione vektoriale dhe memorje tĂ« pĂ«rbashkĂ«t. QĂ«llimi kryesor i pĂ«rdorimit tĂ« pĂ«rfaqĂ«simit tĂ« ndĂ«rmjetĂ«m Ă«shtĂ« gjenerimi efektiv i kodit dhe optimizimi pĂ«r sisteme heterogjene.
  • Arkitektura virtuale e setit tĂ« instrukcioneve (V-ISA) abstrahon veçoritĂ« e nivelit tĂ« ulĂ«t tĂ« harduerit dhe unifikon format e ndryshme tĂ« paralelizmit dhe arkitekturave tĂ« memories, duke pĂ«rdorur vetĂ«m modelin bazĂ« tĂ« sigurisĂ« sĂ« paralelizmit — grafi i fluksit tĂ« tĂ« dhĂ«nave. V-ISA lejon qĂ« tĂ« arrihet portabiliteti midis llojeve tĂ« ndryshme tĂ« harduerĂ«ve pĂ«r llogaritje paralele dhe siguron qĂ« tĂ« mos humbasĂ« performancĂ«n kur pĂ«rdoren elemente tĂ« ndryshme tĂ« sistemeve heterogjene. V-ISA gjithashtu mund tĂ« aplikohet pĂ«r shpĂ«rndarjen e njĂ« kodi ekzekutiv univers tĂ« programeve, i cili mund tĂ« ekzekutohet duke angazhuar CPU, GPU, FPGA dhe akseleratorĂ« tĂ« ndryshĂ«m.
  • Politikat fleksibile tĂ« planifikimit tĂ« procesit tĂ« llogaritjes aplikohet gjatĂ« ekzekutimit dhe zbatohen si mbi bazĂ«n e informacionit tĂ« programit (strukturĂ«n e grafit), ashtu edhe pĂ«rmes kompajlimit tĂ« nyjeve tĂ« veçanta tĂ« programit pĂ«r t'u realizuar nĂ« çdo nga pajisjet e llogaritjeve objektivĂ« qĂ« janĂ« nĂ« dispozicion nĂ« sistem.

Generatorët e kodit të zhvilluar nga projekti janë në gjendje të translatojnë nyjet e aplikacioneve, të përkufizuara duke përdorur V-ISA, për t'u realizuar duke përdorur GPU-të NVIDIA (cuDNN dhe OpenCL), instrukcione vektoriale Intel AVX, FPGA dhe CPU shumëbërthamorë x86. Vlen të theksohet se performanca e rezultateve të punës së përkthyesve HPVM është e krahasueshme me kodin e shkruar me dorë në OpenCL për GPU dhe pajisje llogaritëse vektoriale.

Novitete kryesore në HPVM 2.0:

  • ËshtĂ« propozuar njĂ« front-end gjuhĂ«sor Hetero-C++, qĂ« thjeshton paralelizimin e kodit tĂ« aplikacioneve nĂ« gjuhĂ«t C/C++ pĂ«r kompajlim nĂ« HPVM. Hetero-C++ pĂ«rcakton zgjerime pĂ«r paralelizmin nĂ« nivelin e tĂ« dhĂ«nave dhe detyrave hierarkike, tĂ« cilat transformohen nĂ« grafet e fluksit tĂ« HPVM.
  • ËshtĂ« shtuar njĂ« b backend FPGA, duke siguruar mbĂ«shtetje pĂ«r ekzekutimin e kodit nĂ« FPGA tĂ« prodhuara nga Intel. PĂ«r organizimin e ekzekutimit pĂ«rdoret Intel FPGA SDK pĂ«r OpenCL.
  • ËshtĂ« shtuar njĂ« kuadĂ«r DSE (Design Space Exploration), qĂ« pĂ«rfshin optimizime tĂ« kompajluesit dhe mekanizma pĂ«r identifikimin e ngathtimeve pĂ«r tuning automatik tĂ« aplikacioneve pĂ«r njĂ« platformĂ« hardware tĂ« caktuar. Kuadri pĂ«rmban njĂ« model tĂ« gatshĂ«m tĂ« performancĂ«s pĂ«r FPGA nga Intel dhe ofron mundĂ«sinĂ« e lidhjes sĂ« trajtuesve tĂ« vet pĂ«r optimizim pĂ«r çdo pajisje qĂ« mbĂ«shtetet nga HPVM. Optimizimet mund tĂ« aplikohen si nĂ« nivelin e grafit tĂ« fluksit tĂ« dhĂ«nave HPVM, ashtu edhe nĂ« nivelin LLVM.
  • KomponentĂ«t e LLVM janĂ« azhurnuar nĂ« versionin 13.0.
  • ËshtĂ« bĂ«rĂ« njĂ« reorganizim i kodit, i cili synon tĂ« thjeshtojĂ« navigimin nĂ« bazĂ«n e kodit, librarive dhe mjeteve.
  • Infrastruktura pĂ«r testim Ă«shtĂ« pĂ«rmirĂ«suar, janĂ« shtuar teste tĂ« reja pĂ«r komponentĂ«t e ndryshĂ«m tĂ« HPVM.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster