I am trying to calculate inverse of a 3x3 matrix on the GPU using Gaussian elimination, as required by another kernel already running on the GPU. However, seems I am not getting the right answer:
My original matrix is:
If I try my algorithm on the CPU using a simple C-code or in Matlab, it gives me the right answer as follows:
250000.001138622__________249999.998687641__________249999.999913132 249999.998687641__________250000.001138622__________249999.999913132 249999.999913132__________249999.999913132__________499999.999913132
however if I try this on the GPU, I get the following:
I am aware that this issue is probably related to the IEEE 754 standard of floating point operations on the GPU. Is there any way to work around this issue? I am pretty sure someone in this forum is having this similar issue. It would be highly appreciated if someone could share their few point here. thanks in advance.