Lanczos Solver
Lanczos Solver for Sparse Eigen Decomposition
We propose a new lanczos solver in raft that fixes the issues present in the previous solver raft::sparse::solver::detail::computeSmallestEigenvectors.
Specifically we address the following issues:
- Numerical Stability for both float32 and float64 datatypes
- Efficiency and Speed of Convergence
This new implementation is taken from the cupy library cupyx.scipy.sparse.linalg.eigsh where the thick-restart and full reorthogonalzation methods are used.
Additionally this PR exposes a python api for raft lanczos solver with an interface similar to scipy.sparse.linalg.eigsh and cupyx.scipy.sparse.linalg.eigsh.
from pylibraft.solver import eigsh
This pull request requires additional validation before any workflows can run on NVIDIA's runners.
Pull request vetters can view their responsibilities here.
Contributors can view more details about this message here.
I unfortunately don't have permissions to push on the branch of this PR so I kept the commits and continued on PR #2481.