Как реализовать Tiling с шейдером Compute в Metal? - PullRequest
1 голос
/ 31 января 2020

Я новичок в мире металлов и вычислений. Имея базовое понимание программирования на GPU, я хочу оптимизировать считывание текселей входного изображения / данных. Я уже пытался комбинировать множественное чтение и обрабатывать эти пиксели, но каким-то образом это ухудшает ситуацию.

Я пытался комбинировать множественное чтение разными способами, например, чтение 4 в строках, столбцах, 2x2 в блоке, 4 пикселя. каждый из разных секторов изображения, без какого-либо усиления.

В ходе экспериментов я обнаружил, что простое чтение изображения 4k занимает около 4,5 мс на iPhone X или 11 или Pro. Поэтому я хочу сократить это время, чтобы оптимизировать весь процесс.

Я узнал, что локальное хранилище достаточно быстро, и я думаю, что могу прочитать несколько текселей в этой памяти для обработки за go позже / следующий проход / после того, как чтение завершено.

Мои вопросы:

  1. Как я могу реализовать Tiling с Compute Shader в Metal? Есть ли пример или пример кода?
  2. Какова здесь возможность или оптимизация?
  3. Есть ли другой способ оптимизировать считывание texel, чтобы сделать его быстрее.
...