Hello, I have noticed a problem that Matlab FFT2 does not produce the same result on a GPU array as it does on a "normal" array.
The following code was used to ensure that my observation is correct.
totalDiff = 0;
for loop = 0:10000
a = rand( [2 2] );
cpuResult = fft2(a);
gpuResult = gather( fft2( gpuArray(a) ) );
diff = sum( gpuResult(:) - cpuResult(:) );
totalDiff = totalDiff + diff;
totalDiff / 10000
I appreciate any feedback regarding this question: Why is this changing result being observed and can it be minimized or removed? While these values are not extremely different (differing by 1e-17 or so), I would still like to ensure an exact equality between my GPU and CPU code.
P.S. fft also has changing results based on the device used for computation; but, for my system, the matrix has to be larger than 4 x 4 to observe the difference.