Skip to content
Orange Owl edited this page May 11, 2017 · 11 revisions

The calculation of the Singular Value Decomposition (SVD) of a matrix is at the basis of many computations and approaches in applied science. One example is the regularized solution of linear systems of equations. Another is Principal Component Analysis.

Many times, the applications requiring the SVD calculation deal with large matrices and/or request the SVD computation in an iterative process. Fortunately, the SVD can be quickly computed in CUDA using the routines provided in the cuSOLVER library. Below, we provide few representative examples relevant in common situations.

Before proceeding further, two points to remember:

  • gesvd routines assume Nrows >= Ncols. Of course, the case Nrows < Ncols can be dealt with by matrix transposition, for example by cublas<t>geam();
  • column major ordering is assumed.
  1. SVD of a real matrix.
  2. Singular values computation only of a real matrix.
  3. Singular values computation only of a complex matrix.