I’m having a ball with the cuSolver routines–faster than MAGMA by a significant margin in all the ways that I’m keen on using, and also more stable (in that they have never crashed on me, whereas MAGMA dsyevd has crashed a lot).
However, when I look at the results returned from cusolverDnDsyevd, expecting to find the eigenvectors in the erstwhile matrix memory space, I find that the vectors appear to have been transposed relative to what GNU octave produces (and which appear to be valid eigenvectors). The original matrix was symmetric, so transposing the input is not the issue. Is this expected behavior?
The code I am using is attached. Run with
./cusolver_example -rank 8 -spy to see results…
cusolver_example.cpp (4.3 KB)