Work size of magma_dsyevdx is out of bounds in LP64 MAGMA

Open discussion for MAGMA library (Matrix Algebra on GPU and Multicore Architectures)

Work size of magma_dsyevdx is out of bounds in LP64 MAGMA

Postby jcbowden12 » Tue Oct 18, 2016 8:06 pm

Hi,

I have had trouble with the work size of magma_dsyevdx() being passed in with 32 bit integers. I am interfacing MAGMA with GNU R. R uses a 32 int interface to BLAS/LAPACK so I use the LP64 interface of MAGMA, and forcing the work size to be held in 32 bits dramatically reduces the size of problems the code can handle. Is there any chance that the work sizes of the LP64 version can be an explicit 64 bit int type?

Thanks,
Josh
jcbowden12
 
Posts: 14
Joined: Tue Mar 06, 2012 2:36 am

Re: Work size of magma_dsyevdx is out of bounds in LP64 MAGM

Postby mgates3 » Wed Oct 19, 2016 1:39 am

That's not immediately clear. If somewhere in the chain we call LAPACK with that lwork, then making it 64-bit in MAGMA won't help. It appears that we do call LAPACK dsytrd inside MAGMA dsytrd. At that point, LAPACK probably doesn't need the entire workspace, since it is working on some small portion of the matrix, but it would require some careful analysis of the code to make sure lwork was correctly translated from 64-bit to 32-bit when needed.

So it's probably possible, but not trivial.

-mark
mgates3
 
Posts: 736
Joined: Fri Jan 06, 2012 2:13 pm

Re: Work size of magma_dsyevdx is out of bounds in LP64 MAGM

Postby jcbowden12 » Wed Oct 19, 2016 8:56 pm

Thanks Mark,
Good to know it may be possible. I'm not sure if i'll try to implement it. I have a work-around by using shared memory and running the ILP64 MAGMA version in a separate process. It is not particularly elegant as often shmem is not cleaned up if R stops unexpectedly, so i'm interested in a better way.
Cheers,
Josh.
jcbowden12
 
Posts: 14
Joined: Tue Mar 06, 2012 2:36 am


Return to User discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron