R interface to use GPU's
Clone or download
Determan Determan
Determan and Determan custom opencl vignette
Latest commit 1221717 Oct 23, 2017
Permalink
Failed to load latest commit information.
R bug fix for gemv, should be using 'nrow' for determining length. This… Oct 23, 2017
include documentation and vignette fixes for R CMD check, addressed compiler … Oct 9, 2017
inst rebuild and cleanup vignettes Oct 19, 2017
man spelling fixes, update .Rbuildignore for extra files Oct 13, 2017
src documentation and vignette fixes for R CMD check, addressed compiler … Oct 9, 2017
tests bug fix for gemv, should be using 'nrow' for determining length. This… Oct 23, 2017
vignettes custom opencl vignette Oct 23, 2017
.Rbuildignore spelling fixes, update .Rbuildignore for extra files Oct 13, 2017
.gitignore Internally query preferred work group size for custom kernels to addr… Oct 17, 2016
.travis.yml don't rebuild for coveralls Oct 10, 2017
DESCRIPTION bug fix for gemv, should be using 'nrow' for determining length. This… Oct 23, 2017
INSTALL add tools directory for configure script use (needed for OS), minor u… Nov 6, 2015
NAMESPACE documentation and vignette fixes for R CMD check, addressed compiler … Oct 9, 2017
README.md updated zenodo badge Oct 19, 2017
appveyor.yml update DESCRIPTION, appveyor branches filter, and cran comments for s… Oct 13, 2017
cleanup more cleanup Sep 4, 2016
cleanup.win build vignettes, update description, updated cleanup.win, added cran-… Oct 13, 2017
configure merge with develop for 2.0.0 release Oct 12, 2017
cran-comments.md update DESCRIPTION, appveyor branches filter, and cran comments for s… Oct 13, 2017
gpuR.Rproj documentation and vignette fixes for R CMD check, addressed compiler … Oct 9, 2017

README.md

gpuR

DOI

Gitter rooms available for discussion

chat general development testing

Build Status

Build Dev
Linux x86_64 Build Status Build Status
OSX Build Status Build Status
Windows x86 Appveyor Build Status Appveyor Build Status

Test coverage: Coverage Status

Community Use: Downloads

Welcome to my R package for simple GPU computing. Although there are a few existing packages to leverage the power of GPU's they are either specific to one brand (e.g. NVIDIA) or are not very user friendly. The goal of this package is to provide the user a very simple R API that can be used with any GPU (via an OpenCL backend). This is accomplished by interfacing with the ViennaCL library that I have packaged in the R package RViennaCL. To make the R API simple, I created new classes similar to the structure of the Matrix package. By doing so, typical methods may be overloaded to make for a very pleasing sytax. For example, to perform vector addition the syntax is:

A <- seq.int(from=0, to=999)
B <- seq.int(from=1000, to=1)
gpuA <- gpuVector(A)
gpuB <- gpuVector(B)

C <- A + B
gpuC <- gpuA + gpuB

all(C == gpuC)
[1] TRUE

I also recommend you read the vignette I included with this package to get a better understanding of its' capabilities.

vignette("gpuR")

Please note, all the functions herein use an OpenCL backend. If you prefer to have a CUDA based backend, please see my other package gpuRcuda which is simply an extension on top of this package where all functions herein are still applicable but also have the CUDA option available.

INSTALL

Please see my github wiki for installation instructions relevant to your operating system.

Things to Do

  1. Obviously more vector functions and matrix implementations
  2. My resources limit how much I can test (e.g. OS, GPU vendors). Would appreciate any feedback on how the installation and use fairs with other platforms and GPUs.
  3. Would love any suggestions :) (submit in the issues)