Tekstura xotirasidan foydalanish Doimiy xotiradan foydalanish 2010 yil, 2-jild, ÿ3, 295–308-betlar cudaMemcpyToSymbol(constData, hostData, sizeof(ma'lumotlar), 0,
307
Yadro ichida doimiy xotiradan foydalanish foydalanishdan farq qilmaydi
xostdagi muntazam global o'zgaruvchi.
• Manzilni normallashtirish. Manzillarni normallashtirishda
[K, N] segmenti
tarjima qilinadi
CUDA texnologiyasi asoslari
xotira.
• Manzil tarjimasi. Agar koordinata belgilangan diapazonga tushmasa (segment [K, N] yoki [0, 1]), u holda video
karta apparat darajasida transformatsiyani amalga oshiradi. Ikki xil konversiya mavjud: – Clamp — eng yaqin
diapazon chegarasidagi qiymat qaytariladi; - Wrap - diapazondagi qiymatni qaytaradi, aslida qolgan qismi olinadi
Tekstura xotirasi - bu global xotiraning maxsus ajratilgan maydoni. Tekstura xotirasiga kirish kesh yordamida
amalga oshiriladi. Tekstura xotirasi, shuningdek, suzuvchi nuqta manzilidan foydalanishga imkon beradi (chiziqli yoki ikki
chiziqli interpolyatsiya yordamida). Shunga ko'ra, birinchi qo'ng'iroq tezligini kamaytiradigan qo'shimcha quvur bosqichlari
(manzil tarjimasi, filtrlash, ma'lumotlarni o'zgartirish) mavjud. Tekstura xotirasidan foydalanish uchun siz teksturani global
o'zgaruvchi sifatida e'lon qilishingiz va keyin uni kerakli global xotira maydoniga bog'lashingiz kerak.
Doimiy xotira yadroga ko'p o'tkazish kerak bo'lganda ishlatiladi
manzilni diapazon uzunligiga bo'lishdan. •
Filtrlash. Agar havola float manziliga tegishli bo'lsa va ma'lumotlar butun sonli manzillar uchun berilgan bo'lsa, unda
teksturadan qanday qiymat qaytarilishini aniqlash kerak. Ikkita usul mavjud: – Point — massivdan eng yaqin
qiymat olinadi; – Lineer — qiymat chiziqli (bilinear) interpolyatsiya asosida hisoblanadi
CUDA da ikki xil teksturalar mavjud - chiziqli va cudaArray.
• Ma'lumotlarni konvertatsiya qilish. GPU o'qilgan ma'lumotlarni aylantirish qobiliyatiga ega, masalan, char4
massivi float4 ga aylantirilishi mumkin.
lar.
Tekstura deklaratsiyasining o'ziga qo'shimcha ravishda, o'rnatilishi kerak bo'lgan bir nechta parametrlar mavjud.
__constant__ float constData[256] - doimiy xotira sifatida foydalanish uchun constData nomli global o'zgaruvchining
deklaratsiyasi.
barcha yadro iplari tomonidan teng ravishda ishlatiladigan turli xil ma'lumotlar.
texture< float, 1, cudaReadModeElementType > g_TexRef;
Teksturani e'lon qilgandan va uning barcha parametrlarini o'rnatgandan so'ng, global xotiraga yoki cudaArrayga
yuklangan ma'lumotlarni mos ravishda cudaBindTexture va cudaBindTextureToArray funksiyalari yordamida tekstura
deklaratsiyasiga "bog'lash" kerak. Umumiy sxema rasmda ko'rsatilgan. 7.
cudaMemcpyHostToDevice) - markaziy protsessordan ma'lumotlarni doimiylarga nusxalash
[0, 1] segmentiga kiriting.
Machine Translated by Google