Learn R Programming

clrng (version 0.0.5)

runifGpu: runifGpu

Description

Generate uniform random numbers parallely on a GPU.

Usage

runifGpu(
  n,
  streams,
  Nglobal = getOption("clrng.Nglobal"),
  type = getOption("clrng.type"),
  verbose = FALSE
)

Value

a 'vclVector' or 'vclMatrix' of uniform random numbers.

Arguments

n

a number or a numeric vector specifying the size of output vector or matrix.

streams

a vclMatrix of streams.

Nglobal

a (non-empty) integer vector specifying size of work items for use, with default value from global option 'clrng.Nglobal'.

type

a character string specifying "double" or "float" of random numbers, with default value from global option 'clrng.type'.

verbose

a logical value, if TRUE, print extra information, default is FALSE.

Details

type specifies the precision type of random numbers. If GPU supports "double", 'clrng.Nglobal' is "double", otherwise, `clrng.Nglobal' is "single".

Examples

Run this code
 
library('clrng')
if (detectGPUs() >= 1) {
  setContext(grep("gpu", listContexts()$device_type)[1])
  currentDevice()
  getOption('clrng.Nglobal')
  streams <- createStreamsGpu()
  as.vector(runifGpu(5, streams))

  # Change global options 
  options(clrng.type="float")
  # produce a matrix of random numbers
  as.matrix(runifGpu(c(2,2), streams))} else {
  message("No GPU context available")
}

Run the code above in your browser using DataLab