GCCకి సంకలన ప్రక్రియ యొక్క సమాంతరీకరణకు మద్దతుని జోడించే ప్రాజెక్ట్

పరిశోధన ప్రాజెక్ట్‌లో భాగంగా సమాంతర GCC సంకలన ప్రక్రియను అనేక సమాంతర థ్రెడ్‌లుగా విభజించడానికి అనుమతించే లక్షణాన్ని GCCకి జోడించే పని ప్రారంభించబడింది. ప్రస్తుతం, మల్టీ-కోర్ సిస్టమ్‌లపై బిల్డ్ వేగాన్ని పెంచడానికి, మేక్ యుటిలిటీ ప్రత్యేక కంపైలర్ ప్రక్రియల ప్రారంభాన్ని ఉపయోగిస్తుంది, వీటిలో ప్రతి ఒక్కటి ప్రత్యేక కోడ్ ఫైల్‌ను నిర్మిస్తుంది. కొత్త ప్రాజెక్ట్ కంపైలర్ స్థాయిలో సమాంతరీకరణను అందించడంలో ప్రయోగాలు చేస్తోంది, ఇది మల్టీ-కోర్ సిస్టమ్‌లపై పనితీరును సమర్థవంతంగా మెరుగుపరుస్తుంది.

పరీక్ష కోసం సిద్ధం GCC యొక్క ప్రత్యేక సమాంతర శాఖ, ఇది థ్రెడ్‌ల సంఖ్యను సెట్ చేయడానికి “—param=num-threads=N” అనే కొత్త పరామితిని అందిస్తుంది. ప్రారంభ దశలో, మేము ఇంటర్‌ప్రొసెడ్యూరల్ ఆప్టిమైజేషన్‌ల బదిలీని ప్రత్యేక థ్రెడ్‌లుగా అమలు చేసాము, వీటిని ప్రతి ఫంక్షన్‌కు చక్రీయంగా పిలుస్తారు మరియు సులభంగా సమాంతరంగా చేయవచ్చు. ఒకదానితో ఒకటి ఫంక్షన్ల పరస్పర చర్యను అంచనా వేసే హార్డ్‌వేర్-స్వతంత్ర ఆప్టిమైజేషన్‌లకు బాధ్యత వహించే GIMPLE కార్యకలాపాలు ప్రత్యేక థ్రెడ్‌లలో ఉంచబడతాయి.

తదుపరి దశలో, హార్డ్‌వేర్ ప్లాట్‌ఫారమ్ యొక్క లక్షణాలను పరిగణనలోకి తీసుకుని, ఇంటర్‌ప్రొసెడ్యూరల్ RTL ఆప్టిమైజేషన్‌లను ప్రత్యేక థ్రెడ్‌లలోకి తరలించడానికి కూడా ప్రణాళిక చేయబడింది. ఆ తర్వాత, కాల్ యొక్క ప్రత్యేకతలతో సంబంధం లేకుండా, ఫంక్షన్‌లోని కోడ్‌కు వర్తించే ఇంట్రాప్రొసెడ్యూరల్ ఆప్టిమైజేషన్‌ల (IPA) సమాంతరీకరణను అమలు చేయడానికి మేము ప్లాన్ చేస్తున్నాము. ప్రస్తుతానికి పరిమితం చేసే లింక్ చెత్త కలెక్టర్, ఇది బహుళ-థ్రెడ్ మోడ్‌లో నడుస్తున్నప్పుడు చెత్త సేకరణ కార్యకలాపాలను నిలిపివేసే గ్లోబల్ లాక్‌ని జోడించింది (భవిష్యత్తులో చెత్త కలెక్టర్ GCC యొక్క బహుళ-థ్రెడ్ అమలు కోసం స్వీకరించబడుతుంది).

పనితీరులో మార్పులను అంచనా వేయడానికి, gimple-match.c ఫైల్‌ను సమీకరించే ఒక టెస్ట్ సూట్ సిద్ధం చేయబడింది, ఇందులో 100 వేల కంటే ఎక్కువ కోడ్‌లు మరియు 1700 ఫంక్షన్‌లు ఉన్నాయి. 5 ఫిజికల్ కోర్‌లు మరియు 8250 వర్చువల్ (హైపర్‌థ్రెడింగ్)తో ఇంటెల్ కోర్ i4-8U CPU ఉన్న సిస్టమ్‌పై పరీక్షలు 7 థ్రెడ్‌లను నడుపుతున్నప్పుడు ఇంట్రా ప్రొసీడ్యూరల్ GIMPLE ఆప్టిమైజేషన్‌ల అమలు సమయం 4 నుండి 2 సెకన్ల వరకు మరియు 3 నడుస్తున్నప్పుడు 4 సెకన్ల వరకు తగ్గుదలని చూపించింది. థ్రెడ్లు, అనగా. పరిశీలనలో ఉన్న అసెంబ్లీ దశ వేగంలో పెరుగుదల వరుసగా 1.72 మరియు 2.52 సార్లు సాధించబడింది. హైపర్‌థ్రెడింగ్‌తో వర్చువల్ కోర్‌లను ఉపయోగించడం వల్ల పనితీరు పెరగదని పరీక్షలు కూడా చూపించాయి.

GCCకి సంకలన ప్రక్రియ యొక్క సమాంతరీకరణకు మద్దతుని జోడించే ప్రాజెక్ట్

మొత్తం నిర్మాణ సమయం సుమారు 10% తగ్గింది, అయితే అంచనాల ప్రకారం, RTL ఆప్టిమైజేషన్‌లను సమాంతరంగా చేయడం వలన మరింత స్పష్టమైన ఫలితాలను సాధించవచ్చు, ఎందుకంటే ఈ దశ సంకలనం సమయంలో చాలా ఎక్కువ సమయం పడుతుంది. RTL సమాంతరీకరణ తర్వాత, మొత్తం అసెంబ్లీ సమయం 1.61 రెట్లు తగ్గుతుంది. దీని తర్వాత, IPA ఆప్టిమైజేషన్‌లను సమాంతరంగా చేయడం ద్వారా నిర్మాణ సమయాన్ని మరో 5-10% తగ్గించడం సాధ్యమవుతుంది.

GCCకి సంకలన ప్రక్రియ యొక్క సమాంతరీకరణకు మద్దతుని జోడించే ప్రాజెక్ట్

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి