Iprojekthi yokongeza inkxaso yokudityaniswa kwenkqubo yokuhlanganiswa kwi-GCC

Njengenxalenye yeprojekthi yophando I-GCC enxuseneyo Umsebenzi sele uqalisile ukongeza inqaku kwi-GCC elivumela inkqubo yokudibanisa ukuba yahlulwe ibe yimisonto emininzi ehambelanayo. Okwangoku, ukwandisa isantya sokwakha kwiinkqubo ezininzi ezingundoqo, i-make utility isebenzisa ukuqaliswa kweenkqubo ezihlukeneyo zokudibanisa, nganye eyakha ifayile yekhowudi eyahlukileyo. Iprojekthi entsha izama ukubonelela ngokuhambelana kwinqanaba lokuhlanganisa, okuya kuphucula ukusebenza kwiinkqubo ezininzi ezingundoqo.

Ukuvavanya ilungisiwe isebe elahlukileyo elingqameneyo le-GCC, elibonelela ngeparameter entsha β€œβ€”param=num-threads=N” ukuseta inani lemisonto. Kwinqanaba lokuqala, siphumeze ukugqithiselwa kolungelelwaniso lwe-interprocedural kwimisonto eyahlukileyo, ebizwa ngokuba yibhayisikile yomsebenzi ngamnye kwaye inokulinganisa ngokulula. Imisebenzi ye-GIMPLE enoxanduva lokulungela okuzimeleyo kwehardware evavanya intsebenziswano yemisebenzi kunye nomnye ibekwe kwimisonto eyahlukileyo.

Kwinqanaba elilandelayo, kucetywa kwakhona ukuhambisa ukulungiswa kwe-RTL ye-interprocedural kwimicu eyahlukileyo, kuthathelwa ingqalelo iimpawu zeqonga le-hardware. Emva koko, siceba ukuphumeza i-parallelization ye-intraprocedural optimizations (IPA) esetyenziswe kwikhowudi ngaphakathi komsebenzi, kungakhathaliseki ukuba zeziphi iinkcukacha zefowuni. Ikhonkco elikhawulelayo okwangoku ngumqokeleli wenkunkuma, oye wongeza ukutshixa kwehlabathi jikelele okukhubaza imisebenzi yokuqokelela inkunkuma ngelixa usebenza kwimodi enemisonto emininzi (kwixesha elizayo umqokeleli wenkunkuma uya kulungelelaniswa kwi-multi-threaded execution ye-GCC).

Ukuvavanya utshintsho kwintsebenzo, i-suite yokuvavanya ilungiselelwe ukuba ihlanganise ifayile ye-gimple-match.c, equka ngaphezu kwe-100 imigca yekhowudi kunye nemisebenzi ye-1700. Uvavanyo kwinkqubo ene-Intel Core i5-8250U CPU ene-4 cores ebonakalayo kunye ne-8 virtual (Hyperthreading) ibonise ukuncipha kwexesha lokwenziwa kwe-Intra Procedural GIMPLE optimizations ukusuka kwi-7 ukuya kwi-4 imizuzwana xa uqhuba imisonto emi-2 ukuya kwimizuzwana emi-3 xa uqhuba i-4. imisonto, o.k. Ukwandiswa kwesantya senqanaba lendibano ephantsi koqwalaselo liphunyezwe ngamaxesha e-1.72 kunye ne-2.52, ngokulandelanayo. Uvavanyo lukwabonise ukuba ukusebenzisa ii-cores ze-virtual kunye ne-Hyperthreading akukhokeleli ekusebenzeni okwandisiweyo.

Iprojekthi yokongeza inkxaso yokudityaniswa kwenkqubo yokuhlanganiswa kwi-GCC

Ixesha lokwakha lilonke lancitshiswa malunga ne-10%, kodwa ngokuhambelana noqikelelo, ukulungelelanisa ukulungelelaniswa kwe-RTL kuya kuvumela ukufezekisa iziphumo ezibonakalayo ngakumbi, ekubeni eli nqanaba lithatha ixesha elide kakhulu ngexesha lokuhlanganiswa. Ngokumalunga ne-RTL parallelization, ixesha lokuhlanganisa lilonke liya kuncitshiswa ngamaxesha e-1.61. Emva koku, kuya kwenzeka ukunciphisa ixesha lokwakha ngenye i-5-10% ngokuhambelana nokulungiswa kwe-IPA.

Iprojekthi yokongeza inkxaso yokudityaniswa kwenkqubo yokuhlanganiswa kwi-GCC

umthombo: opennet.ru

Yongeza izimvo