Биноминальный генератор случайных величин на CUDA - PullRequest
1 голос
/ 26 января 2010

Моя проблема заключается в следующем:

Мне нужно генерировать много случайных чисел параллельно, используя биномиальное распределение на CUDA. Все генераторы случайных чисел в CUDA основаны на равномерном распределении (насколько я знаю), что также полезно, так как все алгоритмы биномиального распределения должны использовать унифицированные переменные.

Существует ли какая-либо библиотека или реализация для генерации биномиальных случайных переменных в CUDA? Я вижу, что есть для JAVA в http://acs.lbl.gov/~hoschek/colt/, но он использует очень сложный алгоритм для распараллеливания. Однако, учитывая биномиальную переменную, следующую за B (N, p), существуют более простые алгоритмы с порядком сложности O (N), но это плохо для меня, потому что N может быть большим (около 2 ^ 32, максимум для целого числа).

Буду признателен за любую помощь. Большое спасибо. Miguel

P.S .: извините за мой плохой английский:)

1 Ответ

0 голосов
/ 26 января 2010

Это интересная проблема, я бы напал на проблему, используя предыдущее решение и адаптировав его к способу работы CUDA.

CiteSeerX - это место, где вы можете получить pdf для исследований, которые могут помочь. http://citeseerx.ist.psu.edu/

Вы смотрели на MDGPU? Это было предложено в другом вопросе в SO http://www -old.amolf.nl / ~ vanmeel / mdgpu / licence.html

Также у NAG есть библиотека, которая может помочь: http://www.nag.co.uk/numeric/gpus/

...