Поток случайных чисел на графическом процессоре
Используйте parallel.gpu.RandStream
управлять глобальным потоком графического процессора случайных чисел и создать несколько независимых потоков на графическом процессоре. Когда вы генерируете случайные числа на графическом процессоре, числа чертятся от потока графического процессора случайных чисел. Этот поток отличается от случайного потока клиента сеанс 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 . |