A. M. Kazennov udc: 04. 42 Moskva fizika-texnika instituti (Davlat universiteti), Rossiya, 141700, Dolgoprudniy, bosh. Institut, 2010 yil sentyabrda qabul qilingan, 2010 yil 20 sentyabrda qayta ko'rib chiqilgan mavhum


kirish bir vaqtning o'zida burmaning yarmidan amalga oshiriladi


Download 1.25 Mb.
Pdf ko'rish
bet9/11
Sana20.12.2022
Hajmi1.25 Mb.
#1035614
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
crm602 (1)

kirish bir vaqtning o'zida burmaning yarmidan amalga oshiriladi. Dasturda registr va lokaldan tashqari barcha
xotira turlaridan ham samarali, ham samarasiz foydalanish mumkin. Xotiraga samarali kirish uchun uning har xil turlarining
xususiyatlari va ilovalarini aniq tushunish kerak.
panjara ustida
Barcha maxsus global xotira funktsiyalari xostda chaqiriladi. Qurilmada ish odatdagi massivda bo'lgani kabi sodir bo'ladi.
cudaError_t cudaMalloc(void** devPtr, size_t size) — video kartada xotira taqsimoti. Bu erda devPtr - qurilmadagi xotira
maydoniga ko'rsatgich, o'lcham - baytlarda ajratilgan xotira hajmi.
R/W
Umumiy R/W Global
R/W
Mahalliy (mahalliy)
panjara ustida
• foydalanish; • teskari
nusxa ko'chirish; • ozod qilish.
R/O
Global - video kartaning asosiy xotirasi (hozirda Tesla c2070 da maksimal 6 GB). Katta hajmdagi ma'lumotlarni saqlash
uchun ishlatiladi. U DRAM chiplarida joylashgan va sekin kirish tezligiga ega (taxminan 80 tsikl). To'liq tarmoqqa ajratilgan.
cudaError_t cudaMemcpy(void* dst, const void* src, size_t count, enum cudaMemcpyKind turi) — xost va qurilma
o‘rtasida ma’lumotlarni nusxalash. Bu erda dst va src mos ravishda maqsad va manba ko'rsatkichlari (ular xostda ham, qurilmada
ham xotiraga ishora qilishi mumkin), count - nusxa ko'chirilgan ma'lumotlarning baytdagi hajmi, turi
Machine Translated by Google


Umumiy xotiradan foydalanish
KOMPYUTER TADQIQOTLARI VA SIMULATSIYA
Jadval 7.
ComputeCapability 1.0, 1.1 ComputeCapability 1.2, 1.3, 2.0 grafik adapterining apparat
arxitekturasi versiyasiga qarab global xotiraga birlashtirilgan soÿrovning paydo boÿlish shartlari Qoÿngÿiroq
32-bit yoki 64-bitga oÿtadi. 16-, 32- yoki 64-bitga o'tadi
A. M. Kazyonnov
Blok uning o'lchamiga mos keladi
Blok o'z o'lchamiga moslashtirilgan;
hech qanday ziddiyat yo'q, chunki floatning o'lchami 32 bit va ketma-ket float elementlari ketma-ket
banklarga tushadi.
306
so'zlar
to'rtinchi tartibli to'qnashuvlar char elementining o'lchami 8 bit bo'lganligi sababli yuzaga keladi va 4 ta
ketma-ket belgilar bir xil bankka tushadi.
nusxa
ko'chirish. cudaError_t cudaFree(void* devPtr) - qurilmadagi xotirani bo'shatish.
Agar qo'shilish shartlari bajarilmasa, ComputeCapability 1.0 yoki 1.1 bo'lgan GPU 16 ta alohida
tranzaksiyani amalga oshiradi va ComputeCapability 1.2, 1.3, 2.0 bo'lsa, so'rovlar butun so'rov hajmini
qamrab olgan bir nechta bloklarda bajariladi.
Umumiy xotira bilan ishlashning standart sxemasi quyidagicha:
yo'nalishni ko'rsatadigan to'rtta qiymatdan biri (cudaMemcpyHostToDevice, cudaMemcpyDeviceToHost,
cudaMemcpyHostToHost, cudaMemcpyDeviceToDevice)
K-chi ip blokdagi K-elementga ishora qiladi
• kerakli ma'lumotlarni umumiy xotiraga yuklash (globaldan), • __syncthreads(),
• yuklangan ma'lumotlar bilan hisob-kitoblarni amalga
oshirish, • __syncthreads(), • natijani global xotiraga yozish.
Umumiy xotira har bir SMda joylashgan va blok ichidagi barcha oqimlar tomonidan taqsimlanadi.
Umumiy xotira odatda nusxa ko'chirish va yangilash operatsiyalaridan keyin __syncthreads() aniq
sinxronlash buyrug'idan foydalanishni talab qiladi. O'tkazish qobiliyatini oshirish uchun umumiy xotira 16 ta
bankka bo'lingan, ularga mustaqil ravishda kirish mumkin. Banklar 32 bitli so'zlardan iborat bo'lib, ketma-
ket so'zlar ketma-ket bloklarda joylashgan. Agar bir xil bankka (element emas, balki bank) bir nechta iplar
kirishi bilan bog'liq vaziyat yuzaga kelsa, ularning so'rovlari ketma-ket ko'rib chiqiladi (bank mojarosi yuzaga
keladi), lekin agar barcha oqimlar bir xil elementga kirsa, u holda bank ziddiyatlari sodir bo'lmaydi.
Masalan, __shared__ float a[N]; float x = a[base+threadIdx.x];
Global xotira bilan ishlash samaradorligini oshirish uchun kirish bir vaqtning o'zida 16 ta yarim ipli
iplardan kelib chiqishini va global xotira bilan ishlashni sezilarli darajada tezlashtiradigan maxsus kirish
naqshlari mavjudligini yodda tutish kerak. GPU so'rovlarni 32/64/128 bayt bloklarga birlashtirish qobiliyatiga
ega. So'rovlarni yig'ish imkoniyatlari grafik adapter apparati arxitekturasining versiyasiga qarab farqlanadi
(7-jadvalga qarang).
devPtr qurilmadagi xotiraga ko'rsatgichdir.
so'zlar
__shared__ char a[N]; char x =
a[base+threadIdx.x];
Machine Translated by Google



Download 1.25 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




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