Mradi wa LLVM ulianzisha HPVM 1.0, mkusanyaji wa CPU, GPU, FPGA na viongeza kasi.

Watengenezaji wa mradi wa LLVM wamechapisha kutolewa kwa mkusanyaji wa HPVM 1.0 (Heterogeneous Parallel Virtual Machine), inayolenga kurahisisha programu kwa mifumo tofauti tofauti na kutoa zana za kutengeneza nambari za CPU, GPU, FPGA na vichapuzi vya vifaa maalum vya kikoa (msaada wa FGPA na vichapuzi hazikujumuishwa kwenye toleo la 1.0 ). Msimbo wa mradi unasambazwa chini ya leseni ya Apache 2.0.

Wazo kuu la HPVM ni kutoa uwakilishi wa umoja wa programu zinazoweza kutekelezwa wakati wa kuandaa, ambayo inaweza kutumika kwa utekelezaji kwa kutumia 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 kupanga kompyuta tofauti tofauti: uwakilishi wa kati wa lugha na maunzi, usanifu wa seti ya mafundisho pepe (ISA), na upangaji wa wakati wa utekelezaji.

Uwakilishi wa kati unaotegemea lengwa wa HPVM (IR) hujengwa juu ya uwakilishi wa kati wa LLVM 9.0 wa maagizo na kuupanua kwa grafu ya mpangilio wa data ili kunasa usawazishaji wa kiwango cha kazi, data na 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 seti ya maagizo ya mtandaoni (ISA) huruhusu kubebeka kati ya aina tofauti za maunzi ya kompyuta sambamba na hufanya iwezekanavyo kutopoteza utendakazi wakati wa kutumia vipengele 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.

Katika hatua ya sasa ya maendeleo, HPVM inatoa jenereta za msimbo zenye uwezo wa kutafsiri nodi za programu zilizofafanuliwa kwa kutumia ISA pepe ya utekelezaji kwa kutumia NVIDIA GPUs (cuDNN na OpenCL), maagizo ya vekta ya Intel AVX na CPU za x86 za msingi. Wakati wa utekelezaji, HPVM hutumia sera zinazonyumbulika za kuratibu mchakato wa kukokotoa, unaotekelezwa kulingana na maelezo ya programu (muundo wa grafu) na kupitia kuandaa nodi za programu mahususi kwa ajili ya utekelezaji kwenye kifaa chochote kile cha kukokotoa kinachopatikana kwenye mfumo.

Inabainisha kuwa matumizi ya HPVM yanaweza kufikia ongezeko kubwa la tija. Utendaji wa watafsiri wa HPVM unaweza kulinganishwa na msimbo wa OpenCL ulioandikwa kwa mkono kwa GPU na vifaa vya kompyuta vya vekta.

Ikilinganishwa na toleo la kwanza la onyesho la kukagua, HPVM 1.0 inajumuisha utumiaji wa tensor ya aljebra ya mstari, sehemu za mbele za Pytorch na Keras, makadirio ya waendeshaji wa ubadilishaji, na mfumo wa urekebishaji wa ukadiriaji ambao huchagua kiotomati makadirio bora zaidi ya utendakazi mahususi wa tensor na kuchagua usanidi ambao hutoa utendakazi bora.

Chanzo: opennet.ru

Kuongeza maoni