c++ccudadeterminantscusolver

I don't find the LU decomposition on the device with cuSolver


I need to calculate the determinant of a matrix (array of double) with cuda and I want use the LU decomposition to do this. I don't find the device function in cusolverSp.h but only the host function cusolverSpDcsrlsvluHost. I look in cuda 7.0 and cuda 7.5.

I don't understand why I can't find it because it is described in the official documentation: http://docs.nvidia.com/cuda/cusolver/index.html#api

Other functions like the Cholesky decomposition on the device works.

Is it implemented? If yes, where can I find it?

Thank you for your help!


Solution

  • Looking at the documentation you pointed I see:

    Remark 5: only CPU (Host) path is provided

    A bit of reading on the page gives this:

    Next, cuSolverSP provides a new set of sparse routines based on a sparse QR factorization. Not all matrices have a good sparsity pattern for parallelism in factorization, so the cuSolverSP library also provides a CPU path to handle those sequential-like matrices. For those matrices with abundant parallelism, the GPU path will deliver higher performance. The library is designed to be called from C and C++.

    Combining the two quotes, I guess the device function wasn't deemed worth providing... This is just my interpretation though.