Iphrojekthi yokwengeza ukwesekwa kokuhambisana kwenqubo yokuhlanganisa ku-GCC

Njengengxenye yephrojekthi yocwaningo I-GCC ehambisanayo Umsebenzi usuqalile ukwengeza isici ku-GCC esivumela inqubo yokuhlanganisa ukuthi ihlukaniswe ibe imicu eminingana ehambisanayo. Njengamanje, ukukhulisa isivinini sokwakha kumasistimu we-multi-core, i-make Utility isebenzisa ukwethulwa kwezinqubo ze-compiler ezihlukene, ngayinye eyakha ifayela lekhodi elihlukile. Iphrojekthi entsha izama ukunikeza ukufanisa ezingeni lokuhlanganisa, okungase kube namandla okuthuthukisa ukusebenza kumasistimu anezingqikithi eziningi.

Okokuhlola ilungisiwe igatsha elihlukile elihambisanayo le-GCC, elinikeza ipharamitha entsha β€œβ€”param=num-threads=N” ukuze kusethwe inani lemicu. Esigabeni sokuqala, sisebenzise ukudluliswa kokuthuthukiswa kwe-interprocedural kube imicu ehlukene, ebizwa ngomjikelezo womsebenzi ngamunye futhi engafaniswa kalula. Imisebenzi ye-GIMPLE ebophezelekile ekuthuthukisweni okuzimele kwezingxenyekazi zekhompuyutha ezihlola ukusebenzisana kwemisebenzi enye kwenye ibekwe emiculweni ehlukene.

Esigabeni esilandelayo, kuphinde kuhlelwe ukuhambisa ukulungiselelwa kwe-RTL kwe-interprocedural kube imicu ehlukene, kucatshangelwa izici zeplathifomu yehadiwe. Ngemva kwalokho, sihlela ukusebenzisa parallelization of intraprocedural optimizations (IPA) esetshenziswa kukhodi engaphakathi komsebenzi, ngokunganaki imininingwane yocingo. Isixhumanisi esinqunyelwe okwamanje singumqoqi wezibi, esingeze isikhiya somhlaba wonke esikhubaza imisebenzi yokuqoqwa kukadoti ngenkathi sisebenza ngemodi enezintambo eziningi (ngokuzayo umqoqi kadoti uzolungiselelwa ukukhishwa kwe-GCC enezintambo eziningi).

Ukuze uhlole izinguquko ekusebenzeni, kulungiselelwe i-suite yokuhlola ehlanganisa ifayela le-gimple-match.c, elihlanganisa imigqa yekhodi engaphezu kwezinkulungwane eziyi-100 nemisebenzi engu-1700. Ukuhlolwa ohlelweni olune-Intel Core i5-8250U CPU enama-core cores angu-4 kanye ne-virtual engu-8 (Hyperthreading) kubonise ukwehla kwesikhathi sokwenziwa kwe-Intra Procedural GIMPLE optimizations ukusuka kumasekhondi angu-7 kuye kwayi-4 lapho kusetshenziswa imicu emi-2 ukuya kumasekhondi angu-3 lapho kusetshenziswa okungu-4. imicu, i.e. Ukwanda kwejubane lesiteji somhlangano esicatshangelwayo kufinyelelwe izikhathi ezingu-1.72 nezingu-2.52, ngokulandelana. Ukuhlolwa kuphinde kwabonisa ukuthi ukusebenzisa ama-virtual cores nge-Hyperthreading akuholeli ekusebenzeni okukhuphukile.

Iphrojekthi yokwengeza ukwesekwa kokuhambisana kwenqubo yokuhlanganisa ku-GCC

Isikhathi sokwakha sisonke sehliswe cishe ngo-10%, kodwa ngokusho kwezibikezelo, ukulungiselelwa kwe-RTL okuhambisanayo kuzovumela ukuzuza imiphumela ebonakalayo kakhudlwana, njengoba lesi sigaba sithatha isikhathi esiningi kakhulu ngesikhathi sokuhlanganiswa. Cishe ngemva kokulinganisa kwe-RTL, isikhathi sokuhlanganisa esiphelele sizoncishiswa izikhathi ezingu-1.61. Ngemuva kwalokhu, kuzokwazi ukunciphisa isikhathi sokwakha ngomunye u-5-10% ngokuhambisana nokulungiselelwa kwe-IPA.

Iphrojekthi yokwengeza ukwesekwa kokuhambisana kwenqubo yokuhlanganisa ku-GCC

Source: opennet.ru

Engeza amazwana