All pointers inside of a kernel are single dimension. There are no pointers to pointers in OpenCL. In order to get your host code to match what OpenCL kernels expect, you need to transform it from an array of pointers to int into an array of ints.
Hi. I am curious to where you got the matrix inversion kernel from? or did you write it yourself. I have been looking everywhere for one. Can you please tell me where you got it from or (if you wouldn't mind) send me the code?
I am guessing that the Sheeep didn't mean matrix inversion but rather transposition?
You may already well know this...
Generally, explicit matrix inversion is avoided (i.e. never done!). Even if such an inverse exists, poor numerical conditioning makes the calculation impractical. For example, solving A*x = b for x is the same as calculating x = inverse(A)*b . It's almost always much cheaper to solve the linear system (especially if there is structure to exploit) rather than invert the system matrix directly.
Instead of the matrix inverse, the singular value decomposition is often useful. Every matrix has one, unlike an inverse which does not exist if the matrix is singular. Latent semantic indexing and principal components analysis (PCA) are very closely related applications of this matrix factorization.