Mradi wa kuongeza usaidizi wa kusawazisha mchakato wa ujumuishaji kwa GCC

Kama sehemu ya mradi wa utafiti Sambamba na GCC Kazi imeanza kuongeza kipengele kwa GCC kinachoruhusu mchakato wa utungaji kugawanywa katika nyuzi kadhaa sambamba. Hivi sasa, ili kuongeza kasi ya ujenzi kwenye mifumo ya msingi nyingi, matumizi ya kutengeneza hutumia uzinduzi wa michakato tofauti ya mkusanyaji, ambayo kila moja huunda faili tofauti ya nambari. Mradi mpya unajaribu kutoa ulinganifu katika kiwango cha mkusanyaji, ambao unaweza kuboresha utendaji kwenye mifumo ya msingi nyingi.

Kwa majaribio tayari tawi tofauti linalolingana la GCC, ambalo hutoa kigezo kipya "-param=num-threads=N" ili kuweka idadi ya nyuzi. Katika hatua ya awali, tulitekeleza uhamishaji wa uboreshaji wa kiutaratibu katika nyuzi tofauti, ambazo huitwa kwa mzunguko kwa kila kazi na zinaweza kusawazishwa kwa urahisi. Uendeshaji wa GIMPLE unaowajibika kwa uboreshaji usiotegemea maunzi ambao hutathmini mwingiliano wa vitendaji kati yao huwekwa katika nyuzi tofauti.

Katika hatua inayofuata, imepangwa pia kuhamisha uboreshaji wa RTL wa kiutaratibu kwenye nyuzi tofauti, kwa kuzingatia sifa za jukwaa la vifaa. Baada ya hapo, tunapanga kutekeleza upatanishi wa uboreshaji wa ndani ya utaratibu (IPA) unaotumika kwa msimbo ulio ndani ya chaguo la kukokotoa, bila kujali maelezo mahususi ya simu. Kiunga kinachozuia kwa sasa ni kikusanya takataka, ambacho kimeongeza kufuli ya kimataifa ambayo inalemaza shughuli za ukusanyaji wa takataka wakati inaendeshwa katika hali ya nyuzi nyingi (katika siku zijazo mtozaji wa takataka atarekebishwa kwa utekelezaji wa GCC wa nyuzi nyingi).

Ili kutathmini mabadiliko katika utendakazi, kikundi cha majaribio kimetayarishwa ambacho hukusanya faili ya gimple-match.c, ambayo inajumuisha zaidi ya mistari elfu 100 ya msimbo na vitendaji 1700. Majaribio kwenye mfumo wenye Intel Core i5-8250U CPU yenye cores 4 za kimwili na 8 virtual (Hyperthreading) yalionyesha kupungua kwa muda wa utekelezaji wa uboreshaji wa Intra Procedural GIMPLE kutoka sekunde 7 hadi 4 wakati wa kuendesha nyuzi 2 na hadi sekunde 3 wakati wa kuendesha 4. nyuzi, i.e. Kuongezeka kwa kasi ya hatua ya mkusanyiko inayozingatiwa ilipatikana kwa mara 1.72 na 2.52, kwa mtiririko huo. Majaribio pia yalionyesha kuwa kutumia cores pepe na Hyperthreading hailetii kuongezeka kwa utendaji.

Mradi wa kuongeza usaidizi wa kusawazisha mchakato wa ujumuishaji kwa GCC

Muda wa jumla wa ujenzi ulipunguzwa kwa takriban 10%, lakini kulingana na utabiri, uboreshaji wa RTL sambamba utaruhusu kufikia matokeo yanayoonekana zaidi, kwani hatua hii inachukua muda zaidi wakati wa ujumuishaji. Takriban baada ya kusawazisha kwa RTL, muda wa jumla wa mkusanyiko utapunguzwa kwa mara 1.61. Baada ya hayo, itawezekana kupunguza muda wa kujenga kwa 5-10% nyingine kwa kusawazisha uboreshaji wa IPA.

Mradi wa kuongeza usaidizi wa kusawazisha mchakato wa ujumuishaji kwa GCC

Chanzo: opennet.ru

Kuongeza maoni