Txoj haujlwm ntxiv kev txhawb nqa rau kev sib luag ntawm cov txheej txheem muab tso ua ke rau GCC

Raws li ib feem ntawm txoj haujlwm tshawb fawb Parallel GCC Kev ua haujlwm tau pib ntxiv qhov tshwj xeeb rau GCC uas tso cai rau cov txheej txheem muab tso ua ke kom muab faib ua ntau qhov sib npaug. Tam sim no, txhawm rau txhim kho kev nrawm ntawm ntau lub tshuab ua haujlwm, kev siv hluav taws xob siv qhov kev tso tawm ntawm cov txheej txheem sib cais, txhua tus tsim cov ntaub ntawv sib cais. Txoj haujlwm tshiab no tab tom sim muab kev sib piv ntawm qib compiler, uas yuav muaj peev xwm txhim kho kev ua tau zoo ntawm ntau lub hauv paus system.

Rau kev sim npaj ib tug cais parallelizing ceg ntawm GCC, uas muaj ib tug tshiab parameter "-param=num-threads=N" los teem lub xov tooj ntawm threads. Nyob rau theem pib, peb tau siv qhov kev hloov pauv ntawm interprocedural optimizations rau hauv cov xov sib cais, uas yog hu ua cyclically rau txhua txoj haujlwm thiab tuaj yeem yooj yim parallelized. GIMPLE kev khiav hauj lwm lub luag hauj lwm rau kho vajtse-yooj yim optimizations uas ntsuas kev sib cuam tshuam ntawm kev ua hauj lwm nrog ib leeg yog muab tso rau hauv nyias threads.

Nyob rau theem tom ntej, nws tseem tau npaj kom txav mus rau qhov kev sib koom ua haujlwm RTL kev ua kom zoo rau hauv cov xov sib cais, suav nrog cov yam ntxwv ntawm lub platform hardware. Tom qab ntawd, peb npaj yuav siv parallelization ntawm intraprocedural optimizations (IPA) siv rau cov cai hauv kev ua haujlwm, tsis hais qhov tshwj xeeb ntawm kev hu. Qhov kev txwv txuas rau tam sim no yog tus neeg khaws khib nyiab, uas tau ntxiv lub thoob ntiaj teb kaw uas cuam tshuam cov haujlwm khaws cov khib nyiab thaum khiav hauv ntau txoj xov (nyob rau yav tom ntej tus neeg khaws khib nyiab yuav raug hloov kho rau ntau txoj xov zoo ntawm GCC).

Txhawm rau ntsuas qhov kev hloov pauv hauv kev ua tau zoo, chav ntsuas tau raug npaj los sib sau ua ke cov ntaub ntawv gimple-match.c, uas suav nrog ntau dua 100 txhiab kab ntawm cov lej thiab 1700 lub zog. Kev ntsuam xyuas ntawm ib qho system nrog Intel Core i5-8250U CPU nrog 4 lub cev cores thiab 8 virtual (Hyperthreading) pom qhov txo qis hauv lub sijhawm ua tiav ntawm Intra Procedural GIMPLE optimizations ntawm 7 mus rau 4 vib nas this thaum khiav 2 xov thiab mus rau 3 vib nas this thaum khiav 4. xov, i.e. Kev nce hauv qhov nrawm ntawm theem sib dhos raws li kev txiav txim siab tau ua tiav los ntawm 1.72 thiab 2.52 zaug, feem. Kev ntsuam xyuas kuj tau pom tias siv cov cores virtual nrog Hyperthreading tsis ua rau muaj kev ua tau zoo.

Txoj haujlwm ntxiv kev txhawb nqa rau kev sib luag ntawm cov txheej txheem muab tso ua ke rau GCC

Lub sij hawm tsim tag nrho raug txo los ntawm kwv yees li 10%, tab sis raws li kev kwv yees, kev sib piv RTL kev ua kom zoo dua yuav tso cai rau kev ua tiav cov txiaj ntsig zoo dua, vim tias theem no yuav siv sij hawm ntau ntxiv thaum muab tso ua ke. Kwv yees li tom qab RTL parallelization, tag nrho lub sijhawm sib dhos yuav raug txo los ntawm 1.61 npaug. Tom qab no, nws yuav ua tau kom txo tau lub sij hawm tsim los ntawm lwm 5-10% los ntawm parallelizing IPA optimizations.

Txoj haujlwm ntxiv kev txhawb nqa rau kev sib luag ntawm cov txheej txheem muab tso ua ke rau GCC

Tau qhov twg los: opennet.ru

Ntxiv ib saib