Векторизованная классификация LUT с использованием ArrayFire

Есть ли способ написать векторизованный поиск таблицы с помощью ArrayFire?

Я пытаюсь реализовать бинарный 2D пиксельный классификатор, используя таблицу поиска 255x255. Эта таблица содержит комбинации значений двух каналов [0,255], которые следует классифицировать: Например,
channel[0] == 127 && channel[1] == 200 будет доступен для поиска как lut[127][200] == True,

Пример не векторизованного псевдокода:

for pixel in line  
    output[pixel] = LUT[ pixel[channel_0] ][ pixel[channel_1] ]

Возможные подходы для ArrayFire:

  • [Цикл Gfor]
    Следующее не является допустимым синтаксисом, поэтому я не уверен, возможно ли это вообще:

    gfor(af::seq i, line.dims(0)) { classification(i) = lut(line(i)); }

  • [Пользовательское ядро ​​CUDA]
    Загрузите таблицу соответствия и строку ввода (возможно, в сегментах) и распределите по блокам.

  • другие?

Любая помощь будет принята с благодарностью!

0 ответов

Другие вопросы по тегам