GPU FFT2 Discrepancies ( Different from CPU based FFT2 )
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Kevin Blank
el 22 de Oct. de 2013
Comentada: Kevin Blank
el 22 de Oct. de 2013
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 comentarios
Respuesta aceptada
Ben Tordoff
el 22 de Oct. de 2013
See the answer(s) to this question: why do some calculations like the fft produce different results when performed on a gpu?
Más respuestas (0)
Ver también
Categorías
Más información sobre GPU Computing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!