HPVM 2.0, kompilatur għal CPU, GPU, FPGA u aċċeleraturi tal-ħardwer ippubblikati

Il-proġett LLVM introduċa r-rilaxx tal-kompilatur HPVM 2.0 (Magni Virtwali Parallel Eteroġenu), immirat biex jissimplifika l-ipprogrammar għal sistemi eteroġeni u jipprovdi għodod għall-ġenerazzjoni ta 'kodiċi għal CPUs, GPUs, FPGAs, u aċċeleraturi ta' hardware speċifiċi għad-dominju. Il-kodiċi tal-proġett huwa mqassam taħt il-liċenzja Apache 2.0.

L-ipprogrammar għal sistemi paralleli eteroġeni huwa kkumplikat minħabba l-preżenza f'sistema waħda ta 'komponenti li jużaw mudelli differenti għall-kisba tal-paralleliżmu (qlub tal-CPU, istruzzjonijiet tal-vettur, GPUs, eċċ.), settijiet differenti ta' struzzjonijiet, u ġerarkiji differenti tal-memorja. Kull sistema tuża l-kombinazzjoni tagħha stess ta 'dawn il-komponenti. L-idea ewlenija tal-proġett HPVM hija li tuża fil-kompilazzjoni ta 'rappreżentazzjoni unifikata ta' programmi paralleli li jistgħu jintużaw għal diversi tipi ta 'hardware li jappoġġja kompjuters paralleli, inklużi GPUs, struzzjonijiet tal-vettur, proċessuri multi-core, FPGAs, u diversi speċjalizzati. ċipep aċċeleratur.

B'differenza minn sistemi oħra, HPVM ipprova jgħaqqad tliet possibbiltajiet għall-organizzazzjoni ta' kompjuters eteroġeni - rappreżentazzjoni intermedja (IR), arkitettura ta' sett ta' struzzjonijiet virtwali (V-ISA), u skedar ta' runtime, indipendenti mill-lingwa ta' programmar u t-tagħmir:

  • Rappreżentazzjoni intermedja HPVM testendi r-rappreżentazzjoni intermedja tal-istruzzjonijiet LLVM billi tuża graff tal-fluss tad-dejta ġerarkiku biex jaqbad il-paralleliżmu fil-livell tal-kompiti, id-dejta u l-pipelines komputazzjonali. Ir-rappreżentazzjoni intermedja HPVM tinkludi wkoll struzzjonijiet tal-vettur u memorja kondiviża. L-għan ewlieni ta 'l-użu ta' rappreżentazzjoni intermedja huwa ġenerazzjoni ta 'kodiċi effiċjenti u ottimizzazzjoni għal sistemi eteroġeni.
  • L-Arkitettura tas-Sett ta 'Istruzzjoni Virtwali (V-ISA) tiġbed ħardwer ta' livell baxx u tgħaqqad diversi forom ta 'paralleliżmu u arkitetturi tal-memorja billi tuża biss il-mudell ta' konkorrenza sottostanti, il-Grafika tal-Fluss tad-Data. V-ISA jippermetti li tinkiseb portabbiltà bejn tipi differenti ta 'ħardwer għall-kompjuters paralleli u jagħmilha possibbli li ma titlifx il-prestazzjoni meta jintużaw elementi differenti ta' sistemi eteroġenji. L-ISA virtwali tista' tintuża wkoll biex twassal kodiċi eżekutibbli ta' programm ġeneriku li jista' jaħdem fuq CPUs, GPUs, FPGAs, u aċċeleraturi varji.
  • Il-politiki tal-iskedar tal-proċess tal-kompjuters flessibbli huma applikati waqt ir-runtime u huma implimentati kemm fuq il-bażi ta 'informazzjoni dwar il-programm (struttura tal-graff) kif ukoll billi jiġu kkompilati nodi tal-programm individwali għall-eżekuzzjoni fuq kwalunkwe apparat tal-kompjuters fil-mira disponibbli fis-sistema.

Il-ġeneraturi tal-kodiċi żviluppati mill-proġett huma kapaċi jittraduċu nodi tal-applikazzjoni definiti bl-użu ta 'ISA virtwali għall-eżekuzzjoni bl-użu ta' GPUs NVIDIA (cuDNN u OpenCL), struzzjonijiet tal-vettur Intel AVX, FPGAs, u CPUs x86 multi-core. Huwa nnutat li l-prestazzjoni tar-riżultati tat-tradutturi HPVM hija komparabbli mal-kodiċi OpenCL miktub manwalment għal GPUs u tagħmir tal-kompjuters vettorjali.

Innovazzjonijiet ewlenin ta' HPVM 2.0:

  • Huwa propost il-frontend tal-lingwa Hetero-C++, li jissimplifika l-parallelizzazzjoni tal-kodiċi tal-applikazzjoni C/C++ għall-kumpilazzjoni f'HPVM. Etero-C++ jiddefinixxi l-estensjonijiet għall-paralleliżmu fil-livell tad-dejta u l-kompiti ġerarkiċi li huma mmappjati għal graffs tal-ħajt HPVM.
  • Ġie miżjud backend FPGA biex jappoġġja l-eżekuzzjoni tal-kodiċi fuq FPGA Intel. Biex torganizza l-eżekuzzjoni, jintuża l-Intel FPGA SDK għal OpenCL.
  • Il-qafas DSE (Disinn Space Exploration) ġie miżjud, li jinkludi ottimizzazzjonijiet tal-kompilaturi u mekkaniżmi ta 'skoperta ta' konġestjoni għall-irfinar awtomatikament tal-applikazzjonijiet għal pjattaforma ta 'hardware partikolari. Il-qafas fih mudell ta 'prestazzjoni lest għal FPGA minn Intel u jippermettilek tqabbad il-proċessuri tiegħek stess għall-ottimizzazzjoni għal kwalunkwe apparat appoġġjat minn HPVM. L-ottimizzazzjonijiet jistgħu jiġu applikati kemm fil-livell tal-grafika tal-fluss tad-data HPVM kif ukoll fil-livell LLVM.
  • Komponenti LLVM aġġornati għall-verżjoni 13.0.
  • Il-kodiċi ġie riorganizzat biex jagħmilha aktar faċli biex wieħed jinnaviga permezz tal-codebase, libreriji, u utilitajiet.
  • L-infrastruttura għall-ittestjar ġiet imtejba, ġew miżjuda testijiet ġodda għal diversi komponenti HPVM.

Sors: opennet.ru

Żid kumment