使用pyCUDA生成随机数

问题描述 投票:1回答:1

我想用pyCUDA生成随机数。

为此,我使用以下代码,我在Kaggle虚拟机上运行:

import numpy           as np
import time

import pycuda.gpuarray as     gpuarray
import pycuda.driver   as     cuda
import pycuda.autoinit
from pycuda.compiler   import SourceModule

N = 10

from pycuda.curandom import XORWOWRandomNumberGenerator
rng   = XORWOWRandomNumberGenerator()
d_x   = rng.gen_uniform((N,), dtype = np.float32)

我的问题是我如何用种子喂养随机数发生器。

pyCUDA documentation page,它说

pycuda.curandom.XORWOWRandomNumberGenerator(seed_getter=None, offset=0)

参数:

seed_getter - 给定整数计数的函数将产生int32 GPUArray种子。

offset - 给定种子的XORWOW序列的起始索引。

什么是seed_getter函数的例子?

cuda pycuda
1个回答
2
投票

curandom模块有两个用于生成随机种子的内置函数:

  1. seed_getter_uniform将返回一个用单个随机种子初始化的数组长度N,和
  2. seed_getter_unique将返回一个用N个不同随机种子初始化的数组。

根据您是否希望所有内部生成器实例使用相同的种子或唯一种子,使用其中一个。

© www.soinside.com 2019 - 2024. All rights reserved.