magma_dsyevd_gpu and magma_dstedx

Open discussion for MAGMA

magma_dsyevd_gpu and magma_dstedx

Postby davelarge » Thu May 31, 2012 7:40 am

Hi all.

I'm not sure if this is a bug or whether I've misunderstood something, but there seems to be a problem with the definition of workspace sizes in dsyevd_gpu and dstedx.

In lines 262-267 of dsyevd_gpu.cpp the variable llwrk2 is defined and used as the input for lwork in the call to magma_dstedx on line 316. However, this value is too small unless lwork used to call magma_dsyevd_gpu is larger than 1 + 6n + 2*n^2.

Perhaps there is some reason why the lwork for dstedx has to be smaller than lwork for dsyevd_gpu, but if this is the case then perhaps the documentation can be updated to reflect this.

Dave
davelarge
 
Posts: 5
Joined: Thu May 31, 2012 7:30 am

Re: magma_dsyevd_gpu and magma_dstedx

Postby davelarge » Tue Jun 05, 2012 7:36 am

Another little oddity:

I find that when I call magma_dsyevd_gpu for small N, that I get the error message

** On entry to magma_dsytrd_gpu parameter number 11 had an illegal value

It seems to me that parameter 11 is the array iwork, which is strange, because I don't see where in the code for magma_dsyevd_gpu that this is checked. Any ideas what's going on?

Thanks. 8-)
davelarge
 
Posts: 5
Joined: Thu May 31, 2012 7:30 am

Re: magma_dsyevd_gpu and magma_dstedx

Postby emilb » Fri Feb 08, 2013 1:38 pm

Ran into this as well so I rebuilt magma with debug info and ran under gdb. The first breakpoint is the function called in inquiry mode. Results are fed back into the second call and generate the same error you noted.

Breakpoint 1, magma_dsyevd_gpu (jobz=86 'V', uplo=76 'L', n=9, da=0xb020c0000,
ldda=9, w=0x4dc8c10, wa=0x543e990, ldwa=9, work=0x7fffffff7630, lwork=-1,
iwork=0x7fffffff7680, liwork=-1, info=0x7fffffff76cc) at dsyevd_gpu.cpp:134
134 char uplo_[2] = {uplo, 0};

Breakpoint 1, magma_dsyevd_gpu (jobz=86 'V', uplo=76 'L', n=9, da=0xb020c0000,
ldda=9, w=0x4dc8c10, wa=0x543e990, ldwa=9, work=0x5440550, lwork=217,
iwork=0x4e0ff60, liwork=48, info=0x7fffffff759c) at dsyevd_gpu.cpp:134
134 char uplo_[2] = {uplo, 0};

On entry to magma_ parameter number 11 had an illegal value
emilb
 
Posts: 3
Joined: Fri Feb 08, 2013 1:24 pm

Re: magma_dsyevd_gpu and magma_dstedx

Postby emilb » Fri Feb 08, 2013 2:31 pm

Ran into the same thing using v 1.3.0. Called in inquiry mode to get lwork and liwork. Fed results back in for the next call and received the same error you did.
emilb
 
Posts: 3
Joined: Fri Feb 08, 2013 1:24 pm


Return to User discussion

Who is online

Users browsing this forum: Bing [Bot] and 1 guest

cron