Поток случайных чисел на графическом процессоре
Использование 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. |