использование QuasirandomGenerator (для чайников) - PullRequest
3 голосов
/ 15 февраля 2012

Я новичок в CUDA и изо всех сил пытаюсь сгенерировать случайные числа в своих ядрах.

Я знаю, что есть разные реализации, и, более того, в SDK 4.1 есть пример генератора квазислучайных последовательностей Niederreiter.

Я не знаю, с чего начать ..Мне немного грустно и я чувствую себя как дурачок ...

Может ли кто-нибудь, пожалуйста, привести простой и глупый пример использования генератора квазислучайных последовательностей Niederreiter (пример кода SKD)?Я действительно оценил бы это.Например, создание вектора и заполнение его случайными числами (каждый поток заполняет позицию вектора).

Заранее спасибо.

1 Ответ

1 голос
/ 15 февраля 2012

Образец quasirandomGenerator в SDK выполняет почти все, что вы просите, он берет область памяти и заполняет ее квазислучайными числами.

Тем не менее, я думаю, что вам лучше использовать cuRANDЭто Соболь, а не Нидеррейтер, но если у вас нет особых причин отдавать предпочтение более поздним, вам будет проще пользоваться.Примеры того, как его использовать, вы можете найти в наборе образцов MonteCarloCURAND:

  • EstimatePiQ показывает, как выделить область в памяти GPU и заполнить ее числами Соболя
  • EstimatePiInlineQпоказано, как генерировать одно число за раз в другом ядре

В выборках, заканчивающихся на P, используются псевдослучайные генераторы.

...