Eigenvalue and Eigenvector for Symmetric Matrix

I am looking CUBLAS library in order to solve the calculation for a subset (big values) of eigenvalues and corresponding eigenvectors for a symmetric matrix such as correlation matrix. In scalapack, I can do it by calling pdsyev(). It seems that a all-in-one function to do the eigenstates calculation has not been supported by CUBLAS. If anybody has already written such routine in CUDA, I would appreciate it if he/she can share the code with me.

The eigenvalue decomposition of a matrix is a function that would lie in the scope of an LAPack-type software in cuda. The closest thing to that right now is “CULA”. I plan to start working on this project for my own research; if you build one, too, let me know, and we might be able to collaborate.

The CULA team (http://www.culatools.com) is targeting a symmetric eigenvalue solver for the next release of our software. This should hopefully be ready sometime in January. We’ll have support for exactly what you are looking for: a symmetric eignevalue solver that calculates a range of eigenvalues. The LAPACK equivalent functions would be SSYEVR, DSYEVER, CHEEVR, and ZHEEVR (or the expert drivers in some caes, xxxEVX).

Register for the site now and we’ll notify you next time a software update is released. If you have any specific questions, post on our forums there. We check there much more often than here :)

Great jobs guys! Are you planning to implement _syev and _syevd? What about multiple GPU support?

xSYEV (general) will be there but I doubt it will be as efficient as xSYEVR (ranged). xSYEV uses the harder-to-parallelize implicit QL/QR method where as the xSYEVR variant is based on the MRRR method which parallelizes nicely. xSYEVD (divide and conquer) is our on list as well but I don’t have any early estimates on that method. For completion sake, we’ll also include the xSYEVX (expert) routine as it’s pretty much just a wrapper to either xSYEV or xSYEVR depending on input parameters. I’ll keep you updated when we have some more concrete data.

As far as multiple GPU, that on our radar as well.

Hello, I just wanted to revive this thread because we have just released CULA 1.2 with SYEV and SYEVX support. Between the two you get enough functionality to find a range of eigenvalues or all eigenvalues, and optionally you can choose to receive the eigenvectors. These are both for symmetric matrices.

Hey JohnH,

thanks a lot for the update. I was looking for a package that does eigenvectors ans eigenvalues and now I found one. Will definitely give it a try.

Oh… It’s $400… :(