Steps3d - уроци - Програмиране CUDA (част 2)

Работа с паметта на текстура

CUDA подкрепя текстури, като същевременно осигурява пълен набор от функционалности от графика API на. Работа с текстури в CUDA отива от така наречените връзки текстура (справка текстура).

параметър тип определя типа на данните, върнати при четене от текстура. Като тип, можете да използвате основните типове целочислени, флоат. както и всички техни 1/2/3/4-двумерен вектор.

Дим параметър определя размера на текстура и приема стойности от 1 до 3 включително.

Стойността на параметъра ReadMode изпълнява една от следните константи - cudaReadModeNormalizedFloat (за случая, когато е необходимо да се произвеждат нормализация) и cudaReadModeElementType (когато не не е необходимо да се извършва нормализиране).

Що се отнася до паметта на текстура може да бъде всяка зона памет като линейна (линеен памет), и т.н. CUDA-спектър (CUDA масив). Изборът на линейна памет като памет на текстурата налага следните ограничения:

За да се чете от текстури подредени в линейна памет се използва функция tex1Dfetch.

За да се чете от текстура поставя с помощта на следните функции в CUDA-брошури:

Ако текстурата се поставя в линейна памет, за разпределение и deallocation на паметта, използвана в предишната статия обсъдени функциите и cudaMalloc cudaFree.

Изолиране и освобождаване CUDA-масиви извършват функции cudaMallocArray и cudaFreeArray. При разпределяне на паметта като CUDA матрица на функция, различна от cudaMallocArray размер необходимо да се премине позоваване структура cudaChannelFormatDesc. се използва за описване на структурата на текстура.

Типът на текстура се основава на следната структура: