As deel van 'n navorsingsprojek
Vir toetsing
In die volgende stadium word daar ook beplan om interprosedurele RTL-optimalisasies in aparte drade te skuif, met inagneming van die eienaardighede van die hardeware-platform. Daarna word beplan om die parallelisering van intra-prosedurele optimaliserings (IPA) wat op die kode binne die funksie toegepas word, te implementeer, ongeag die kenmerke van die oproep. Die beperkende skakel tot dusver is die vullisverwyderaar, wat 'n wΓͺreldwye slot het wat vullisverwydering bedrywighede deaktiveer terwyl dit in multithreaded-modus loop (in die toekoms sal die vullisverwyderaar aangepas word vir GCC multithreading).
Om die verandering in werkverrigting te evalueer, is 'n toetspakket voorberei wat die gimple-match.c-lΓͺer bou, wat meer as 100 duisend reΓ«ls kode en 1700 funksies insluit. Toetse op 'n stelsel met 'n Intel Core i5-8250U SVE met 4 fisiese kerne en 8 virtuele kerne (Hyperthreading) het 'n afname in die uitvoeringstyd van Intra Procedural GIMPLE-optimalisasies van 7 tot 4 sekondes getoon wanneer 2 drade begin word en tot 3 sekondes wanneer begin 4 drade, d.w.s. 'n toename in die spoed van die oorweegse monteerfase met onderskeidelik 1.72 en 2.52 keer is behaal. Toetse het ook getoon dat die gebruik van virtuele kerns met Hyperthreading nie lei tot prestasiewins nie.
Die algehele boutyd is met ongeveer 10% verminder, maar parallelisering van RTL-optimalisasies word voorspel om meer tasbare resultate te behaal, aangesien hierdie stadium aansienlik langer neem om saam te stel. Ongeveer na RTL-parallellisering sal die totale monteertyd met 1.61 keer verminder word. Daarna sal dit moontlik wees om boutyd met nog 5-10% te verminder as gevolg van parallelisering van IPA-optimalisasies.
Bron: opennet.ru