Упаковка потоков данных на видеокарте

Возьмите программу из предыдущего задания, реализующую сканирование на видеокарте. Вам нужно сделать реализацию упаковки потока данных на OpenCL.

Задание

Реализуйте упаковку потока данных, соблюдя условия ниже. Упаковка данных представляет собой формирование выходного массива данных, в который входят элементы из входного массива, удовлетворяющие какому-либо условию. Например, элементы, которые больше нуля. В этом задании выберите из массива только положительные элементы.

Условия

Исходный код

module load gpc-2021
git clone https://courses.igankevich.com/gpu-programming/filter.git
cd filter
make
./build/filter

Пример вывода

Platform name: Clover
Device name: AMD Radeon (TM) R7 300 Series (BONAIRE, DRM 3.37.0, 5.7.15, LLVM 10.0.0)
function  OpenMP  OpenCL total  OpenCL copy-in  OpenCL kernel  OpenCL copy-out
filter    2839us           0us             0us            0us              0us