cuRAND — Anaconda Enterprise 4.4 documentation

Anaconda Enterprise: Documentation

# cuRAND

Provides pseudo-random number generator (PRNG) and quasi-random generator (QRNG). See NVIDIA cuRAND.

## class PRNG

class `accelerate.cuda.rand.` `PRNG`(*args, **kws)

  cuRAND pseudo random number generator

  Parameters: | rndtype – Algorithm type. All possible values are listed as class attributes of this class, e.g. TEST, DEFAULT, XORWOW, MRG32K3A, MTGP32. seed – Seed for the RNG. offset – Offset to the random number stream. stream – CUDA stream.

  Example:

      >>> from accelerate.cuda import rand
      >>> from numpy import empty
      >>> prng = rand.PRNG(rndtype=rand.PRNG.XORWOW)
      >>> r = empty(10)
      >>> prng.uniform(r)
      >>> r
      array([ ... ])

  `lognormal`(ary, mean, sigma, size=None)
    Generate floating point random number sampled
      from a log-normal distribution and fill into ary.

    Parameters: | ary – Numpy array or cuda device array. mean – Center of the distribution. sigma – Standard deviation of the distribution. size – Number of samples. Default to array size.

  `normal`(ary, mean, sigma, size=None)

    Generate floating point random number sampled from a normal distribution and fill into ary.

    Parameters: | ary – Numpy array or cuda device array. mean – Center of the distribution. sigma – Standard deviation of the distribution. size – Number of samples. Default to array size.

  `poisson`(ary, lmbd, size=None)

    Generate floating point random number sampled from a poisson distribution and fill into ary.

    Parameters: | ary – Numpy array or cuda device array. lmbda – Lambda for the distribution. size – Number of samples. Default to array size.

  `seed`

    Mutatable attribute for the seed for the RNG

  `stream`

    Associate a CUDA stream to the generator object. All subsequent calls will use this stream.

  `uniform`(ary, size=None)
    Generate floating point random number sampled
      from a uniform distribution and fill into ary.

    Parameters: | ary – Numpy array or cuda device array. size – Number of samples. Default to array size.

## class QRNG

class `accelerate.cuda.rand.` `QRNG`(*args, **kws)

  cuRAND quasi random number generator

  Parameters: | rndtype – Algorithm type. Also control output data type. All possible values are listed as class attributes of this class, e.g. TEST, DEFAULT, SOBOL32, SCRAMBLED_SOBOL32, SOBOL64, SCRAMABLED_SOBOL64. ndim – Number of dimension for the QRNG. offset – Offset to the random number stream. stream – CUDA stream.

  `generate`(ary, size=None)

    Generate quasi random number in ary.

    Parameters: | ary – Numpy array or cuda device array. size – Number of samples; Default to array size. Must be multiple of ndim.

  `ndim`

    Mutatable attribute for number of dimension for the QRNG.

  `stream`

    Associate a CUDA stream to the generator object. All subsequent calls will use this stream.

## Top Level PRNG Functions

Simple interface to the PRNG methods.

Note

This methods automatically create a PRNG object.

`accelerate.cuda.rand.` `uniform`(size, dtype=<type 'float'>, device=False)

  Generate floating point random number sampled from a uniform distribution

  Parameters: | size – Number of samples. dtype – np.float32 or np.float64. device – Set to True to return a device array instead or numpy array.
  Returns: | A numpy array or a device array.

      >>> from accelerate.cuda import rand
      >>> rand.uniform(size=10)
      array([...])

  See also

  `accelerate.cuda.rand.PRNG.uniform()`

`accelerate.cuda.rand.` `normal`(mean, sigma, size, dtype=<type 'float'>, device=False)

  Generate floating point random number sampled from a normal distribution

  Parameters: | mean – Center point of the distribution. sigma – Standard deviation of the distribution. size – — Number of samples. dtype – np.float32 or np.float64. device – Set to True to return a device array instead or ndarray.
  Returns: | A numpy array or a device array.

      >>> from accelerate.cuda import rand
      >>> rand.normal(mean=0, sigma=1, size=10)
      array([...])

  See also

  `accelerate.cuda.rand.PRNG.normal()`

`accelerate.cuda.rand.` `lognormal`(mean, sigma, size, dtype=<type 'float'>, device=False)

  Generate floating point random number sampled from a log-normal distribution.

  Parameters: | mean – Center point of the distribution. sigma – Standard deviation of the distribution. size – Number of samples. dtype – np.float32 or np.float64. device – set to True to return a device array instead or ndarray.
  Returns: | A numpy array or a device array.

      >>> from accelerate.cuda import rand
      >>> rand.lognormal(mean=0, sigma=1, size=10)
      array([...])

  See also

  `accelerate.cuda.rand.PRNG.lognormal()`

`accelerate.cuda.rand.` `poisson`(lmbd, size, device=False)

  Generate int32 random number sampled from a poisson distribution.

  Parameters: | lmbda – Lambda of the distribution. size – Number of samples device – Set to True to return a device array instead or ndarray.
  Returns: | A numpy array or a device array.

      >>> from accelerate.cuda import rand
      >>> rand.poisson(lmbd=1, size=10)
      array([...], dtype=uint32)

  See also

  `accelerate.cuda.rand.PRNG.poisson()`

## Top Level QRNG Functions

Simple interface to the QRNG methods.

Note

This methods automatically create a QRNG object.

`accelerate.cuda.rand.` `quasi`(size, bits=32, nd=1, device=False)

  Generate quasi random number using SOBOL{bits} RNG type.

  Parameters: | size – Number of samples. bits – Bit length of output element; e.g. 32 or 64. nd – Number of dimension . device – Set to True to return a device array instead or ndarray.
  Returns: | A numpy array or a device array.

      >>> from accelerate.cuda import rand
      >>> rand.quasi(10)
      array([...], dtype=uint32)

  See also

  `accelerate.cuda.rand.QRNG.generate()`