Я новичок в мире металлов и вычислений. Имея базовое понимание программирования на GPU, я хочу оптимизировать считывание текселей входного изображения / данных. Я уже пытался комбинировать множественное чтение и обрабатывать эти пиксели, но каким-то образом это ухудшает ситуацию.
Я пытался комбинировать множественное чтение разными способами, например, чтение 4 в строках, столбцах, 2x2 в блоке, 4 пикселя. каждый из разных секторов изображения, без какого-либо усиления.
В ходе экспериментов я обнаружил, что простое чтение изображения 4k занимает около 4,5 мс на iPhone X или 11 или Pro. Поэтому я хочу сократить это время, чтобы оптимизировать весь процесс.
Я узнал, что локальное хранилище достаточно быстро, и я думаю, что могу прочитать несколько текселей в этой памяти для обработки за go позже / следующий проход / после того, как чтение завершено.
Мои вопросы:
- Как я могу реализовать Tiling с Compute Shader в Metal? Есть ли пример или пример кода?
- Какова здесь возможность или оптимизация?
- Есть ли другой способ оптимизировать считывание texel, чтобы сделать его быстрее.