Mavzu: CUDA TEXNOLOGIYASI VA UNING IMKONIYATLARI
GPU nima
GPUdagi parallel to'lovlar haqida gapiradigan bo'lsak, biz xotirada aybdormiz, bir soatda biz yashaymiz, bu yil, agar dunyodagi hamma narsa tezlashtirilgan bo'lsa, biz siz bilan bir soat vaqt o'tkazamiz, eslamay, go'yo bu sodir bo'ladigandek. olib ketdi.
Biz ishlayotgan hamma narsa ma'lumotlarni qayta ishlashning yuqori aniqligi va tezligi bilan bog'liq, bunday onglarda bizga barcha ma'lumotlarni qayta ishlash uchun vositalar kerak bo'ladi, chunki biz uni ma'lumotlarga aylantirishimiz kerak, hozircha biz eslab qolishimiz kerak. Bu vazifalar nafaqat katta tashkilotlar, balki mega-korporatsiyalar uchun zarur ekanligini, bunday vazifalarning ko'tarilishi bir vaqtning o'zida korsatuvachilarni talab qiladi va ularning hayotini vazifalarni buzish, uyda shaxsiy kompyuterlarda yuqori texnologiyalardan foydalanish kabi!
NVIDIA CUDA-ning paydo bo'lishi hayratlanarli emas edi, lekin tezroq tayyorlandi, chunki kompyuterda sezilarli darajada mashaqqatli ishlarni bajarish kerak bo'lgandi. Ilgari yaxshi bir soat davom etgan ish, endi biroz vaqt talab etadi, butun dunyoning katta rasmida havoda hammasi yaxshi!
GPU bo'yicha hisoblash nima
Texnik, ilmiy vazifalarni hisoblash uchun GPUni hisoblash uchun GPU bo'yicha hisoblash. GPU bo'yicha hisoblash protsessorlar va GPUlar soniga asoslangan bo'lib, ular s-oddiy variantni o'zi tanlashadi: dasturning oxirgi qismi protsessor tomonidan tartiblanadi, so'ngra hisoblashning ish yuklari bilan bir xil bo'ladi.
GPU . Shu sababli, ma'lumotlarni qayta ishlash va ish vaqtini o'zgartirish imkon qadar tezroq amalga oshirilishi, tizim yanada samarali bo'lishi va bir vaqtning o'zida ko'proq sonli vazifalarni bajarishi uchun qurilgan. Biroq, bunday muvaffaqiyatga erishish uchun faqat apparat ta'minoti etarli emas, bu holda dastur eng ko'p mehnat xarajatlarini GPUga o'tkazishi uchun dasturiy ta'minotni qo'llab-quvvatlash kerak.
CUDA nima
CUDA - bu C algoritmlari bilan soddalashtirilgan dasturlash texnologiyasi boʻlib, u sakkizinchi avlod va undan kattaroq GeForce protsessorlarining grafik protsessorlarida, shuningdek, NVIDIA kompaniyasining oʻxshash Quadro va Tesla kartalarida qoʻllaniladi. CUDA C dasturi matniga maxsus funksiyalarni kiritish imkonini beradi. Bu funksiyalar C dasturi tomonidan soddalashtirilgan tarzda va grafik protsessorda yozilgan.
CUDA SDK ning birinchi versiyasi 2007 yil 15 fevralda chiqarilgan. Kodimni CUDA SDK omboriga muvaffaqiyatli tarjima qilish uchun NVIDIA buyruq qatori C kompilyatori nvcc kiritilishi kerak. Open64 ochiq kodli kompilyatorga asoslangan kompilyator nvcc ijodi va yakuniy dasturlarni kompilyatsiya qilish jarayonida xost-kodi (bosh, kalit kodi) va qurilma-kodi (apparat kodi) (.cu kengaytmali fayllar) obyekt fayllariga, ilovalarga tarjima qilish uchun topshiriqlar. yoki har qanday dasturlash muhitidagi kutubxonalar, masalan, Microsoft Visual Studio.
1.1-rasm. CPU va GPU yadrolarini taqqoslash
1-jadval. CUDA texnologiyasini qo’llab quvatlovchi GPU driver versiyalari
Texnologiyaning imkoniyati
GPU-da dasturlarni parallel ravishda ishlab chiqish uchun standart C tili.
Fur'e ning shved transformatsiyasi uchun raqamli tahlilning tayyor kutubxonalari va chiziqli algebra dasturlarining asosiy to'plami.
GPU va CPU o'rtasida ma'lumotlarni hisoblash va uzatish uchun maxsus CUDA drayveri.
CUDA drayverini intermodal qilish imkoniyati grafik haydovchilar OpenGL va DirectX.
Linux 32/64-bit, Windows XP 32/64-bit va MacOS operatsion tizimlarini qo'llab-quvvatlash.
Texnologiya taraqqiyoti
CUDA dasturlari uchun dasturlash interfeysi (CUDA API) mavjud almashinuvlar bilan standart mobil Cí dasturlash asosida. Tse so'raydi va CUDA arxitekturasini ishlab chiqish jarayonini tekislaydi.
Oqimlar o'rtasida bo'lingan 16 Kb o'lchamli xotira (umumiy xotira) keng diapazonli o'tkazish qobiliyatiga ega keshni tashkil qilish uchun, pastroq, ajoyib teksturalarni tanlash uchun buzilishi mumkin.
CPU xotirasi va video xotirasi o'rtasida yanada samarali tranzaktsiyalar.
Siliyer va yonma-yon operatsiyalar uchun Povna apparat yordami.
Amaliy qism.
1-qadam. CUDAni kompyuterga o’rnatish
pip install cuda-python
2.1-rasm. Python dasturl ash tilida CUDA ni o’rnatish buyrug’i
pip install numba
pip install torch
]
2.2-rasm. Touch va numba kutubxonalari o`rnatilishi
Yuqoridagi kutubxonalarni o’rnatib olganimizdan so’ng quyidagi kod yordamida CUDA ni tekshiramiz:
import torch
if torch.cuda.is_available():
device = torch.device("cuda")
else:
device = torch.device("cpu")
print(device, "-dan foydalanamiz")
2.3-rasm. Kod natijasi
Agar kompyuteringizga grafik protsessor mavjud bo’lmasa quyidagi link orqali CUDA ni ishlatishimiz mumkin: https://colab.research.google.com/
2.4-rasm. Grafik protsessor mavjud bolmagan hollar uchun
Xulosa
CUDA bu garfik tasvirlash bilan ishlashda osonlik tugdirish maqsadida ishlab chiqilgan bolib, pratsessorni paraklleshlashtirish maqsadida yaratilgan. U GPU va CPU kabi driverlarga bolinar ekan bunda GPU bir necha yadroli driver, CPU esa yuzlab yadroldir. Yuqorida korsatilganlar kompyuterni grafik malumotlar bilan ishlash tezligini oshiradi.
Do'stlaringiz bilan baham: |