Векторизованная классификация 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]
Загрузите таблицу соответствия и строку ввода (возможно, в сегментах) и распределите по блокам.- другие?
Любая помощь будет принята с благодарностью!