使用 pyCUDA 生成随机数
Random number generation with 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 pycuda.curandom import XORWOWRandomNumberGenerator
rng = XORWOWRandomNumberGenerator()
d_x = rng.gen_uniform((N,), dtype = np.float32)
我的问题是如何为随机数生成器提供种子。
class pycuda.curandom.XORWOWRandomNumberGenerator(seed_getter=None, offset=0)
Parameters:
seed_getter
– a function that, given an
integer count, will yield an int32
GPUArray of seeds.
offset
–
Starting index into the XORWOW sequence, given seed.
seed_getter
函数的例子是什么?
curandom
模块有两个用于生成随机种子的内置函数:
seed_getter_uniform
将 return 长度为 N 的数组用单个随机种子初始化,并且
seed_getter_unique
这将 return 一个用 N 个不同的随机种子初始化的数组。
根据您是希望所有内部生成器实例使用相同种子还是唯一种子来使用其中之一。
我想用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.XORWOWRandomNumberGenerator(seed_getter=None, offset=0)
Parameters:
seed_getter
– a function that, given an integer count, will yield anint32
GPUArray of seeds.
offset
– Starting index into the XORWOW sequence, given seed.
seed_getter
函数的例子是什么?
curandom
模块有两个用于生成随机种子的内置函数:
seed_getter_uniform
将 return 长度为 N 的数组用单个随机种子初始化,并且seed_getter_unique
这将 return 一个用 N 个不同的随机种子初始化的数组。
根据您是希望所有内部生成器实例使用相同种子还是唯一种子来使用其中之一。