The R programming language uses Basic Linear Algebra Subprograms (BLAS) for performing common linear algebra operations such as vector addition, scalar multiplication, dot products, linear combinations, and matrix multiplication. R includes Netlib BLAS by default. Significant performance gains can be achieved by replacing that with a different BLAS library such as OpenBLAS or ATLAS.

Further gains are possible by intercepting certain calls to BLAS with NVIDIA’s NVBLAS. Operations that can benefit from running on a GPU will be automatically redirected to cuBLAS without any modification to your R code.