Поток случайных чисел на GPU
Использовать parallel.gpu.RandStream для управления потоком случайных чисел глобального GPU и создания нескольких независимых потоков на GPU. При генерации случайных чисел на GPU эти числа извлекаются из потока случайных чисел GPU. Этот поток отличается от случайного потока клиентского сеанса MATLAB ® на ЦП .
Для создания случайных чисел на GPU используйте функции генератора случайных чисел rand, randi, и randn с gpuArrays. По умолчанию эти функции извлекают числа из глобального потока случайных чисел GPU. Чтобы использовать другой поток, следуйте синтаксисам, описанным в разделе Функции объекта. Если используется поток случайных чисел GPU, результаты возвращаются как gpuArray.
Используйте следующие синтаксисы для создания одного parallel.gpu.RandStream объект. Если требуется создать несколько независимых потоков одновременно, используйте parallel.gpu.RandStream.create функция.
s = parallel.gpu.RandStream( создает поток случайных чисел, который использует алгоритм генератора однородных псевдослучайных чисел, заданный gentype)'gentype'.
parallel.gpu.RandStream.create | Создание независимых потоков случайных чисел на GPU |
parallel.gpu.RandStream.list | Алгоритмы генератора случайных чисел на GPU |
parallel.gpu.RandStream.getGlobalStream | Текущий поток случайных чисел глобального графического процессора |
parallel.gpu.RandStream.setGlobalStream | Установка глобального потока случайных чисел GPU |
reset (RandStream) | Сброс потока случайных чисел |
По умолчанию при создании случайных чисел на GPU с использованием функций генерации случайных чисел, таких как randслучайные числа извлекаются из глобального потока случайных чисел на GPU. Чтобы указать другой поток, создайте parallel.gpu.RandStream и передать его в качестве первого входного аргумента. Например, создайте вектор случайных чисел 4 на 1, используя алгоритм генератора Филокса.
s = parallel.gpu.RandStream('Philox');
r = rand(s,4,1);Эти функции принимают parallel.gpu.RandStream объект и генерация случайных чисел на GPU:
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. |