GCC වෙත සම්පාදන ක්‍රියාවලිය සමාන්තරව කිරීම සඳහා සහය එක් කිරීමට ව්‍යාපෘතිය

පර්යේෂණ ව්‍යාපෘතියක කොටසක් ලෙස සමාන්තර GCC සම්පාදන ක්‍රියාවලිය සමාන්තර නූල් කිහිපයකට බෙදීමට ඉඩ සලසන විශේෂාංගයක් GCC වෙත එක් කිරීමට වැඩ ආරම්භ කර ඇත. දැනට, බහු-core පද්ධති මත ගොඩනැගීමේ වේගය වැඩි කිරීම සඳහා, make utility වෙනම compiler processes දියත් කිරීම භාවිතා කරයි, ඒ සෑම එකක්ම වෙනම කේත ගොනුවක් ගොඩනඟයි. නව ව්‍යාපෘතිය සම්පාදක මට්ටමින් සමාන්තරකරණය සැපයීම අත්හදා බලමින් සිටින අතර එමඟින් බහු-core පද්ධතිවල කාර්ය සාධනය වැඩිදියුණු කළ හැකිය.

පරීක්ෂා කිරීම සඳහා සකස් කර ඇත GCC හි වෙනම සමාන්තර ශාඛාවක්, නූල් ගණන සැකසීමට "—param=num-threads=N" නව පරාමිතියක් ලබා දෙයි. ආරම්භක අදියරේදී, අපි එක් එක් ශ්‍රිතය සඳහා චක්‍රීය ලෙස හැඳින්වෙන අතර පහසුවෙන් සමාන්තරගත කළ හැකි වෙනම නූල් බවට අන්තර් ක්‍රියාපටිපාටි ප්‍රශස්තිකරණය මාරු කිරීම ක්‍රියාත්මක කළෙමු. එකිනෙකා සමඟ ශ්‍රිතවල අන්තර්ක්‍රියාකාරිත්වය ඇගයීමට ලක් කරන දෘඩාංග ස්වාධීන ප්‍රශස්තිකරණය සඳහා වගකිව යුතු GIMPLE මෙහෙයුම් වෙනම නූල්වල තබා ඇත.

මීළඟ අදියරේදී, දෘඪාංග වේදිකාවේ ලක්ෂණ සැලකිල්ලට ගනිමින්, අන්තර් ක්‍රියාපටිපාටි RTL ප්‍රශස්තිකරණයන් වෙනම නූල් වලට ගෙන යාමටද සැලසුම් කර ඇත. ඊට පසු, අපි ඇමතුමේ විශේෂතා නොසලකා ශ්‍රිතය තුළ ඇති කේතයට යෙදෙන අභ්‍යන්තර ක්‍රියාදාම ප්‍රශස්තිකරණය (IPA) සමාන්තරකරණය ක්‍රියාත්මක කිරීමට සැලසුම් කරමු. දැනට සීමාකාරී සබැඳිය වන්නේ කසළ එකතු කරන්නා වන අතර, එය බහු-නූල් ආකාරයෙන් ක්‍රියාත්මක වන විට කසළ එකතු කිරීමේ මෙහෙයුම් අක්‍රීය කරන ගෝලීය අගුලක් එක් කර ඇත (අනාගතයේදී කසළ එකතු කරන්නා GCC බහු-නූල් ක්‍රියාත්මක කිරීම සඳහා අනුවර්තනය වනු ඇත).

කාර්ය සාධනයේ වෙනස්කම් ඇගයීම සඳහා, gimple-match.c ගොනුව එකලස් කරන පරීක්ෂණ කට්ටලයක් සකස් කර ඇති අතර, කේත රේඛා 100 කට වඩා සහ කාර්යයන් 1700 ක් ඇතුළත් වේ. Intel Core i5-8250U CPU සමඟ භෞතික මධ්‍ය 4 ක් සහ අතථ්‍ය (Hyperthreading) 8 ක් සහිත පද්ධතියක් පිළිබඳ පරීක්ෂණ මඟින් නූල් 7 ක් ධාවනය කරන විට තත්පර 4 සිට 2 දක්වා සහ 3 ධාවනය වන විට තත්පර 4 දක්වා අභ්‍යන්තර ක්‍රියා පටිපාටි GIMPLE ප්‍රශස්තිකරණය ක්‍රියාත්මක කිරීමේ කාලය අඩුවීමක් පෙන්නුම් කළේය. නූල්, i.e. සලකා බලනු ලබන එකලස් කිරීමේ වේදිකාවේ වේගයේ වැඩි වීමක් පිළිවෙලින් 1.72 සහ 2.52 ගුණයකින් ලබා ගන්නා ලදී. Hyperthreading සමඟ අතථ්‍ය හරයන් භාවිතා කිරීමෙන් කාර්ය සාධනය වැඩි නොවන බව පරීක්ෂණ මගින් පෙන්නුම් කරන ලදී.

GCC වෙත සම්පාදන ක්‍රියාවලිය සමාන්තරව කිරීම සඳහා සහය එක් කිරීමට ව්‍යාපෘතිය

සමස්ත ගොඩනැගීමේ කාලය ආසන්න වශයෙන් 10% කින් අඩු වී ඇත, නමුත් අනාවැකි වලට අනුව, RTL ප්‍රශස්තිකරණය සමාන්තර කිරීම මඟින් වඩාත් ප්‍රත්‍යක්ෂ ප්‍රතිඵල ලබා ගැනීමට ඉඩ සලසයි, මන්ද මෙම අදියර සම්පාදනය කිරීමේදී සැලකිය යුතු ලෙස වැඩි කාලයක් ගත වේ. RTL සමාන්තරකරණයෙන් පසුව, සම්පූර්ණ එකලස් කිරීමේ කාලය 1.61 ගුණයකින් අඩු වේ. මෙයින් පසු, IPA ප්‍රශස්තිකරණය සමාන්තරකරණය කිරීමෙන් තවත් 5-10% කින් ගොඩනැගීමේ කාලය අඩු කිරීමට හැකි වනු ඇත.

GCC වෙත සම්පාදන ක්‍රියාවලිය සමාන්තරව කිරීම සඳහා සහය එක් කිරීමට ව්‍යාපෘතිය

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න