GPU FFT2 Discrepancies ( Different from CPU based FFT2 )
2 次查看(过去 30 天)
显示 更早的评论
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] ); % Obtain random numbers
cpuResult = fft2(a); % Calculate on CPU
gpuResult = gather( fft2( gpuArray(a) ) ); % Calculate on GPU
diff = sum( gpuResult(:) - cpuResult(:) ); % Calculate difference
totalDiff = totalDiff + diff; % Get a running total of differences
end
totalDiff / 10000 %Output average change per matrix
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.
0 个评论
采纳的回答
Ben Tordoff
2013-10-22
See the answer(s) to this question: why do some calculations like the fft produce different results when performed on a gpu?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 GPU Computing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!