သုတေသနပရောဂျက်၏ တစ်စိတ်တစ်ပိုင်းအနေဖြင့်
စမ်းသပ်ခြင်းသည်
နောက်အဆင့်တွင်၊ ၎င်းသည် ဟာ့ဒ်ဝဲပလပ်ဖောင်း၏ ဝိသေသလက္ခဏာများကို ထည့်သွင်းစဉ်းစားကာ interprocedural RTL ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းကို သီးခြားအစီအစဥ်များအဖြစ် ရွှေ့ရန် စီစဉ်ထားသည်။ ၎င်းနောက်၊ ကျွန်ုပ်တို့သည် ဖုန်းခေါ်ဆိုမှု၏ အသေးစိတ်အချက်များ မည်သို့ပင်ရှိစေကာမူ လုပ်ဆောင်ချက်အတွင်းရှိ ကုဒ်သို့ အသုံးပြုသည့် လုပ်ငန်းစဉ်အတွင်း ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုများ (IPA) ကို အပြိုင်အကောင်အထည်ဖော်ရန် စီစဉ်ထားသည်။ ယခုအချိန်တွင် ကန့်သတ်လင့်ခ်သည် အမှိုက်စုဆောင်းသူဖြစ်ပြီး၊ ပေါင်းစည်းသည့်မုဒ်တွင် လုပ်ဆောင်နေချိန်တွင် အမှိုက်စုဆောင်းခြင်းလုပ်ငန်းကို ပိတ်ထားသည့် ကမ္ဘာလုံးဆိုင်ရာလော့ခ်ကို ပေါင်းထည့်ထားသည် (အနာဂတ်တွင် အမှိုက်စုဆောင်းသူသည် GCC ၏ Multi-threaded လုပ်ဆောင်ချက်အတွက် အဆင်ပြေသွားလိမ့်မည်)။
စွမ်းဆောင်ရည်ပြောင်းလဲမှုများကို အကဲဖြတ်ရန်အတွက်၊ ကုဒ်လိုင်းပေါင်း 100 ကျော်နှင့် လုပ်ဆောင်ချက်များ 1700 ပါဝင်သော gimple-match.c ဖိုင်ကို စုစည်းထားသည့် စမ်းသပ်မှုအစုံကို ပြင်ဆင်ထားပါသည်။ ရုပ်ပိုင်းဆိုင်ရာ cores 5 ခုနှင့် 8250 virtual (Hyperthreading) ပါရှိသော Intel Core i4-8U CPU ဖြင့် စမ်းသပ်မှုများတွင် Intra Procedural GIMPLE optimizations ၏ လုပ်ဆောင်ချိန်သည် 7 မှ 4 စက္ကန့်မှ 2 စက္ကန့်အထိ နှင့် 3 လည်ပတ်သောအခါ 4 စက္ကန့်အထိ လျော့ကျသွားသည်ကို ပြသခဲ့သည်။ threads, i.e. ထည့်သွင်းစဉ်းစားထားသည့် စည်းဝေးပွဲဇာတ်ခုံ၏ အရှိန်ကို 1.72 နှင့် 2.52 ဆ အသီးသီး ရရှိခဲ့သည်။ Hyperthreading ဖြင့် virtual cores များကိုအသုံးပြုခြင်းသည် စွမ်းဆောင်ရည်တိုးမြှင့်ခြင်းသို့ ဦးတည်ခြင်းမရှိကြောင်း စမ်းသပ်မှုများလည်းပြသခဲ့သည်။
အလုံးစုံတည်ဆောက်ချိန်ကို ခန့်မှန်းခြေအားဖြင့် 10% လျှော့ချထားသော်လည်း ခန့်မှန်းချက်များအရ၊ အပြိုင် RTL ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းက ပိုမိုမြင်သာထင်သာသောရလဒ်များကို ရရှိနိုင်စေမည်ဖြစ်သောကြောင့် ဤအဆင့်သည် စုစည်းမှုအတွင်း အချိန်သိသိသာသာပို၍ကြာပါသည်။ RTL parallelization ပြီးနောက် ခန့်မှန်းခြေအားဖြင့် စုစုပေါင်း တပ်ဆင်ချိန်ကို 1.61 ကြိမ် လျှော့ချပါမည်။ ၎င်းပြီးနောက်၊ IPA ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်ခြင်းဖြင့် တည်ဆောက်ချိန်ကို နောက်ထပ် 5-10% လျှော့ချနိုင်မည်ဖြစ်သည်။
source: opennet.ru