Toshkent axborot texnologiyalari universiteti


GPUda parallel hisoblash interfeyslari va ularning xususiyatlari



Yüklə 4,21 Mb.
səhifə11/18
tarix27.05.2023
ölçüsü4,21 Mb.
#113620
1   ...   7   8   9   10   11   12   13   14   ...   18
Tayyor Dissertatsiya ishi Abdusalomov Saidmalikxon

2.3. GPUda parallel hisoblash interfeyslari va ularning xususiyatlari


OpenCL freymvorkidan boshqa yana bir qancha parallel hisoblash texnologiyalari mavjub bo‘lib ularni solishtirib ko‘ramiz. OpenCL, CUDA, OpenMP va GLSL texnologiyalari yordamida murakkab grafik vazifani bir xil qurilmada bajarib ularning natija olish uchun ketgan vaqtlarini taqqoslaymiz. Buning uchun bizga Intel Core i5-10400f markaziy protsessori, Nvidia Geforce 1080ti va Radeon RX580 video kartalari yordam beradi.
2.1-jadval
OpenCL, CUDA, GLSLning imkoniyatlarini taqqoslash jadvali

Hisoblashlar soni

OpenCL

CUDA

GLSL

FPS

TFLOPS

FPS

TFLOPS

FPS

TFLOPS

2048

1103,4

4,96

1321,8

5,34

878,6

4,16

4096

549,3

10,2

674,9

10,8

317,9

9,23

8192

149,7

10,5

170,6

11,2

108,7

9,67

16384

36,9

10,8

42,9

11,6

28,2

9,91

32768

11,6

11,1

14,5

12,1

8,1

10,12

Nvidia Geforce 1080ti videokartasi orqali bajarilganda CUDA orqali bajarilganda o‘rtacha OpenCL ga nisbatan 19.7% ga, GLSL ga nisbatan esa 25.6%ga samarador bo‘ldi. Bu esa CUDA faqat Nvidia Videokartalari bilan ishlay olishi va uning arxitekturasiga moslashuvchanligi yuqori bo‘lganligi uchun ham shunday. AMDga tegishli Radeon RX 580 Grafik protsessori orqali o‘tkazilgan tajribalarda ham deyarli shunday natijalar qayt etildi, faqatgina bu tajribalarda CUDA texnologiyasini sinab ko‘rishning imkoniyati bo‘lmadi.

2.4- rasm. Parallel hisoblash interfeyslarining bir vazifani bajarish bo‘yicha olingan natijalari
Eng keng tarqalgan texnologiyalar bo‘lganligi sababli tadqiqotni CUDA va OpenCL freymvorklarida o‘tkazishga qaror qilindi.
Endi CUDAning umumiy parametrlari va ishlash mexanizmi bilan tanishamiz. CUDA (Compute Unified Device Architectura) - parallel hisoblash dasturiy ta'minot arxitekturasi bo‘lib, Nvidia Grafik protsessorlari yordamida parallel hisoblash tezligini oshiruvchi texnologiya[16].
CUDA bu hisoblash interfeyslari uchun maxsus yaratilgan arxitektura. Ushbu apparat arxitekturasi, shu jumladan buyruqlar to‘plami, bunday parallel hisoblash va geterogen hisoblash uchun mo‘ljallangan to‘liq arxitektura uchun juda mos keladi. CUDA arxitekturasi API-larni, shu jumladan OpenCL yoki DirectX-ni qo‘llab-quvvatlaydi va CUDA C va C ++ tillarini, shuningdek Fortran, Java va Python kabi turli tillarni qo‘llab-quvvatlaydi.
CUDA va OpenCL o‘rtasidagi munosabatlar ziddiyatli emas, balki inklyuziv munosabatlardir. OpenCL-bu API va uning arxitekturasi ancha ilg‘or Ushbu arxitekturada OpenCL yoki DirectX 11 kabi API yoki C tili, Fortran va DirectX 11 kabi hisob-kitoblar qo‘llab-quvvatlanishi mumkin[16]. Dastur ishlab chiquvchilari sifatida ular odatda faqat shu tillarni yoki API-larni tushunishadi va o‘zlarining dasturlarini bir nechta tillarda ishlab chiqishlari mumkin.
OpenCL va CUDA o‘rtasidagi texnik farq asosan amalga oshirish usulida aks etadi. C tiliga asoslangan CUDA yozish uchun qulay kodga ega, shuning uchun hatto chip arxitekturasi bilan tanish bo‘lmagan ilmiy tadqiqotchilar ham amaliy dasturlarni yozish uchun CUDA vositalaridan foydalanishlari mumkin. OpenCL sintaktik jihatdan CUDA ga o‘xshash bo‘lsa-da, u past darajadagi operatsiyalarga ko‘proq e'tibor beradi, Shuning uchun bu qiyinroq, Shuning uchun OpenCL turli platformalarda ishlashi mumkin.
CUDA-bu buyruqlar to‘plami arxitekturasi va tegishli apparat mexanizmini o‘z ichiga olgan parallel hisoblash arxitekturasi. OpenCL bu parallel hisoblash uchun amaliy dasturlash interfeysi (API). NVIDIA cuda arxitekturasida OpenCL CUDA uchun C dan tashqari CUDA dasturlarini ishlab chiqishning yangi usulini taqdim etadi. Agar apparat ustidan to‘liq nazorat kerak bo‘lsa, dasturlash uchun OpenCL APIdan foydalanish mumkin. Agar siz API haqida ko‘p narsa bilmasangiz, CUDA C-da ham dasturlashingiz mumkin. Ularning o‘xshashliklari va farqlari bor. Ammo OpenCL va CUDA C tillarining kichik rivojlanishi mavjud, parallel hisoblash nuqtai nazaridan ularning tushunchalari o‘xshash, bu ikki dastur dasturda ko‘proq o‘xshashlikka ega, shuning uchun dasturlar orasidagi migratsiyani aytish nisbatan osonroq.
CUDA C va OpenCL tillarining joylashuvi har xil yoki foydalanuvchilar soni har xil. CUDA C - bu apparat haqida kam ma'lumotga ega bo‘lgan oddiy odamlar tomonidan osonlikcha ishlatilishi mumkin bo‘lgan yuqori darajadagi til; OpenCL-bu dasturchilarga qo‘shimcha qurilmalarni ko‘proq boshqarish imkoniyatini beradigan apparat dasturlarini ishlab chiqish interfeysi. Boshlash va rivojlanish qiyinroq bo‘ladi. Dasturchining odatlari ham juda muhimdir. X86 protsessor platformasida C tilidan foydalanadiganlar CUDA GPU platformasiga asoslangan C tilini osongina qabul qilishadi va grafikani ishlab chiqish uchun OpenGL-dan foydalanishga odatlanganlar.

Yüklə 4,21 Mb.

Dostları ilə paylaş:
1   ...   7   8   9   10   11   12   13   14   ...   18




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə