Выравнивание высоты тона для 2D текстур

2D текстуры являются полезной функцией CUDA в приложениях обработки изображений. Чтобы связать линейную память основного тона с 2D-текстурами, память должна быть выровнена.cudaMallocPitch хороший вариант для выравнивания выделения памяти. На моем устройстве поле возвращаетсяcudaMallocPitch кратно 512, т. е. память выровнена на 512 байт.

Фактическое требование выравнивания для устройства определяетсяcudaDeviceProp::texturePitchAlignment что составляет 32 байта на моем устройстве.

Мой вопрос:

Если фактическое требование выравнивания для 2D-текстур составляет 32 байта, то почемуcudaMallocPitch вернуть 512 байт выровненной памяти?

Isn»это пустая трата памяти? Например, если я создаю 8-битное изображение размером 513 x 100, оно будет занимать 1024 x 100 байт.

Я получаю это поведение в следующих системах:

1: Asus G53JW + Windows 8 x64 + GeForce GTX 460M + CUDA 5 + Core i7 740QM + 4 ГБ ОЗУ

2: Dell Inspiron N5110 + Windows 7 x64 + GeForce GT525M + CUDA 4.2 + Corei7 2630QM + 6 ГБ ОЗУ

Ответы на вопрос(2)

Ваш ответ на вопрос