I have a sparse matrix $W$ which is almost-squared ($N+1 \times N$) and I would like to know the eigenvalues of $A = W^T W$. $A$ is Hermitian so the eigenvalues are real-positive valued.
The usual approach would be to do svd(W)
, but I found no GPU SVD sparse implementation. I'm working in python but I'm good with any language hoping I can found a C/ C++ code to wrap and call.
I've looked into cuSPARSE and cuSOLVE and I only found:
- eigenvalue solver
- LU
- QR
- Cholesky
$W$ is an $N+1 \times N$ complex sparse matrix with sparsity = $1 - 2^{-M}$ for $M$ in $[9,10,11]$
I've tried using CPU libraries (numpy and scipy), but they're very slow since the fraction of nonzero SVD is more than 20% for $M = 9$. I've looked into the randomized solver implemented by scikit-learn but I cannot use it since this method is not proven to work on complex matrices.
Any tip is more than welcome.