The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Create streams on GPU/CPU

library("clrng")
get_system_info()
## $`1. Operating System`
## [1] "Linux"
## 
## $`2. CPU`
## [1] "Intel(R) Xeon(R) W-2145 CPU @ 3.70GHz"
## 
## $`3. GPU`
## [1] "\020n\r\xaa9\177"       "\020n\r\xaa9\177"       "gfx906:sramecc+:xnack-"
## 
## $`4. OpenCL Version`
## [1] "OpenCL 3.0 LINUX"                                         
## [2] "OpenCL 1.2 Intel(R) FPGA SDK for OpenCL(TM), Version 20.3"
## [3] "OpenCL 2.1 AMD-APP (3614.0)"
if (detectGPUs()) {
  setContext(grep("gpu", listContexts()$device_type)[1])
    ## check gpu information
    currentDevice()
    
    ## create 4 streams on CPU as R matrix (with package's default initial seed)
    streamsonCpu <- createStreamsCpu(n=4)
    
    ## Important: streams are of type integer in R
    typeof(streamsonCpu) 
    
    ## Attention: when converting streams from CPU to GPU, 
    ## should set type = "integer", or leave it as default `NULL' as below
    t(as.matrix(vclMatrix(streamsonCpu)))
    t(as.matrix(2*vclMatrix(streamsonCpu)))
    t(as.matrix(2*vclMatrix(streamsonCpu, type="integer"))) 
    
    type = c('float','double')[1+gpuR::deviceHasDouble()]
    ## setting streams as "double" or other type can cause problems, see the following 
    t(as.matrix(2*vclMatrix(streamsonCpu, type=type))) 
    t(as.matrix(vclMatrix(2*streamsonCpu)))
    
    ## continue to create 6 streams on GPU
    streamsonGpu <- createStreamsGpu(n=6)
    t(as.matrix(streamsonGpu))
    
    ## save the created streams as .rds object on CPU 
    saveRDS(as.matrix(createStreamsCpu(n = 4)), "myStreams.rds")
    
    ## load saved streams
    streams_saved <- vclMatrix(readRDS("myStreams.rds"))

} else {
   message("No GPU detected. Skipping GPU-dependent code.")
}

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.