На центральном процессоре я часто использую «суб-изображения» двухмерных изображений (pitch-linear), которые просто указывают на определенный ROI «основного» изображения. Таким образом, все модификации суб-изображения фактически меняют и «главный» образ.CUDA - Любые проблемы при работе с (не выровненными) суб-изображениями (для текстурной привязки, АЭС, ...)?
Существуют ли какие-либо проблемы с CUDA с суб-изображениями для двумерных изображений (pitch-linear) в памяти устройства? Например, может ли связать текстуру с ней или объект текстуры? Правильно ли выполняются подпрограммы АЭС? Я спрашиваю, из-за таких проблем некоторые определенные процедуры могут потребовать определенного выравнивания («начального адреса» буфера).
Обратите внимание, что меня интересуют вопросы стабильности. Я полагаю, что для этих суб-изображений могут быть незначительные штрафы за исполнение, но это не моя главная проблема.
В частности, было бы интересно, если ограничение выравнивания для буфера базового адреса, указанного в документации «cudaBindTexture2D» на
также необходимо для «объектов Texture» (для CC> = 3,0 графических процессоров)?
Ограничение 2 (относительно высоты тона) не является проблемой, потому что у моего суб-изображения есть, конечно, тот же шаг, что и основной образ, а мои основные изображения всегда создаются с помощью cudaMallocPitch. Но ограничение 1 (относительно базового адреса) не будет заполнено суб-изображением. Поэтому в качестве обходного пути я создам объект текстуры, передав его правильно выровненный базовый адрес и сохранит надлежащее смещение (к «реальному» базовому адресу суб-изображения), деленное на размер текселя, чтобы добавить затем в 'tex2d', чтобы исправить эту настройку базового адреса. На самом деле это кажется более или менее – user2454869