У меня есть изображение размером 128 на 128 пикселей.
Он разбит на сетку размером 8 на 8.
Каждый блок сетки содержит 16 на 16 пикселей.
Требование
Я хочу подсчитать, сколько черных пикселей содержит мое изображение.
Прямой путь:
Я мог сделать это, перейдя строку за строкой, по столбцу, по всему изображению и проверив, был ли пиксель черным или нет.
Способ GPU
... но я хотел бы знать, используя GPU, я мог бы разбить изображение на куски/блоки и подсчитать все пиксели в каждом блоке, а затем суммировать результаты.
Например:
Если вы посмотрите в верхнем левом углу изображения:
Первый блок, 'A1' (строка A, столбец 1) содержит сетку 16 на 16 пикселей, я знаю, посчитав их вручную, есть 16 черно-белых пикселей.
Второй блок: "A2", (строка A, столбец 2) содержит сетку 16 на 16 пикселей, я знаю, посчитав их вручную, есть 62 черно-белых пикселя.
Все остальные блоки для этого примера пусты/пусты.
Если я запустил свой образ через свою программу, я должен получить ответ: 16 + 62 = 78 Черные пиксели.
Рассуждение
Я понимаю, что GPU может работать на большом количестве данных параллельно, эффективно запуская небольшую программу на куске данных, распространяемых по нескольким потокам графического процессора. Я не беспокоюсь о скорости и производительности, я просто хотел бы знать, может ли это сделать/может делать GPU?