O'rnatilgan o'zgaruvchilar
CUDA da yangi ma'lumotlar turlari
Yadro ishga tushirish direktivasi
2010 yil, 2-jild, ÿ3, 295–308-betlar
RW / __syncthreads()
303
– __shared__ spetsifikatsiyasi umumiy xotirani belgilash uchun ishlatiladi va deklaratsiyada ishga tushirilmaydi.
Odatda, bunday xotirada har qanday operatsiyadan keyin bir xil blok ichidagi iplarni aniq sinxronlashtirishni talab
qiladi.
– __constant__ xotirasiga yozish faqat maxsus funksiyalar orqali amalga oshiriladi
CPU bilan.
(u)char, (u)int, (u)short, (u)long, float turlari 1-, 2-, 3-, 4 oÿlchovli vektorlar boÿlishi mumkin, longlong,
double esa faqat
1- va 2 boÿlishi mumkin. - o'lchovli. Ushbu turdagi o'zgaruvchilarni yaratish uchun make_(type)(dimension) kabi funksiyalardan
foydalanishingiz kerak, masalan:
CUDA texnologiyasi asoslari
blok
CUDA-da har birida mavjud bo'lgan bir nechta maxsus o'zgaruvchilar
mavjud
5-jadval. CUDA-dagi o'zgaruvchilar spetsifikatsiyalari
R
tipidagi qurilmaga kirish
uchun mavjud __constant__
qurilma
qurilmasi va xost
• O'zgaruvchilar spetsifikatsiyalari
– Tuzilmalar yoki birlashmalar sohalariga hech qanday spetsifikatsiya qo'llanilishi mumkin emas.
hisoblash yadrosi. Ushbu o'zgaruvchilar bir ipni boshqasidan ajratishga imkon beradi:
dim3 gridDim - yadro ishga tushirilganda grid konfiguratsiyasi haqida ma'lumotni o'z ichiga oladi, uint3 blockIdx - to'r
ichidagi
joriy blokning koordinatalari, dim3 blockDim - yadro ishga tushirilganda blok hajmi, uint3 threadIdx - blok ichidagi
joriy
ipning koordinatalari, int warpSize - warp hajmi (hozirda har doim 32 ga teng).
ma'lumotlarga.
va unga argumentlar o'tkazish.
R/W
Spesifikator __device__ qurilmasida
topildi
Nusxa olish va kirish qulayligi uchun CUDA-ga bir nechta vektor turlari qo'shildi
Yadroni ishga tushirish uchun yadroni ishga tushirish parametrlarini o'rnatish uchun maxsus direktivalar qo'llaniladi.
__ umumiy __ qurilma
int2 a = make_int2 (1, 2); float4 b = make_float4 (1,
2, 3, 4); Komponentlar bo'yicha operatsiyalar
CUDA Toolkit versiyasi
> 3.0 da barcha turlar uchun belgilangan. Oddiy konstruktorga ega uint3 asosidagi maxsus turdagi dim3 ham
mavjud. Ushbu konstruktor vektorning barcha komponentlarini belgilashga imkon beradi
(etishmayotgan komponentlar
Do'stlaringiz bilan baham: