why SVD is so so slow??!
5 posts
• Page 1 of 1
why SVD is so so slow??!
I implemented SVD decomposition with culaDeviceSgesvd in CULA 1.3 and the test matrix is a positive definite matrix size of 4000*4000. This operation cost me 41282ms on my GTX280 GPU card. This function should be optimized I think!
- zhangft
- Posts: 17
- Joined: Thu Mar 25, 2010 4:23 am
Re:why SVD is so so slow??!
Hi zhangft,
I have a few questions.
1) Have you tried this on the CPU? SVD is a very intense algorithm. A 6 minute runtime isn't unheard of for large sizes.
Here is our expected performance chart for SVD: http://www.culatools.com/performance/svd
Here we show over a 3x speed up with a GPU runtime of about 40 seconds compared to about 150 seconds on the CPU.
2) Have you tried the non-device interface? A 4000x4000 matrix will see improvements with our regular interface.
-Kyle
I have a few questions.
1) Have you tried this on the CPU? SVD is a very intense algorithm. A 6 minute runtime isn't unheard of for large sizes.
Here is our expected performance chart for SVD: http://www.culatools.com/performance/svd
Here we show over a 3x speed up with a GPU runtime of about 40 seconds compared to about 150 seconds on the CPU.
2) Have you tried the non-device interface? A 4000x4000 matrix will see improvements with our regular interface.
-Kyle
- kyle
- Administrator
- Posts: 301
- Joined: Fri Jun 12, 2009 7:47 pm
Re:why SVD is so so slow??!
I just noticed you mentioned that your matrix is positive definite. Have you considered symmetric eigenvalue routines instead? Here is some information on SVD's relation to eigenvalues if you aren't familiar with that:
http://en.wikipedia.org/wiki/Singular_v ... omposition
In your case: SVD's A=U*S*V' is equal to SYEV's A=V*W*V'
For performance this is a massive reduction in work. SYEV is a less computationally complex algorithm and our performance of a 4K Eigenproblem results in about a 12 second runtime.
http://www.culatools.com/performance/sy ... enproblems
Hope this helps as well!
-Kyle
http://en.wikipedia.org/wiki/Singular_v ... omposition
In your case: SVD's A=U*S*V' is equal to SYEV's A=V*W*V'
For performance this is a massive reduction in work. SYEV is a less computationally complex algorithm and our performance of a 4K Eigenproblem results in about a 12 second runtime.
http://www.culatools.com/performance/sy ... enproblems
Hope this helps as well!
-Kyle
- kyle
- Administrator
- Posts: 301
- Joined: Fri Jun 12, 2009 7:47 pm
5 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest