Поток случайных чисел на графическом процессоре
Использование parallel.gpu.RandStream
для управления глобальным потоком случайных чисел GPU и создания нескольких независимых потоков на графическом процессоре. Когда вы генерируете случайные числа на графическом процессоре, номера рисуются из потока случайных чисел GPU. Этот поток отличается от случайного потока клиента MATLAB® сеанс на центральный процессор.
Чтобы создать случайные числа на графическом процессоре, используйте функции генератора случайных чисел rand
, randi
, и randn
с gpuArrays
. По умолчанию эти функции берут числа из глобального потока случайных чисел графический процессор. Чтобы использовать другой поток, следуйте синтаксисам, описанным в Функции Объекта. Если вы используете поток случайных чисел графический процессор, результаты возвращаются как gpuArray
.
Используйте следующие синтаксисы, чтобы создать одну parallel.gpu.RandStream
объект. Если вы хотите создать несколько независимых потоков одновременно, используйте parallel.gpu.RandStream.create
функция.
s = parallel.gpu.RandStream(
создает поток случайных чисел, который использует однородный алгоритм генератора псевдослучайных чисел, заданный gentype
)'gentype'
.
parallel.gpu.RandStream.create | Создайте независимые потоки случайных чисел на графическом процессоре |
parallel.gpu.RandStream.list | Алгоритмы генератора случайных чисел на графическом процессоре |
parallel.gpu.RandStream.getGlobalStream | Текущий глобальный поток случайных чисел графический процессор |
parallel.gpu.RandStream.setGlobalStream | Установите глобальный поток случайных чисел графический процессор |
reset (RandStream) | Сброс потока случайных чисел |
По умолчанию, когда вы создаете случайные числа на графическом процессоре с помощью функций генерации случайных чисел, таких как rand
случайные числа рисуются из глобального потока случайных чисел на графическом процессоре. Чтобы задать другой поток, создайте parallel.gpu.RandStream
Объекту и передайте его как первый входной параметр. Для образца создайте вектор 4 на 1 случайных чисел с помощью алгоритма генератора Philox.
s = parallel.gpu.RandStream('Philox'); r = rand(s,4,1);
Эти функции принимают parallel.gpu.RandStream
объект и сгенерируйте случайные числа на графическом процессоре:
rand | Равномерно распределенные случайные числа | Поддерживаемые синтаксисы, где X = rand(s) X = rand(s,n) X = rand(s,sz1,...,szN) X = rand(s,sz) X = rand(s,typename) rand , randi , и randn . |
randi | Равномерно распределенные псевдослучайные целые числа | |
randn | Нормально распределенные случайные числа | |
randperm | Случайное сочетание целых чисел | Поддерживаемые синтаксисы, где p = randperm(s,n) p = randperm(s,n,k) randperm . |