i am now working a program about the inverse of the complex matrix,the type dimension is 3000,and the data type is float,but i cannot use the existed library like cublas or magma.how can i get start .i how no idea .would you give me some advice? i am very appreciate for it.
Inverting fairly large matrices like this is a non-trivial undertaking if you want to build a high-performance solution. What is the reason you cannot use CUBLAS or Magma? Does your use case definitely require the computation of the matrix inverse, or are you trying to solve a system of equations? If it is the latter, going through matrix inversion is unlikely to be the preferred approach.
If you are looking for basic pointers to algorithms used in matrix inversion, take a look at Gauss-Jordan.
There was a paper by JORGE SORIANO PINEDO which has a CUDA implementation of Gauss-Seidel, you can Google and find it.
Obviously the matrix needs to be symmetric and positive definite. If possible use cuBLAS Strsm(), or the equivalent in CULA or MAGMA.
my advisor think that if i can implement it independently.i can go to detail,optimize it according to my own hardware and sofeware environment.the project can work more effectively.i am sure i can achieve .
i am forbidden using the library and the complex matrix is a common one ,not symmetric or sparse.i will read the paper you recommend carefully.thanks.
netlib.org has a good paper about LU Factorization per panel. MAGMA has a good open-source CUDA implementation ( BSD-License ) : it can be used as a good starting point.
thanks very much