Kadre de esplorprojekto
Por testado
En la sekva etapo, ankaŭ estas planite movi interprocedurajn RTL-optimumojn en apartajn fadenojn, konsiderante la karakterizaĵojn de la aparataro-platformo. Post tio, ni planas efektivigi paraleligon de intraproceduraj optimumigoj (IPA) aplikitaj al la kodo ene de la funkcio, sendepende de la specifaĵoj de la alvoko. La limiga ligilo nuntempe estas la rubkolektilo, kiu aldonis tutmondan seruron kiu malŝaltas rubkolektajn operaciojn dum funkciado en plurfadena reĝimo (en la estonteco la rubkolektilo estos adaptita por plurfadena ekzekuto de GCC).
Por taksi ŝanĝojn en la agado, oni preparis testan suiteon, kiu arigas la dosieron gimple-match.c, kiu inkluzivas pli ol 100 mil liniojn de kodo kaj 1700 5 funkciojn. Testoj sur sistemo kun CPU Intel Core i8250-4U kun 8 fizikaj kernoj kaj 7 virtualaj (Hyperthreading) montris malpliiĝon de la ekzekuttempo de Intra Procedural GIMPLE-optimumoj de 4 ĝis 2 sekundoj dum rulado de 3 fadenoj kaj ĝis 4 sekundoj dum funkciado de 1.72. fadenoj, t.e. Pliiĝo de la rapideco de la konsiderata munta stadio estis atingita respektive 2.52 kaj XNUMX fojojn. Testoj ankaŭ montris, ke uzi virtualajn kernojn kun Hyperthreading ne kondukas al pliigita rendimento.
La ĝenerala konstrutempo estis reduktita je proksimume 10%, sed laŭ prognozoj, paraleligi RTL-optimumojn permesos atingi pli palpeblajn rezultojn, ĉar ĉi tiu etapo prenas signife pli da tempo dum kompilo. Proksimume post paraleligo de RTL, la totala asembleotempo reduktiĝos je 1.61 fojojn. Post ĉi tio, eblos redukti la konstruan tempon je alia 5-10% paraleligante IPA-optimumigojn.
fonto: opennet.ru