A C++ linear algebra library for GPUs and multi-core CPUs using CUDA, OpenCL, and OpenMP

  • Three computing backends: CUDA, OpenCL, OpenMP
  • Iterative Solvers: Conjugate Gradient, Stabilized BiConjugate Gradient, Generalized Minimum Residual
  • Preconditioners: ICHOL, ILUT, ILU0, Block-ILU, AMG, (F)SPAI, Jacobi
  • BLAS Level 1, Level 2 and Level 3 routines on GPUs and multi-core CPUs
  • Fast Fourier transform
  • C++ Interface is mostly uBLAS compatible
  • Interfaces for uBLAS, Eigen and MTL 4
  • Iterative Solvers can directly be used with uBLAS, Eigen and MTL4 objects
  • MATLAB interface for iterative solvers (as separate download)
  • Structured matrices: Circulant, Hankel, Toeplitz, Vandermonde
  • OpenCL Kernel optimization environment for optimal performance on the target device
  • Header-only library
  • MIT (X11) open source license

More information can be found at http://viennacl.sourceforge.net/