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 - изкопана индекси стойности в триизмерна матрица.
След употреба е необходимо да се разграничи текстура точно същата като линейна.