Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Робота з текстурної пам'яттю

Реферат Робота з текстурної пам'яттю





align="justify"> Прив'язка двовимірного масиву (в глобальній пам'яті він все одно зберігається як лінійний, і звернення до нього йде по одній координаті):

cudaBindTexture2D (size_t shift, texref tex, amp; src, amp; channelDesc, int width, int height, int pitch);

- shift - зміщення при прив'язці до масиву (до одного масиву можна прив'язати кілька текстур);

- tex - оголошена текстура;

- src - масив в глобальній пам'яті, до якого прив'язується текстура;

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

- width - ширина двовимірного масиву;

- height - висота двовимірного масиву;

- pitch - зміщення кожного рядка.

Після закінчення роботи з текстурою її треба відв'язати :( texref tex);

Всі вищенаведені функції викликаються з хоста. На пристрої використовується функція, яка дістає значення з текстури:

tex1Dfetch (texRef tex, int index);

- tex - оголошена текстура;

- index - індекс виймаємого значення в лінійному масиві.

В якості вхідного демонстраційного прикладу в Лабораторної роботі №4 створений проект LR4_1, в якому одновимірний масив тестових даних завантажується в текстурную пам'ять, і ядро ??GPU обчислює твір елемента масиву на його індекс, заповнюючи вихідний одновимірний масив.



2.3 CudaArray текстурная пам'ять


В якості основи для такого типу пам'яті виступає спеціальний контейнер cudaArray, який є чорним ящиком для додатків. Використання cudaArray обгрунтовано тоді, коли ми хочемо створити двох або тривимірну структуру, або нас важливі перетворення, які графічний процесор може здійснювати апаратно з вихідними даними:

§ Нормалізація координат (переклад [W, H]= gt; [0,1]).

§ Перетворення координат:

- Clamp - координата обрізається по межі;

- Wrap - координата загортається.

§ Фільтрація (при зверненні по float координаті):

- Point - повертається найближчим задане значення;

- Linear - виробляється білінійна інтерполяція.

Для використання cudaArray текстурної пам'яті потрібно оголосити змінну-покажчик на cudaArray: * a;

Потім необхідно виділити пам'ять під дані на відеокарті:

cudaMallocArray (struct cudaArray ** arrayPtr, const struct cudaChannelFormatDesc * channelDesc, size_t width, size_t height);

- arrayPtr - покажчик на cudaArray;

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

- width - ширина масиву;

- height - висота масиву.

Потім скопіювати у виділену пам'ять дані:

cudaMemcpyToArray (struct cudaArray * dst, size_t wOffset, size_t hOffset, const void * src, size_t count, enum cudaMemcpyKind kind);

- arrayPtr - покажчик на cudaArray;

- wOffset - зміщення по горизонталі при прив'язці до масиву;

- hOffset - зміщення по вертикалі при прив'язці до масиву;

- src - масив в пам'яті хоста, до який копіюється;

- count - розмір даних в байтах;

- kind - напрямок копіювання.

Після того як дані скопійовані, можна здійснювати прив'язку cudaArray масиву до текстури:

cudaBindTextureToArray (const struct textureReference * tex, const struct cudaArray * array, const struct cudaChannelFormatDesc * desc);

- tex - оголошена текстура;

- array - масив в cudaArray, до якого прив'язується текстура;

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

На пристрої використовуються функції, які дістають значення з текстури:

tex1D (texRef tex, float x);

- tex - оголошена текстура;

- x - індекс виймаємого значення в лінійному масиві.

tex2D (texRef tex, float x, float y);

- tex - оголошена текстура;

- x, y - індекси виймаємого значення у двомірному масиві.

tex3D (texRef tex, float x, float y, float z);

- tex - оголошена текстура;

- x, y, z - індекси виймаємого значення в тривимірному масиві.

Після використання необхідно відв'язати текстуру точно так само як...


Назад | сторінка 2 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Поняття і елементи масиву
  • Реферат на тему: Обробка масиву покажчиків
  • Реферат на тему: Виготовлення столу з масиву дерева
  • Реферат на тему: Проектування програми з аналізу масиву
  • Реферат на тему: Проект управління станом гірського масиву в очисному вибої і підготовчих ви ...