Используя случайные числа с GPU

Я исследую использование Nvidia GPU для моделирований Монте-Карло. Однако я хотел бы использовать gsl генераторы случайных чисел и также параллельный генератор случайных чисел, такие как SPRNG. Кто-либо знает, возможно ли это?

Обновление

Я играл с RNG использование GPU. В настоящее время нет хорошего решения. Вихрь Мерсенна, который идет с SDK, не действительно подходит для (моих) моделирований Монте-Карло, так как он невероятно занимает много времени для генерации семян.

Библиотеки NAG являются более многообещающими. Можно генерировать RNs или в пакетах или в отдельных потоках. Однако только несколько дистрибутивов в настоящее время поддерживаются - Универсальная форма, экспоненциальная и Нормальная.

9
задан csgillespie 16 September 2010 в 14:48
поделиться

6 ответов

В руководстве GSL рекомендуется Mersenne Twister .

У авторов Mersenne Twister есть версия для графических процессоров Nvidia . Я попытался перенести это в пакет R gputools , но обнаружил, что мне нужно слишком большое количество отрисовок (я думаю, миллионы), прежде чем комбинация «создание графического процессора и предоставление доступа к R» будет быстрее, чем просто рисование в R (с использованием только ЦП).

Это действительно компромисс между вычислениями и коммуникациями.

6
ответ дан 4 December 2019 в 12:16
поделиться

Вам придется реализовать их самостоятельно.

-2
ответ дан 4 December 2019 в 12:16
поделиться

Массивная параллельная генерация случайных чисел, как вам нужно, для графических процессоров - сложная проблема. Это активная тема для исследований. Вам действительно нужно быть осторожным, чтобы иметь не только хороший последовательный генератор случайных чисел (такие вы найдете в литературе), но и что-то, что гарантирует, что они независимы. Попарной независимости недостаточно для хорошего моделирования Монте-Карло. AFAIK не существует хорошего кода в открытом доступе.

5
ответ дан 4 December 2019 в 12:16
поделиться

Я только что обнаружил, что NAG предоставить несколько подпрограмм ГСЧ . Эти библиотеки бесплатны для ученых.

2
ответ дан 4 December 2019 в 12:16
поделиться

Используйте ГПСЧ Mersenne Twister, предоставляемую в CUDA SDK.

0
ответ дан 4 December 2019 в 12:16
поделиться

Здесь мы используем последовательности соболя на графических процессорах.

0
ответ дан 4 December 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: