Diagonalizing a 40k by 40k matrix

torch.linalg.eigh(matrix) , this function is unable to find the eigenvectors of a 40K by 40 K matrix? Is there any solution to that. The matrix is sparse, but I need full eigenvectors. The numpy.linalg.eigh() is also not working. Only solution is scipy.linalg.eigsh() but this is costly in time, about 10 hours for one diagonalization process.
Please suggest something fast and reliable.