У меня есть ядро, которое обрабатывает изображения RGB. В настоящее время, Я принимаю каждый канал по одному, и запустить то же ядро на этом каналеНедостаток использования образа против глобальной памяти?
Входного ядра представляет собой глобальный буфер памяти: данные перемещаются на кусках из глобального буфера в локальную память для обработки, затем сохраняются в другой глобальный буфер .
Я думал о рефакторинге этого, чтобы сохранить все три канала в буфере RGBA и работать одновременно со всеми тремя каналами, используя операции . Я понимаю, что изображения имеют лучшее пространственное кэширование.
Есть ли недостаток в этом рефакторе? Я понимаю, что мне придется уменьшить количество пикселей на кусок, потому что теперь у меня будет в три раза больше суммы данных.
Спасибо!
Вопросы: Как вы выбрали данные RGB? Плоский или чередующийся? Кроме того, какое оборудование вы используете для таргетинга? Различные аппаратные средства будут отличаться друг от друга. Наконец, сколько ALU использует ваш фильтр? Большой сложный фильтр или небольшой простой фильтр? – user2746401
Спасибо, user2746401. Я могу выбрать, какой формат использовать - я предполагаю, что чередование - это способ пойти, если я переключусь на изображение. В настоящее время это плоский. Кроме того, я собираюсь настроить GPU на AMD Hawaii; Например, 290X. Кроме того, фильтр большой и сложный. – Jacko