I am running into a problem where on the device my results have around 100 out of 10 thousand incorrect values. The only function currently being calculated is the inverse of a 8 x 8 matrices.This only happens on the device, not in emulation mode. I was wondering if anyone knew what could cause this type of behavior. If this is not enough information then I will post the code.
Are the numbers wildly off, or just a bit? Also, do the erroneous values have any correlation to their location in data arrays?
Most of the time the inaccurate numbers are accurate to 4 total significant figures. There are some matrixes that are not close, but that is much less frequent then the other. The data always seams to be located in the correct place in the array.
Sorry missread the last part, the bad values are every value in the matrix, no specific location.
What’s the magnitude of errors? Can this be explained by rounding/truncation/precision limitations?
I have looked at the possible limitations, however I could not find a tie between the 100 or so matrices out of the 10000 that are incorrect. The magnitude of the errors varies. The data is usually looks like this CC.CCXXXXXX where the C are the correct values and the X are values that vary all over the place.
This is probably due to floating point precision difference on host and device. On host you have double precision and on device you can get only single precision.
You may try to reorder operations to minimize error.
If it were a percision error, then why would only 1% of the total matrices have the problem?
Because the magnitude of the error depends on the input-values and the operations performed on the input values.
Okay I will give it a try and see what happens.
Hi, I’m currently using 8800GT. I ran into problem similar to yours when running the examples released by nvidia (matrix multiplication, matrix transposing, etc.). Sometimes the error magnitude is big. I’ve tried many possible solutions found on this forum but finally solved it by “under-clocking”…
MAYBE something wrong with the card ?
A colleague of mine has no problems with hist 8800 GT at the factory clock, but does experience random failures when he overclocks it. Is your GPU perhaps overclocked from the factory (many are sold this way)?
I tried some reordering of operation which had no effect on the incorrect data. If someone could take a look at the current code I am posting to see if they can figure out what is going wrong it would be a great help. I am aware of problems creating delay and am currently working on them with this code.
inverse.tar (100 KB)