Ise agbese lati ṣafikun atilẹyin fun isọdọkan ti ilana akopọ si GCC

Gẹgẹbi apakan ti iṣẹ akanṣe iwadi GCC ti o jọra Iṣẹ ti bẹrẹ lati ṣafikun ẹya kan si GCC ti o fun laaye ilana akopọ lati pin si ọpọlọpọ awọn okun ti o jọra. Lọwọlọwọ, lati mu iyara ikole pọ si lori awọn ọna ṣiṣe-ọpọlọpọ, IwUlO nlo ifilọlẹ ti awọn ilana ikojọpọ lọtọ, ọkọọkan eyiti o kọ faili koodu lọtọ kan. Ise agbese tuntun n ṣe idanwo pẹlu ipese isọdọkan ni ipele alakojọ, eyiti yoo ni ilọsiwaju iṣẹ ṣiṣe lori awọn ọna ṣiṣe-pupọ.

Fun idanwo pese sile Ẹka parallelizing lọtọ ti GCC, eyiti o funni ni paramita tuntun “—param=num-threads=N” lati ṣeto nọmba awọn okun. Ni ipele ibẹrẹ, a ṣe imuse gbigbe awọn iṣapeye interprocedural sinu awọn okun lọtọ, eyiti a pe ni cyclically fun iṣẹ kọọkan ati pe o le ni irọrun ni afiwe. Awọn iṣẹ GIMPLE ti o ni iduro fun awọn iṣapeye olominira hardware ti o ṣe iṣiro ibaraenisepo awọn iṣẹ pẹlu ara wọn ni a gbe sinu awọn okun lọtọ.

Ni ipele atẹle, o tun gbero lati gbe awọn iṣapeye RTL interprocedural sinu awọn okun lọtọ, ni akiyesi awọn abuda ti pẹpẹ ohun elo. Lẹhin iyẹn, a gbero lati ṣe isọdọkan ti awọn iṣapeye intracedural (IPA) ti a lo si koodu inu iṣẹ naa, laibikita awọn pato ti ipe naa. Ọna asopọ aropin fun bayi ni agbasọ idoti, eyiti o ti ṣafikun titiipa agbaye kan ti o mu awọn iṣẹ ṣiṣe ikojọpọ idoti ṣiṣẹ lakoko ti o nṣiṣẹ ni ipo-ọna-ọpọlọpọ (ni ọjọ iwaju oluṣeto idoti yoo ṣe deede fun ipaniyan ti ọpọlọpọ-asapo ti GCC).

Lati ṣe iṣiro awọn ayipada ninu iṣẹ ṣiṣe, a ti pese suite idanwo kan ti o ṣajọ faili gimple-match.c, eyiti o pẹlu diẹ sii ju awọn laini koodu 100 ẹgbẹrun ati awọn iṣẹ 1700. Awọn idanwo lori eto pẹlu Intel Core i5-8250U CPU pẹlu awọn ohun kohun 4 ti ara ati 8 foju (Hyperthreading) fihan idinku ninu akoko ipaniyan ti Awọn iṣapeye Ilana Intra Procedural GIMPLE lati 7 si awọn aaya 4 nigbati o nṣiṣẹ awọn okun 2 ati si awọn aaya 3 nigbati o nṣiṣẹ 4 awon okun, i.e. Ilọsoke iyara ti ipele apejọ labẹ ero ti waye nipasẹ awọn akoko 1.72 ati 2.52, lẹsẹsẹ. Awọn idanwo tun fihan pe lilo awọn ohun kohun foju pẹlu Hyperthreading ko ja si iṣẹ ṣiṣe pọ si.

Ise agbese lati ṣafikun atilẹyin fun isọdọkan ti ilana akopọ si GCC

Akoko kikọ gbogbogbo ti dinku nipasẹ isunmọ 10%, ṣugbọn ni ibamu si awọn asọtẹlẹ, isọdọkan awọn iṣapeye RTL yoo gba laaye iyọrisi awọn abajade ojulowo diẹ sii, nitori ipele yii gba akoko pupọ diẹ sii lakoko iṣakojọpọ. Ni isunmọ lẹhin isọdọkan RTL, akoko apejọ lapapọ yoo dinku nipasẹ awọn akoko 1.61. Lẹhin eyi, yoo ṣee ṣe lati dinku akoko kikọ nipasẹ 5-10% miiran nipa sisọpọ awọn iṣapeye IPA.

Ise agbese lati ṣafikun atilẹyin fun isọdọkan ti ilana akopọ si GCC

orisun: opennet.ru

Fi ọrọìwòye kun