2011-05-19 11 views
5

Tengo un código cuda en el que he implementado varias FFT C2C 2D. Todas usan el mismo plan, pero por alguna razón, los tiempos en las FFT 2D son grandes y parecen variar bastante. El mismo tamaño de datos FFT parece llevar desde 0,4 a 1,8 s¿Es "2D fft" lo mismo que dos 1D fft?

Esto es para una FFT de 1920x1080. ¿Esos tiempos parecen razonables?

De todos modos, he tenido una buena experiencia con CUDA 1-D batido FFT ser rápido. ¿Es lo mismo tomar una FFT 1D a través de las filas, y luego otra vez a través de las columnas de una matriz para dar los mismos resultados que esta FFT 2D? Tengo experiencias de FFT ocurriendo en unas pocas centésimas de segundo en conjuntos de datos más grandes para FFT 1D, así que esperaba poder corregir algunos de estos resultados.

Gracias

+1

Recuerde que también hay una implícita transformar pasando aquí, cuyo patrón de acceso puede ralentizar las cosas considerablemente. –

+0

Esos tiempos son muy altos: FFTW en un Core i7 a 2.67 GHz hará esto en <100 ms. –

Respuesta