LINUX.ORG.RU

Сообщения deadplace

 

Любителям 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 скорость растет на порядок. Только смысл в этом?

С НГ!

( читать дальше... )

( читать дальше... )

 

deadplace
()

Нужны десять тайных лекций по вейвлетам

У меня анонс: к выходу готовится новая ОС, написанная с нуля на квантовых вейвлетах с применением машинного обучения.^U Поэтому у кого есть книжка «Ten lectures on wavelets», прошу дать ссылку. В интернете есть вариант с плохим качеством сканирования и пропущенными страницами, хочу нормальную. Да, гугль букс предлагает её купить за 6k (лол).

Вот тут человек с бояном dikiy советовал книгу «Introduction to Hilbert spaces with applications». Там вкратце затрагивается тема вейвлетов и неких биортогональных вейвлетов. Хотелось бы о последних более подробно.

Сюда, потому что готовится новая ОС, связанная с линуксом

 

deadplace
()

Параллельный low-pass фильтр для GPU

Пытаюсь освоить OpenCL, и всё больше мне кажется, что это сферическая технология в вакууме. Например, я нашел алгоритмы reduce и scan для ассоциативных функций. Мне же хочется посчитать такой массив (по сути, простейший low-pass фильтр):

b_{0} = a_{0}
b_{n} = \alpha b_{n-1} + (1-\alpha) a_{n}

Найденный мной алгоритм scan делает из массива (a0, a1, a2, a3, ...) массив (i, a0, a0+a1, a0+a1+a2, ...) где + — ассоциативная функция от 2-х аргументов, i+x = x

Только вот функция f(x,y) = a*x + (1-a)*y нифига не ассоциативная. И что, нет совершенно никакого способа посчитать массив b на GPU?

Low-pass фильтр взял совершенно наобум, но потребность считать что-то, что зависит от предыдущего шага вполне естественна. Например, решение дифуров методом Эйлера (Рунге-Кутта, да кого угодно) тоже предполагает такие вычисления

 

deadplace
()

RSS подписка на новые темы