I'm trying to use the magma_dsgesv_gpu() functionand I'm confused about the IPIV and dIPIV arguments. The IPIV argument is the same as in the reference Lapack implementation (http://www.netlib.no/netlib/lapack/double/dsgesv.f). Am I right? Also, in the magma_dsgesv_gpu() function, this must be stored in CPU memory. The problem is that I don't understand the behavior of the dIPIV argument. The documentation says:
- Code: Select all
dIPIV (output) INTEGER array on the GPU, dimension (min(M,N))
The pivot indices; for 1 <= i <= min(M,N), row i of the
matrix was moved to row IPIV(i).
First of all, I think there is an error about its dimensions. As the matrix A is NxN, the min(M,N) has no sense, so the length of dIPIV should be N. Stores dIPIV at output the same data as IPIV?