Tadqiqot loyihasining bir qismi sifatida
Sinov uchun
Keyingi bosqichda, shuningdek, apparat platformasining xususiyatlarini inobatga olgan holda, protseduralararo RTL optimallashtirishni alohida oqimlarga o'tkazish rejalashtirilgan. Shundan so'ng, biz qo'ng'iroqning o'ziga xos xususiyatlaridan qat'i nazar, funktsiya ichidagi kodga qo'llaniladigan intraprotsessual optimallashtirishlarni (IPA) parallellashtirishni amalga oshirishni rejalashtirmoqdamiz. Hozircha cheklovchi havola axlat yig'uvchisidir, u ko'p tarmoqli rejimda ishlayotganda axlat yig'ish operatsiyalarini o'chirib qo'yadigan global qulfni qo'shdi (kelajakda axlat yig'uvchi GCCning ko'p tarmoqli bajarilishi uchun moslashtiriladi).
Ishlashdagi o'zgarishlarni baholash uchun 100 mingdan ortiq kod satri va 1700 funksiyani o'z ichiga olgan gimple-match.c faylini yig'uvchi test to'plami tayyorlandi. 5 ta jismoniy yadroli va 8250 ta virtual (Hyperthreading) Intel Core i4-8U protsessorli tizimda oΚ»tkazilgan testlar GIMPLE ichidagi protsessual optimallashtirishlarning bajarilish vaqti 7 ta ipni ishga tushirishda 4 dan 2 sekundgacha va 3 sekund ishlaganda 4 soniyagacha kamayganligini koΚ»rsatdi. iplar, ya'ni. Ko'rib chiqilayotgan yig'ish bosqichi tezligini mos ravishda 1.72 va 2.52 baravar oshirishga erishildi. Sinovlar shuni ko'rsatdiki, Hyperthreading bilan virtual yadrolardan foydalanish unumdorlikni oshirishga olib kelmaydi.
Qurilishning umumiy vaqti taxminan 10% ga qisqardi, ammo prognozlarga ko'ra, RTL optimallashtirishni parallellashtirish yanada aniq natijalarga erishishga imkon beradi, chunki bu bosqich kompilyatsiya paytida sezilarli darajada ko'proq vaqtni oladi. Taxminan RTL parallelizatsiyasidan so'ng, yig'ishning umumiy vaqti 1.61 martaga qisqaradi. Shundan so'ng, IPA optimallashtirishni parallellashtirish orqali qurilish vaqtini yana 5-10% ga qisqartirish mumkin bo'ladi.
Manba: opennet.ru