problem with magma_dgetri_gpu function

Open discussion for MAGMA

problem with magma_dgetri_gpu function

Postby alinve » Fri Jan 20, 2012 7:01 am

Dear all,

I've installed the new realesed of MAGMA library 1.1. The device on which I'm working is a Tesla M2050 with compute capability 2.0.
I'm facing problem using the function magma_dgetri_gpu for computing the inverse of a matrix, using LU factorization, that give me a strange error 'can not bind to texture',
which I'm not able to resolve.
I've noticed that also the testing program provided with MAGMA library failed with the same error.

./testing_dgetri_gpu -N 2048
device 0: Tesla M2050, 1147.0 MHz clock, 2687.4 MB memory, capability 2.0


N CPU GFlop/s GPU GFlop/s ||R||_F / ||A||_F
========================================================
can not bind to texture
can not bind to texture
can not bind to texture
can not bind to texture
can not bind to texture


Have you ever encountered this problem? Have you got any idea about this message error??
I'm working with other functions of the MAGMA 1.1 without any problems.

Thanks
Alice
alinve
 
Posts: 2
Joined: Fri Jan 20, 2012 5:27 am

Re: problem with magma_dgetri_gpu function

Postby mgates3 » Fri Jan 20, 2012 7:06 pm

Hi Alice,

Usually that is caused by accessing the wrong memory, like a segfault in CPUs. Looks like I can replicate your problem, so it's a bug in MAGMA. I'll look into it.

In the meantime, may I ask why are you computing the inverse? If you are trying to compute b = A^{-1} x, it is generally both faster and more accurate to solve Ax=b by using gesv to compute the LU factors and solve LUx = b.

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

Re: problem with magma_dgetri_gpu function

Postby fletchjp » Sun Jan 22, 2012 4:36 pm

I can report the same problem on my system:

Code: Select all
fletcher@fletcher-desktop:~/magma_1.1.0/testing$ ./testing_dgetri_gpu -N 2048
device 0: GeForce GTX 460, 1400.0 MHz clock, 2047.2 MB memory, capability 2.1


  N    CPU GFlop/s    GPU GFlop/s    ||R||_F / ||A||_F
========================================================
can not bind to texture
can not bind to texture
.......
can not bind to texture
can not bind to texture
 2048     23.90          80.40        1.177364e-01


When I run the whole test case it runs past that size and only crashes later:

Code: Select all
fletcher@fletcher-desktop:~/magma_1.1.0/testing$ ./testing_dgetri_gpu
device 0: GeForce GTX 460, 1400.0 MHz clock, 2047.2 MB memory, capability 2.1

Usage:
  testing_dgetri_gpu -N 1024



  N    CPU GFlop/s    GPU GFlop/s    ||R||_F / ||A||_F
========================================================
 1024     22.31          29.57        1.920527e-14
 2048     24.55          42.00        8.356550e-15
 3072     25.75          45.78        2.248352e-14
 4032     25.83          46.09        4.037546e-14
 5184     26.03          53.38        5.320844e-14
 6048     26.06          54.42        4.180547e-14
 7200     26.22          53.87        4.650466e-14
 8064     25.81          56.28        4.017278e-14
 8928     26.60          56.63        nan
can not bind to texture
can not bind to texture


I hope this helps.

John
fletchjp
 
Posts: 170
Joined: Mon Dec 27, 2010 7:29 pm

Re: problem with magma_dgetri_gpu function

Postby alinve » Mon Jan 23, 2012 3:45 am

Dear all,
Thank you. John, I faced the same problem when I run the test case without optional argument and when I set the matrix dimension with -N parameter. In the first case it crashes later.
Mark, I've taken a look to magma documentation about magma_dgetri_gpu, it computes the inverse of a matrix using LU factorization and then it solves a system of the form LUx=b, as you suggested. In facts this function required on entry the factor L and U of LU decomposition instead of the original matrix.

Thanks,
Alice
alinve
 
Posts: 2
Joined: Fri Jan 20, 2012 5:27 am

Re: problem with magma_dgetri_gpu function

Postby mgates3 » Mon Feb 06, 2012 5:36 pm

Alice,

What I meant in my original reply is to use getrf and getrs -- or equivalently, gesv -- to solve Ax = b. getrf computes the LU factors, then getrs solves LUx = b using forward and back triangular solves. The inverse A^{-1} is never explicitly computed.

Yes, getri takes the LU factors generated by getrf. But again, I don't generally recommend using getri to solve Ax = b, or equivalently, computing x = A^{-1} b.

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


Return to User discussion

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 2 guests

cron