Ikerketa proiektu baten barruan
Probak egiteko
Hurrengo fasean, RTL prozeduren arteko optimizazioak hari bereizietara eramatea ere aurreikusi da, hardware plataformaren ezaugarriak kontuan hartuta. Horren ondoren, funtzioaren barneko kodeari aplikatutako optimizazio intraprozeduralen (IPA) paralelizazioa ezartzeko asmoa dugu, deiaren zehaztapenak kontuan hartu gabe. Momentuz esteka mugatzailea zabor-biltzailea da, eta hari anitzeko moduan exekutatzen ari den bitartean zabor bilketa eragiketak desgaitzen dituen blokeo globala gehitu du (etorkizunean zabor-biltzailea GCC-ren hari anitzeko exekuziorako egokituko da).
Errendimenduaren aldaketak ebaluatzeko, gimple-match.c fitxategia muntatzen duen proba-multzo bat prestatu da, 100 mila kode-lerro baino gehiago eta 1700 funtzio biltzen dituena. Intel Core i5-8250U CPU batekin 4 nukleo fisikoekin eta 8 birtualekin (Hyperthreading) sistema batean egindako probek, Intra Procedural GIMPLE optimizazioen exekuzio-denbora 7tik 4 segundora murriztu zen 2 hari exekutatzen direnean eta 3 segundora 4 exekutatzen direnean. hariak, alegia. Aztertutako muntaketa fasearen abiadura 1.72 eta 2.52 aldiz handitu da, hurrenez hurren. Probak ere erakutsi zuten Hyperthreading-ekin nukleo birtualak erabiltzeak ez duela errendimendua handitzen.
Eraikuntza-denbora orokorra % 10 murriztu zen gutxi gorabehera, baina aurreikuspenen arabera, RTL optimizazioak paralelizatzeak emaitza ukigarriagoak lortzea ahalbidetuko du, fase honek konpilazioan denbora nabarmen gehiago behar baitu. Gutxi gorabehera, RTL paralelizazioaren ondoren, muntaketa-denbora guztira 1.61 aldiz murriztuko da. Horren ondoren, eraikitze-denbora beste % 5-10 murriztea posible izango da IPA optimizazioak paralelizatuz.
Iturria: opennet.ru