用pyCUDA生成随机数

用pyCUDA生成随机数,cuda,pycuda,Cuda,Pycuda,我想用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 pycud

我想用
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)
我的问题是如何为随机数生成器提供种子

最后,它说

class
pycuda.curandom.xorwowdrandomNumberGenerator(seed\u getter=None,offset=0)

参数

seed\u getter
–在给定 整数计数,将生成种子的
int32
GPUArray

偏移量 给定种子,开始索引到XORWOW序列


seed\u getter
函数的示例是什么?

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

  • 它将返回一个数组长度N,该数组长度N用一个随机种子初始化,并且
  • 它将返回一个用N个不同的随机种子初始化的数组
    根据您希望所有内部生成器实例使用相同的种子还是唯一的种子,使用其中一个或另一个。

    感谢Talonmes,但我尝试使用
    rng=XORWOWRandomNumberGenerator(pycuda.curandom.seed\u getter\u uniform(N))
    ,但它抛出以下错误:
    TypeError:“GPUArray”对象不可调用
    。您将函数提供给生成器,而不是输出。生成器自行处理种子生成:
    rng=xorwowdrandomNumberGenerator(pycuda.curandom.seed\u getter\u uniform)
    。谢谢