Любителям OpenCL и вычислений на GPU просьба помочь
Прошу прощения за простыню ниже, что поделать, раз тут не придумали код прятать под кат или в поля со скроллом. Загвоздка в том, что у меня есть небольшой массив четверок сингл флоатов (~ 10 млн.) Мне надо найти в нём сумму всех четверок, а также bounding box. Я не знаю, стоит ли для этого привлекать GPU. У меня зашибенная платформа: CPU AMD Ryzen 1600x и GPU AMD Radeon HD 6950. Вот я и не могу понять, то ли дело в старой видюхе, то ли юзкейс совсем не тот. Поэтому прошу собрать и запустить код ниже. Программа для GPU должна называеться «test.cl» (ну вы видите, там это захардкодено).
Собирается как-то так:
cc -I/usr/local/include -L/usr/local/lib -lOpenCL -o test test.c
Прошу привести вывод того, что напечатает. У меня вот скорость вычислений одного порядка на CPU и GPU, но время передачи данных велико и убивает весь профит. Ещё почему-то, если 2 раза подсчитать одно и то же, то во второй раз на GPU скорость растет на порядок. Только смысл в этом?
С НГ!
( читать дальше... )
( читать дальше... )