Tetikasa hanampiana fanohanana ny fampitoviana ny fizotran'ny fanangonana amin'ny GCC

Ao anatin'ny tetikasa fikarohana Ireo singa mifandraika amin'ny GCC Nanomboka nanampy endri-javatra ho an'ny GCC ny asa izay mamela ny fizotry ny fanangonana ho zaraina ho kofehy mifanandrify maromaro. Amin'izao fotoana izao, mba hampitomboana ny hafainganam-pandehan'ny fananganana amin'ny rafitra multi-core, ny make utility dia mampiasa ny fanombohana ny fizotry ny compiler misaraka, izay samy manangana rakitra code manokana. Ny tetikasa vaovao dia manandrana manome parallelization amin'ny haavon'ny compiler, izay mety hanatsara ny fahombiazan'ny rafitra multi-core.

Ho an'ny fitsapana vonona sampana misaraka mifanitsy amin'ny GCC, izay manolotra mari-pamantarana vaovao β€œβ€”param=num-threads=N” mba hametrahana ny isan'ny kofehy. Tamin'ny dingana voalohany, dia nampihatra ny famindrana ny interprocedural optimizations amin'ny kofehy misaraka, izay antsoina hoe cyclically ho an'ny asa tsirairay ary azo ampitahaina mora foana. Ny fiasan'ny GIMPLE tompon'andraikitra amin'ny fanatsarana tsy miankina amin'ny hardware izay manombana ny fifandraisan'ny fiasa amin'ny tsirairay dia napetraka amin'ny kofehy misaraka.

Amin'ny dingana manaraka dia mikasa ny hamindra ny fanatsarana RTL interprocedural amin'ny kofehy misaraka, amin'ny fiheverana ny toetran'ny sehatra hardware. Aorian'izay dia mikasa ny hampihatra ny fampitoviana ny optimizations intraprocedural (IPA) ampiharina amin'ny kaody ao anatin'ny fiasa izahay, na inona na inona manokana momba ny antso. Ny rohy mametra amin'izao fotoana izao dia ny mpanangona fako, izay nanampy hidin-trano maneran-tany izay manakana ny asa fanangonana fako rehefa mandeha amin'ny fomba maro-kofehy (amin'ny ho avy ny mpanangona fako dia hofanina amin'ny famonoana ny GCC amin'ny kofehy maromaro).

Mba hanombanana ny fiovana eo amin'ny zava-bita dia efa nomanina ny andiany fitsapana izay manangona ny rakitra gimple-match.c, izay misy andalana 100 arivo mahery sy fiasa 1700. Ny fitsapana amin'ny rafitra miaraka amin'ny CPU Intel Core i5-8250U miaraka amin'ny cores ara-batana 4 sy virtoaly 8 (Hyperthreading) dia nampiseho fihenan'ny fotoana fanatanterahana ny fanatsarana GIMPLE Intra Procedural avy amin'ny 7 ka hatramin'ny 4 segondra rehefa mihazakazaka kofehy 2 ary hatramin'ny 3 segondra rehefa mihazakazaka 4 kofehy, i.e. Nitombo in-1.72 sy in-2.52 ny fisondrotry ny hafainganam-pandehan'ny dingan'ny fivoriambe nodinihina. Nasehon'ny fitsapana ihany koa fa ny fampiasana cores virtoaly miaraka amin'ny Hyperthreading dia tsy miteraka fahombiazana.

Tetikasa hanampiana fanohanana ny fampitoviana ny fizotran'ny fanangonana amin'ny GCC

Nihena 10% eo ho eo ny fotoana fanamboarana ankapobeny, saingy araka ny vinavina, ny fampitoviana ny fanatsarana RTL dia ahafahana mahazo vokatra azo tsapain-tanana kokoa, satria io dingana io dia mitaky fotoana bebe kokoa mandritra ny fanangonana. Manodidina ny aorian'ny fampitoviana RTL dia hihena in-1.61 ny fitambaran'ny fotoana fivoriambe. Aorian'izany dia azo atao ny mampihena ny fotoana fananganana amin'ny 5-10% hafa amin'ny alΓ lan'ny fampifanarahana ny fanatsarana IPA.

Tetikasa hanampiana fanohanana ny fampitoviana ny fizotran'ny fanangonana amin'ny GCC

Source: opennet.ru

Add a comment