SGESVD-- whats the max matrix taken by GESVD

General CULA Dense (LAPACK & BLAS) support and troubleshooting. Use this forum if you are having a general problem or have encountered a bug.

SGESVD-- whats the max matrix taken by GESVD

Postby lizecn » Thu Jun 17, 2010 6:24 am

I wanna know whats the max matrix taken by GESVD when using a Tesla C1060
4GB memory, and Is there a way to use some API to get the max dimension
or a method to compute the max matrix ?

thx for ur ideas!
lizecn
 
Posts: 6
Joined: Mon Oct 05, 2009 12:30 pm

Re:SGESVD-- whats the max matrix taken by GESVD

Postby kyle » Thu Jun 17, 2010 7:36 am

A full SVD uses a large amount of memory. With an input matrix of A(M,N) you'll have output matrices of U(M,M) and V(N,N) in additional to the singular values and some relatively small internal workspace.

For example, if you have M=N=8192 you'll need about 1 GB of available memory for single precision. For M=N=18432, you'll use just about all available 4 GB of memory.
kyle
Administrator
 
Posts: 301
Joined: Fri Jun 12, 2009 7:47 pm

Re:SGESVD-- whats the max matrix taken by GESVD

Postby lizecn » Thu Jun 17, 2010 8:42 am

thx for admin's reply

so for such a SVD with a matrix of 8192X8192
it needs sizeof(A)+sizeof(U)+sizeof(VT)+sizeof(diagof(S))+samll internal workspace. now A is 8192X8192, so it needs 3*sizeof(A)+ sizeof(diagof(S))+samll internal workspace cause m=n, that is 768MB+sizeof(diagof(S))+samll internal workspace,its about 1GB. ill try it with m=n=18432.
lizecn
 
Posts: 6
Joined: Mon Oct 05, 2009 12:30 pm

Re:SGESVD-- whats the max matrix taken by GESVD

Postby john » Thu Jun 17, 2010 9:21 am

Note that you can decrease the memory usage via the other job codes. (especially O and N)
john
Administrator
 
Posts: 587
Joined: Thu Jul 23, 2009 2:31 pm

Re:SGESVD-- whats the max matrix taken by GESVD

Postby lizecn » Fri Jun 18, 2010 8:02 am

thx for admin's reply

Actually i tried a matrix A of 18750X18750 (simple precision)
so according to the above, it needs sizof(A)+sizeof(U)+sizeof(VT)+
sizeof(diag(S))+internal workspace, that is:

3*(18750*18750*4)+ sizeof(diag(S))+internal workspace
=4023MB+sizeof(diag(S))+internal workspace

This test is passed.
lizecn
 
Posts: 6
Joined: Mon Oct 05, 2009 12:30 pm


Return to CULA Dense Support

Who is online

Users browsing this forum: No registered users and 5 guests

cron