HPVM 2.0, compiler for CPU, GPU, FPGA kunye hardware accelerators ipapashwe

Iprojekthi ye-LLVM yazisa ukukhutshwa kwe-HPVM 2.0 (i-Heterogeneous Parallel Virtual Machine compiler), ejolise ekwenzeni lula inkqubo yeenkqubo ezahlukeneyo kunye nokubonelela ngezixhobo zokuvelisa ikhowudi yee-CPU, ii-GPU, ii-FPGA, kunye ne-domain-specific hardware accelerators. Ikhowudi yeprojekthi ihanjiswa phantsi kwelayisensi ye-Apache 2.0.

Iprogramu ye-heterogeneous parallel systems iyinkimbinkimbi ngenxa yobukho kwinkqubo enye yamacandelo asebenzisa iimodeli ezahlukeneyo zokuphumeza ukuhambelana (ii-CPU cores, imiyalelo ye-vector, ii-GPUs, njl.), iiseti ezahlukeneyo zemiyalelo, kunye neendlela ezahlukeneyo zeememori. Inkqubo nganye isebenzisa indibaniselwano yayo yala malungu. Owona mbono uphambili weprojekthi ye-HPVM kukusebenzisa ekuqulunqeni ukumelwa okumanyeneyo kweenkqubo ezifanayo ezinokuthi zisetyenziswe kwiindidi ezahlukeneyo zehardware exhasa i-computing efanayo, kubandakanya ii-GPUs, imiyalelo ye-vector, i-multi-core processors, i-FPGAs, kunye neengcali ezahlukeneyo. iitshiphusi ze-accelerator.

Ngokungafaniyo nezinye iinkqubo, i-HPVM yazama ukudibanisa izinto ezintathu ezinokwenzeka zokuququzelela i-computing ene-heterogeneous - i-intermediate representation (IR), i-architecture ye-virtual instruction set architecture (V-ISA), kunye ne-runtime scheduling, ezimeleyo kulwimi lweprogram kunye nezixhobo:

  • Ukumelwa okuphakathi I-HPVM yandisa ukumelwa okuphakathi kwemiyalelo ye-LLVM ngokusebenzisa i-hierarchical data flow graph ukubamba ukuhambelana kwinqanaba lemisebenzi, idatha, kunye nemibhobho yokubala. Umelo oluphakathi lwe-HPVM lukwabandakanya imiyalelo ye-vector kunye nememori ekwabelwana ngayo. Eyona njongo iphambili yokusebenzisa ukumelwa okuphakathi kukuvelisa ikhowudi esebenzayo kunye nokulungiswa kweenkqubo ezahlukeneyo.
  • I-Virtual Instruction Set Architecture (V-ISA) ithatha i-hardware ekwinqanaba elisezantsi kwaye imanyanisa iintlobo ezahlukeneyo zeparallelism kunye nolwakhiwo lwenkumbulo kusetyenziswa kuphela imodeli yeconcurrency esisiseko, iGrafu yokuQulwa kweDatha. I-V-ISA ivumela ukufezekiswa kokuphatheka phakathi kweentlobo ezahlukeneyo ze-hardware ye-parallel computing kwaye yenza kube lula ukuba ungalahlekelwa yintsebenzo xa usebenzisa izinto ezahlukeneyo zeenkqubo ezahlukeneyo. I-ISA eyi-Virtual isenokusetyenziswa ukuhambisa inkqubo yegeneric ikhowudi ephunyezwayo enokuthi isebenze kwii-CPU, ii-GPU, ii-FPGA, kunye nee-accelerator ezahlukeneyo.
  • Imigaqo-nkqubo yokucwangcisa inkqubo yekhompuyutha eguquguqukayo isetyenziswa ngexesha lokusebenza kwaye iphunyezwa zombini ngesiseko solwazi malunga nenkqubo (isakhiwo segrafu) kunye nokuqulunqa iindawo zenkqubo zokwenziwa kuzo naziphi na izixhobo ekujoliswe kuzo zekhompyutha ezikhoyo kwinkqubo.

Iijeneretha zekhowudi eziphuhliswe yiprojekthi ziyakwazi ukuguqulela ii-nodes zesicelo ezichazwe kusetyenziswa i-ISA ebonakalayo yokuphunyezwa usebenzisa i-NVIDIA GPUs (i-cuDNN kunye ne-OpenCL), imiyalelo ye-Intel AVX vector, i-FPGAs, kunye ne-multi-core x86 CPUs. Kuqatshelwe ukuba ukusebenza kweziphumo zabaguquleli be-HPVM kuthelekiswa nekhowudi ebhalwe ngesandla ye-OpenCL yee-GPU kunye nezixhobo zekhompyutha zevekhtha.

Iinguqulelo eziphambili zeHPVM 2.0:

  • I-Hetero-C ++ ye-frontend yolwimi iphakanyisiwe, eyenza lula ukuhambelana kwe-C / C ++ ikhowudi yesicelo sokuhlanganiswa kwi-HPVM. I-Hetero-C++ ichaza izandiso zenqanaba ledatha-parallelism kunye nemisebenzi ye-hierarchical efakwe kwiigrafu zemisonto ye-HPVM.
  • Umva we-FPGA wongezwe ukuxhasa ukwenziwa kwekhowudi kwi-Intel FPGA. Ukulungelelanisa ukubulawa, i-Intel FPGA SDK ye-OpenCL isetyenziswa.
  • I-DSE (i-Design Space Exploration) isakhelo songeziwe, esibandakanya ukulungelelaniswa kwe-compiler kunye neendlela zokubona i-bottleneck yokulungiswa ngokuzenzekelayo kwezicelo zeqonga elinikiweyo le-hardware. Isakhelo siqulethe imodeli yokusebenza esele ilungile yeFPGA evela kwi-Intel kwaye ikuvumela ukuba uqhagamshele abaqhubekekisi bakho ukuze ulungiselele nasiphi na isixhobo esixhaswa yi-HPVM. Ukuphucula kunokusetyenziswa zombini kwinqanaba legrafu yedatha ye-HPVM nakwizinga le-LLVM.
  • Amacandelo e-LLVM ahlaziywa kuguqulelo lwe-13.0.
  • Ikhowudi iye yahlengahlengiswa ukwenza kube lula ukuhamba ngekhowudi, amathala eencwadi kunye nezinto eziluncedo.
  • Iziseko zovavanyo ziphuculwe, iimvavanyo ezintsha zongezwa kumacandelo ngamacandelo e-HPVM.

umthombo: opennet.ru

Yongeza izimvo