parallel.gpu.RandStream
GPU 上的随机数流
说明
使用 parallel.gpu.RandStream
控制全局 GPU 随机数流,并在 GPU 上创建多个独立的流。当您在 GPU 上生成随机数时,这些数字是从 GPU 随机数流中提取的。此流与 CPU 上的客户端 MATLAB® 会话的随机流不同。
要在 GPU 上创建随机数,请使用随机数生成器函数 rand
、randi
和 randn
以及 gpuArray
。默认情况下,这些函数从全局 GPU 随机数流中提取数字。要使用不同的流,请按照 对象函数 中描述的语法进行操作。如果使用 GPU 随机数流,结果将以 gpuArray
的形式返回。
创建对象
使用以下语法创建单个 parallel.gpu.RandStream
对象。如果想要同时创建多个独立流,请使用 parallel.gpu.RandStream.create
函数。
描述
输入参量
属性
对象函数
parallel.gpu.RandStream.create | 在 GPU 上创建独立的随机数流 |
parallel.gpu.RandStream.list | GPU 上的随机数生成器算法 |
parallel.gpu.RandStream.getGlobalStream | 当前全局 GPU 随机数流 |
parallel.gpu.RandStream.setGlobalStream | 设置 GPU 全局随机数流 |
reset (RandStream) | 重置随机数流 |
默认情况下,当您使用随机数生成函数(例如 rand
)在 GPU 上创建随机数时,随机数是从 GPU 上的全局随机数流中提取的。要指定不同的流,请创建一个 parallel.gpu.RandStream
对象并将其作为第一个输入参量传递。例如,使用 Philox 生成器算法创建一个 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 。 |
示例
扩展功能
版本历史记录
在 R2011b 中推出