Proġett biex jiżdied l-appoġġ għall-parallelizzazzjoni tal-proċess ta' kumpilazzjoni mal-GCC

Bħala parti minn proġett ta’ riċerka GCC parallel Beda x-xogħol biex tiżdied karatteristika mal-GCC li tippermetti li l-proċess ta 'kumpilazzjoni jinqasam f'diversi ħjut paralleli. Bħalissa, biex ittejjeb il-veloċità tal-bini fuq sistemi multi-core, l-utilità make tuża t-tnedija ta 'proċessi ta' kompilatur separati, li kull wieħed minnhom jibni fajl ta 'kodiċi separat. Il-proġett il-ġdid qed jesperimenta biex jipprovdi parallelizzazzjoni fil-livell tal-kompilatur, li potenzjalment se jtejjeb il-prestazzjoni fuq sistemi multi-core.

Għall-ittestjar ippreparat fergħa separata parallelizing tal-GCC, li toffri parametru ġdid "—param=num-threads=N" biex jiġi stabbilit in-numru ta 'ħjut. Fl-istadju inizjali, implimentajna t-trasferiment ta 'ottimizzazzjonijiet interproċedurali f'ħjut separati, li jissejħu ċiklikament għal kull funzjoni u jistgħu jiġu parallelizzati faċilment. L-operazzjonijiet GIMPLE responsabbli għall-ottimizzazzjonijiet indipendenti mill-ħardwer li jevalwaw l-interazzjoni tal-funzjonijiet ma 'xulxin jitqiegħdu f'ħjut separati.

Fl-istadju li jmiss, huwa ppjanat ukoll li l-ottimizzazzjonijiet RTL interproċedurali jiġu mċaqalqa f'ħjut separati, b'kont meħud tal-karatteristiċi tal-pjattaforma tal-ħardwer. Wara dan, qed nippjanaw li nimplimentaw il-parallelizzazzjoni ta 'ottimizzazzjonijiet intraproċedurali (IPA) applikati għall-kodiċi ġewwa l-funzjoni, irrispettivament mill-ispeċifiċitajiet tas-sejħa. Ir-rabta li tillimita għalissa hija l-kollettur taż-żibel, li żied serratura globali li tiddiżattiva l-operazzjonijiet tal-ġbir taż-żibel waqt li tkun qed taħdem f'modalità b'ħafna kamini (fil-futur il-kollettur taż-żibel se jiġi adattat għal eżekuzzjoni multi-threaded tal-GCC).

Biex tevalwa l-bidliet fil-prestazzjoni, ġiet ippreparata test suite li tiġbor il-fajl gimple-match.c, li jinkludi aktar minn 100 elf linja ta 'kodiċi u 1700 funzjoni. Testijiet fuq sistema b'CPU Intel Core i5-8250U b'4 cores fiżiċi u 8 virtwali (Hyperthreading) urew tnaqqis fil-ħin ta' eżekuzzjoni ta' ottimizzazzjonijiet Intra Procedural GIMPLE minn 7 għal 4 sekondi meta tħaddem 2 ħjut u għal 3 sekondi meta taħdem 4. ħjut, i.e. Żieda fil-veloċità tal-istadju tal-assemblaġġ taħt konsiderazzjoni nkisbet b'1.72 u 2.52 darbiet, rispettivament. It-testijiet urew ukoll li l-użu ta 'cores virtwali b'Hyperthreading ma jwassalx għal żieda fil-prestazzjoni.

Proġett biex jiżdied l-appoġġ għall-parallelizzazzjoni tal-proċess ta' kumpilazzjoni mal-GCC

Il-ħin ġenerali tal-bini tnaqqas b'madwar 10%, iżda skont it-tbassir, il-parallelizzazzjoni tal-ottimizzazzjonijiet RTL se tippermetti li jinkisbu riżultati aktar tanġibbli, peress li dan l-istadju jieħu ħafna aktar ħin matul il-kumpilazzjoni. Bejn wieħed u ieħor wara l-parallelizzazzjoni RTL, il-ħin totali tal-assemblaġġ se jitnaqqas b'1.61 darbiet. Wara dan, ikun possibbli li jitnaqqas il-ħin tal-bini b'5-10% ieħor billi jiġu parallelizzati l-ottimizzazzjonijiet tal-IPA.

Proġett biex jiżdied l-appoġġ għall-parallelizzazzjoni tal-proċess ta' kumpilazzjoni mal-GCC

Sors: opennet.ru

Żid kumment