Muhammad Al-Xorazmiy Nomidagi Toshkent Axborot Texnoligiyalari Universiteti Mustaqil ish Mavzu: Zamonaviy protsessorlarda vector ko’rsatmalaridan foydalanishni o’rganing. Bajardi: Nurmamatov Asliddin Tekshirdi


Download 100.9 Kb.
bet1/6
Sana11.05.2023
Hajmi100.9 Kb.
#1454504
  1   2   3   4   5   6
Bog'liq
k a


Muhammad Al-Xorazmiy Nomidagi Toshkent Axborot Texnoligiyalari Universiteti

Mustaqil ish
Mavzu: Zamonaviy protsessorlarda vector ko’rsatmalaridan foydalanishni o’rganing.


Bajardi: Nurmamatov Asliddin
Tekshirdi:__________________
Guruh: 021-20

Toshkent – 2023
Reja:

  1. Kirish.

  2. Zamonaviy vector arxitikturasi.

  3. Vektorlashtirish muammolari.

  4. Xulosa.

  5. Foydalanilgan Adabyotlar.


1.Kirish
Fizika simulyatsiyalari va ko'rish ilovalari kabi ko'plab yangi ish yuklari yanada murakkab, keng va xilma-xil bo'lib qolgani sababli, ularni oddiy, yagona markaziy protsessor (CPU) tomonidan samarali boshqarib bo'lmaydi. Yuqori unumdorlikka erishish uchun bir nechta protsessor yadrolaridan foydalangan holda ko'p vazifali texnika taklif qilingan bo'lsa-da, u bir nechta iplarni yaratishda yuqori parallelizatsiyadan aziyat chekadi. Bitta ipli ish faoliyatini samarali qo'llab-quvvatlash uchun ko'pincha vektor protsessorlari, grafik ishlov berish birliklari (GPU) va neyron ishlov berish birliklari (NPU) kabi bir nechta tezlatgichlardan foydalaniladi. Xususan, vektor protsessorlari zamonaviy hisoblash texnikasining muhim qismiga aylandi, chunki ular mavjud protsessorlar bilan qattiq integratsiyalashgan holda katta ish yuklarini samarali bajara oladi.
Vektorli ishlov berish - bu bitta buyruqli ko'p ma'lumotlar (SIMD) sxemasidan foydalangan holda ma'lumotlar parallelligidan foydalanadigan parallel hisoblash texnikasi va bu apparatdan foydalanish uchun SIMD-maqsadli apparat va keng ko'lamli dasturiy ta'minotni talab qiladi. Umumiy maqsadlarda foydalanish uchun ham, superkompyuterlar uchun ham zamonaviy protsessor yadrolarining aksariyati vektorli ishlov berish birliklarini o'z ichiga oladi, masalan, oqimli SIMD kengaytmalari (SSE) , kengaytirilgan vektor kengaytmalari (AVX) (Intel protsessorlari uchun) va Neon (ARM protsessorlari uchun) ) . Vektorli ishlov berish birliklari yordamida ilovalarni tezlashtirish uchun dasturchilar yoki kompilyatorlar ushbu mavjud vektor ko'rsatmalar to'plami arxitekturasi (ISA) kengaytmalari yordamida maxsus kodlarni yaratishlari kerak.
Vektorli ishlov berish istiqbolli bo'lib ko'rinsa-da, asosiy muammo dasturlashdir. Ilovalarni vektor birliklaridan samarali foydalanishni tezlashtirish uchun kompilyator yoki dasturchi vektor birligidan etarlicha foydalanish uchun asosiy ma'lumotlar parallelizmining katta miqdorini topishi va parallelizatsiya potentsialini haqiqiy kodga aylantirishi kerak. Vektor kodining sifatini yaxshilash uchun ko'plab usullar taklif qilingan bo'lsa-da, natijada vektor resurslaridan foydalanish hali ham past. Vektor kodini qo'lda optimallashtirish asosiy yondashuv hisoblanadi; ammo, u maqsadli vektor arxitekturalarini chuqur tushunishni talab qiladi va optimallashtirilgan kodlar cheklangan qayta foydalanish imkoniyatiga ega. Avtomatik kompilyator darajasidagi vektorlashtirish vektor kodini qo'lda yaratishga istiqbolli muqobildir, lekin u etarli qamrovni ta'minlay olmaydi, chunki u hatto sintetik ko'rsatkichlarda ham 45-71% looplarni vektorlashtira oladi . Bundan tashqari, ko'plab vektorlashtirilgan ilovalar yuqori ma'lumotlarni tekislash uchun qo'shimcha xarajatlar tufayli kutilganidek, etarli darajada ishlash yutuqlarini ko'rsatmaydi . Ko'pgina vektorizatsiya kutubxonalari umumiy interfeyslarni ta'minlash orqali vektor birliklaridan ham foydalansa ham, ulardan foydalanish hali ham cheklangan.
Ushbu muammoni hal qilish uchun biz vektor birliklaridan protsessor yadrolari ichidagi umumiy arifmetik mantiq birliklariga (ALU) o'xshash oddiy skalyar ishlov berish birliklari sifatida foydalanish usulini taklif qilamiz. Ushbu sxema yordamida oddiy ko'rsatmalar darajasidagi parallelizmdan ichki ALU va vektor birliklari yordamida samaraliroq foydalanish mumkin, ammo vektor birliklarining barcha hisoblash imkoniyatlaridan foydalanilmaydi. Vektor birliklarida skalyar ko'rsatmalarni bajarish uchun hisoblash resurslarining faqat bir qismidan foydalanish orqali ikkita potentsial muammo aniqlanadi. Birinchi muammo - qolgan parallel resurslarning keraksiz hisob-kitoblari tufayli resurs chiqindilari. Buni konfiguratsiya qilinadigan vektor uzunligi yoki maskalangan vektor koʻrsatmalari [ kabi bir nechta vektor maskalash imkoniyatlari yordamida oldini olish mumkin.2, bu kabi nojo'ya ta'sirlarni oldini olish uchun zamonaviy vektor ISAlar tomonidan keng qo'llab-quvvatlanadi.
Ikkinchi muammo - parallel resurslardan to'liq foydalanilmaganda vektor birliklarining past ishlashi. Kam samaradorlikning o'rnini qoplash uchun maqsadli dasturni ichki ALU va vektor birliklarida birgalikda bajarish mumkin. Hamkorlik samaradorligini maksimal darajada oshirish uchun ichki ALU va vektor birliklari o'rtasidagi maqsadli ish yuklarining optimal tushirish nisbati xom ish unumdorligidagi farqga, shuningdek, protsessorlardan vektor birliklariga yuk bo'shatish bo'yicha ish yukiga qarab aniqlanishi kerak. Nisbatni aniq bashorat qilish statik jihatdan deyarli imkonsiz bo'lganligi sababli, profilga asoslangan optimallashtirish algoritmi istiqbolli echimdir.
Ushbu ma'lumotlarga asoslanib, ushbu tadqiqotda Vektorni o'chirish vositasi deb ataladigan hamkorlikda bajarish texnikasi ishlab chiqilgan bo'lib, u murakkab vektorizatsiya usullarisiz ichki ALU va vektor birliklarida skalyar dasturlarni birgalikda bajarishga imkon beradi. Texnika maqsadli halqalarni profil ma'lumotlari asosida optimal vektor tushirish nisbatlarini topish orqali ichki ALU va vektor birliklarida bajarish uchun ikkita skalyar bo'limga ajratadi. Taklif etilgan texnika Hwacha vektor protsessor kengaytmali RISC-V infratuzilmasida (Rocket yadrosi) amalga oshirildi va u VCU118 FPGA platasida tasdiqlandi . Tavsiya etilgan texnika vektor tezlatgichida maxsus amalga oshirilgan bo'lsa-da, asosiy butun ALU va vektor birliklarining parallel bajarilishini ta'minlash uchun dinamik tartibsiz buyruqlar rejalashtirish qo'llab-quvvatlansa, u vektor ALU-larini o'z ichiga olgan boshqa arxitekturalarga ham tegishli. Vector Offloader Polybench benchmark to'plami uchun o'rtacha 1,31 × unumdorlikni oshirishga erishdi , mini va kichik ish yuki o'lchamlari uchun qo'sh, float va butun sonli ma'lumotlar turlariga ega va u barcha sinov holatlarida xuddi shunday samaradorlikni ko'rsatdi.
Ushbu hujjat quyidagi hissalarni taqdim etadi:

  • Ma'lumotlar parallelligini hisobga olmagan holda vektor birliklaridan foydalanadigan usul kiritildi;

  • Vektor birliklari uchun ishni tushirish hajmining ahamiyatini tahlil qilish asosida optimal tushirish nisbatini aniqlash uchun profilga asoslangan algoritm kiritiladi;

  • Vektorni o'chirish moslamasi dala dasturlashtiriladigan darvoza massivi (FPGA) asosidagi muhitda chuqur baholanadi.



2. Zamonaviy vektor arxitekturasi




Download 100.9 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling