Pulojekiti yowonjezera chithandizo chofananira ndi njira yophatikizira ku GCC

Monga gawo la ntchito yofufuza Zogwirizana ndi GCC Ntchito yayamba kuwonjezera gawo ku GCC lomwe limalola kuti kuphatikizidwe kugawidwe m'mizere ingapo yofananira. Pakadali pano, kuti muwonjezere liwiro lomanga pamakina amitundu yambiri, wopanga amagwiritsa ntchito kukhazikitsidwa kwa njira zophatikizira zosiyanasiyana, zomwe zimamanga fayilo yosiyana. Pulojekiti yatsopanoyi ikuyesera kupereka kufanana pamlingo wa compiler, zomwe zingathe kupititsa patsogolo ntchito pa machitidwe ambiri.

Kuyesedwa kukonzekera nthambi yofananira ya GCC, yomwe imapereka gawo latsopano "-param=num-threads=N" kuti ikhazikitse kuchuluka kwa ulusi. Pa gawo loyambirira, tidakhazikitsa kusamutsa kwa interprocedural optimizations mu ulusi wosiyana, womwe umatchedwa cyclically pa ntchito iliyonse ndipo ukhoza kufanana mosavuta. Ntchito za GIMPLE zomwe zimayang'anira kukhathamiritsa kodziyimira pawokha kwa Hardware komwe kumawunika momwe ntchito zimagwirira ntchito wina ndi mnzake zimayikidwa mumizere yosiyana.

Pa gawo lotsatira, ikukonzekeranso kusuntha kukhathamiritsa kwa RTL mumitundu yosiyanasiyana, poganizira mawonekedwe a nsanja ya Hardware. Pambuyo pake, tikukonzekera kukhazikitsa parallelization of intraprocedural optimizations (IPA) yomwe ikugwiritsidwa ntchito ku code yomwe ili mkati mwa ntchitoyi, mosasamala kanthu za kuyitanidwa. Ulalo wolepheretsa pakadali pano ndi wotolera zinyalala, womwe wawonjezera loko yapadziko lonse lapansi yomwe imalepheretsa ntchito zosonkhanitsira zinyalala pamene ikuyenda mumitundu yambiri (m'tsogolomu wotolera zinyalala adzasinthidwa kuti awononge GCC).

Kuti muwone kusintha kwa magwiridwe antchito, test suite yakonzedwa yomwe imasonkhanitsa fayilo ya gimple-match.c, yomwe ili ndi mizere yopitilira 100 yama code ndi ntchito 1700. Kuyesa pamakina omwe ali ndi Intel Core i5-8250U CPU yokhala ndi ma cores 4 ndi ma 8 pafupifupi (Hyperthreading) adawonetsa kuchepa kwa nthawi yopangira ma Intra Procedural GIMPLE optimizations kuchokera ku 7 mpaka 4 masekondi mukathamanga ulusi wa 2 mpaka 3 masekondi mukathamanga 4. ulusi, i.e. Kuwonjezeka kwa liwiro la msonkhano womwe ukuganiziridwa kunakwaniritsidwa ndi 1.72 ndi 2.52 nthawi, motsatira. Mayesero adawonetsanso kuti kugwiritsa ntchito ma cores omwe ali ndi Hyperthreading sikupangitsa kuti magwiridwe antchito achuluke.

Pulojekiti yowonjezera chithandizo chofananira ndi njira yophatikizira ku GCC

Nthawi yonse yomanga idachepetsedwa ndi pafupifupi 10%, koma malinga ndi zoneneratu, kukhathamiritsa kwa RTL kumathandizira kupeza zotsatira zowoneka bwino, popeza gawoli limatenga nthawi yochulukirapo pakuphatikiza. Pafupifupi pambuyo pa kufanana kwa RTL, nthawi yonse ya msonkhano idzachepetsedwa ndi nthawi za 1.61. Pambuyo pa izi, kudzakhala kotheka kuchepetsa nthawi yomanga ndi 5-10% ina pofananiza kukhathamiritsa kwa IPA.

Pulojekiti yowonjezera chithandizo chofananira ndi njira yophatikizira ku GCC

Source: opennet.ru

Kuwonjezera ndemanga