Cudaarray памет на консистенцията - работа с паметта на текстура

Като основа за този вид памет действа като специален контейнер cudaArray, която е черна кутия за приложението. Използването cudaArray оправдано, когато искаме да създадем две или триизмерна структура, или имат важни трансформации, че GPU могат да изпълняват хардуер с оригиналните данни:

§ нормализиране координира (превод [W, Н] => [0,1]).

- Скоба - да се координират подстригва до границата;

- Увийте - координира тайна.

§ Filtering (при кандидатстване за поплавък координират):

- Point - обратно в близост до зададената стойност;

- Linear - изработен билинеарно интерполация.

За да използвате cudaArray памет на консистенцията е длъжен да декларира променлива, указател към cudaArray:

cudaMallocArray (структура cudaArray ** arrayPtr, конст структура cudaChannelFormatDesc * channelDesc, size_t ширина, size_t височина);

- arrayPtr - указател към cudaArray;

- channelDesc - описание канал;

- ширина - ширината на масив;

- височина - височината на масива.

След това копирате данните в заделената памет:

cudaMemcpyToArray (структура cudaArray * DST, size_t wOffset, size_t hOffset, Конст нищожен * SRC, size_t брой, ENUM cudaMemcpyKind вид);

- arrayPtr - указател към cudaArray;

- wOffset - хоризонталата компенсират, когато се свързва към масива;

- hOffset - офсет вертикално, когато са свързани към масива;

- SRC - масив в приемащата памет, към който се копира;

- брои - размерът на данни в байтове;

- вид - посоката на копиране.

След като данните се копират, можете да щракам cudaArray масив за текстура:

cudaBindTextureToArray (конст структура textureReference * текс, конст структура cudaArray * масив, конст структура cudaChannelFormatDesc * низходящо);

- текс - обявен текстура;

- масив - спектър в cudaArray, който се свързва текстурата;

- channelDesc - описание канал.

В функции използвания апарат, че екстракт от значение текстура:

tex1D (texRef текс, флоат х);

- текс - обявен текстура;

- х - изкопана стойности на индекса в линейна редица.

tex2D (texRef текс, флоат х, у поплавък);

- текс - обявен текстура;

- X, Y - изкопана индекси стойности в двуизмерна област.

tex3D (texRef текс, флоат х, у поплавък, поплавък Z);

- текс - обявен текстура;

- X, Y, Z - изкопана индекси стойности в триизмерна матрица.

След употреба е необходимо да се разграничи текстура точно същата като линейна.