Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Batched Serial Eigendecomposition #873

Open
sslattery opened this issue Jan 12, 2021 · 11 comments
Open

Batched Serial Eigendecomposition #873

sslattery opened this issue Jan 12, 2021 · 11 comments

Comments

@sslattery
Copy link

sslattery commented Jan 12, 2021

Looking at the eigendecomposition code here:

the device code path is commented out per #749.

What is the state of the device code path without MKL (e.g. the general code path starting here:

// real_type *t = w_now; w_now += m; wlen_now -= m;

Is MKL the only issue or does this code path also need testing before it is available on device?

@sslattery
Copy link
Author

@kyungjoo-kim Curious on your thoughts on this one - the general non-MKL eigendecomposition code path would be very useful on device and host

@sslattery
Copy link
Author

@srajama1 Who is best to help out with this one?

@srajama1
Copy link
Contributor

srajama1 commented Feb 7, 2021

@vqd8a can you take this question ?

@vqd8a
Copy link
Contributor

vqd8a commented Feb 7, 2021

@srajama1 Yes, sure.
@sslattery I will try to get back to you asap. Thanks.

@sslattery
Copy link
Author

@vqd8a any updates?

@vqd8a
Copy link
Contributor

vqd8a commented Feb 17, 2021

@sslattery So sorry, I have not had time for it over the past few days. Let me look at it this week.

@terwin
Copy link

terwin commented Feb 19, 2021

Uncommenting the code, I get incorrect results for the following matrix:

A = { { 0.5, 0.0, 2.5 , 0.0, 0.0 },
      { 0.0, 0.5, 0.0 , 0.0, 0.0 },
      { 0.0, 0.0, 0.5 , 0.0, 0.4 },
      { 0.0, 0.0, 0.0 , 0.5, 0.0 },
      { 0.0, 0.0, 1.05, 0.0, 0.5 } };

This matrix has all real eigenvalues, but the kernel is returning one pair of complex eigenvalues.

@vqd8a
Copy link
Contributor

vqd8a commented Mar 15, 2021

@sslattery @terwin Sorry for my late reply.
Please see Kyungjoo's answers in #905. The device code path was commented out because it is not stable. Please let me know if you need Eigendecomposition or just SVD?
If it is just SVD, @brian-kelley will add a team/serial SVD in #909.
But if it necessary, I can look into improving the stability of the device code of Eigendecomposition.

@sslattery
Copy link
Author

@vqd8a The general eigendecomposition is the most critical for us right now. An SVD is also important for us but second in priority. Thanks!

@sslattery
Copy link
Author

@vqd8a Also note that it is critical for us to have a fully templated code path and therefore the internal implementation rather than those that called MKL or LAPACK were necessary for us.

@vqd8a
Copy link
Contributor

vqd8a commented Mar 16, 2021

@sslattery Thanks for letting me know. I will work on the general eigendecomposition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants