HPVM 2.0, mkusanyaji wa CPU, GPU, FPGA na vichapuzi vya maunzi iliyochapishwa

Mradi wa LLVM ulitangaza kutolewa kwa HPVM 2.0 (Heterogeneous Parallel Virtual Machine), mkusanyaji unaolenga kurahisisha programu kwa mifumo tofauti na kutoa zana za kuunda nambari za CPU, GPU, FPGA, na vichapuzi vya vifaa maalum vya kikoa. Msimbo wa mradi unasambazwa chini ya leseni ya Apache 2.0.

Upangaji wa mifumo ya usawa tofauti ni ngumu na uwepo wa vipengee katika mfumo huo huo ambao hutumia mifano tofauti ili kufikia usawa (cores za CPU, maagizo ya vekta, GPU, nk), seti tofauti za maagizo na safu tofauti za kumbukumbu. Kila mfumo hutumia mchanganyiko wake wa vipengele hivi. Wazo kuu la mradi wa HPVM ni kutumia uwakilishi wa umoja wa programu zinazotekelezwa sambamba wakati wa kuandaa, ambayo inaweza kutumika kwa aina anuwai za vifaa vinavyounga mkono kompyuta sambamba, pamoja na GPU, maagizo ya vekta, wasindikaji wa msingi, FPGA na. chips mbalimbali maalum za kuongeza kasi.

Tofauti na mifumo mingine, HPVM ilijaribu kuchanganya uwezo tatu wa kuandaa kompyuta tofauti tofauti - lugha ya programu na uwakilishi wa kati unaojitegemea wa vifaa (IR), usanifu wa seti ya maagizo ya kweli (V-ISA) na upangaji wa wakati wa kukimbia:

  • Uwakilishi wa kati wa HPVM huongeza uwakilishi wa kati wa LLVM wa maagizo kwa kutumia chati ya mtiririko wa data ya daraja la juu ili kunasa usawa katika kazi, data na viwango vya bomba. Uwakilishi wa kati wa HPVM pia unajumuisha maagizo ya vekta na kumbukumbu iliyoshirikiwa. Kusudi kuu la kutumia uwakilishi wa kati ni uundaji bora wa msimbo na uboreshaji kwa mifumo tofauti.
  • Usanifu wa Maelekezo ya Mtandaoni (V-ISA) huchota vipengele vya maunzi vya kiwango cha chini na kuunganisha aina mbalimbali za usanifu wa ulinganifu na kumbukumbu kwa kutumia tu modeli ya msingi ya usambambaβ€”grafu ya mtiririko wa data. V-ISA hukuruhusu kufikia kubebeka kati ya aina tofauti za vifaa kwa kompyuta sambamba na inafanya uwezekano wa kutopoteza utendaji wakati wa kutumia vitu tofauti vya mifumo tofauti. ISA Virtual pia inaweza kutumika kutoa msimbo wa programu inayoweza kutekelezeka ambayo inaweza kuendeshwa kwa kutumia CPU, GPU, FPGA na vichapuzi mbalimbali.
  • Sera nyumbufu za kuratibu za mchakato wa kukokotoa hutumika wakati wa utekelezaji na hutekelezwa kulingana na maelezo kuhusu mpango (muundo wa grafu) na kupitia ujumuishaji wa nodi za programu mahususi kwa ajili ya utekelezaji kwenye kifaa chochote lengwa cha kompyuta kinachopatikana kwenye mfumo.

Jenereta za msimbo zilizoundwa na mradi zina uwezo wa kutafsiri nodi za programu zilizofafanuliwa kwa kutumia ISA pepe kwa utekelezaji kwa kutumia NVIDIA GPU (cuDNN na OpenCL), maagizo ya vekta ya Intel AVX, FPGA na CPU za x86 za msingi. Inafahamika kuwa utendakazi wa watafsiri wa HPVM unalinganishwa na msimbo wa OpenCL ulioandikwa kwa mkono kwa GPU na vifaa vya kompyuta vya vekta.

Ubunifu muhimu wa HPVM 2.0:

  • Mazingira ya mbele ya lugha ya Hetero-C++ yamependekezwa, ambayo hurahisisha ulandanishi wa msimbo wa programu katika C/C++ kwa ajili ya kukusanywa katika HPVM. Hetero-C++ inafafanua viendelezi vya usawazishaji wa kiwango cha data na majukumu ya daraja ambayo yanapatana na grafu za nyuzi za HPVM.
  • Nyuma ya FPGA imeongezwa ili kutoa usaidizi kwa utekelezaji wa msimbo kwenye Intel FPGAs. Ili kupanga utekelezaji, Intel FPGA SDK ya OpenCL inatumika.
  • Mfumo wa DSE (Design Space Exploration) umeongezwa, unaojumuisha uboreshaji wa mkusanyaji na mbinu za kutambua vikwazo vya kurekebisha kiotomatiki programu kwa jukwaa fulani la maunzi. Mfumo huu una muundo wa utendakazi uliotengenezwa tayari wa FPGAs kutoka Intel na hurahisisha kuunganisha vichakataji vyako vya uboreshaji kwa vifaa vyovyote vinavyotumika na HPVM. Uboreshaji unaweza kutumika katika viwango vya grafu ya mtiririko wa data wa HPVM na LLVM.
  • Vipengele vya LLVM vimesasishwa hadi toleo la 13.0.
  • Msimbo umepangwa upya ili kurahisisha usogezaji msingi wa msimbo, maktaba na huduma.
  • Miundombinu ya upimaji imeboreshwa, majaribio mapya yameongezwa kwa vipengele mbalimbali vya HPVM.

Chanzo: opennet.ru

Kuongeza maoni