Sorry for replying a bit late. For FFTs, flops are measured in a standardized way. If you are doing an FFT of length N, the number of flops is counted as 5 N log N no matter how the actual FFT is computed. So, in the case of FFT, really you just specify a length N and measure the time.
For CPUs, the numbers using FFTW, one of the fastest FFT libraries that does take advantage of SIMD, the numbers usually do not exceed 5-6 gflops particularly for larger lengths.
OTOH, the above 55 gflops figure is also somewhat misleading since it does not include transfer time of data b/w RAM and GPU. Actual throughput is somewhere around 20gflops. On one particular project using FFT, I got around 15 gflops using GPU including transfer time while testing several FFT libraries, I never got above 3 gflops on a 2.4ghz quad-core using all four cores. The lenghts were big enough not to fit into cache thus reducing CPU performance considerably.
For CPUs, the numbers using FFTW, one of the fastest FFT libraries that does take advantage of SIMD, the numbers usually do not exceed 5-6 gflops particularly for larger lengths.
OTOH, the above 55 gflops figure is also somewhat misleading since it does not include transfer time of data b/w RAM and GPU. Actual throughput is somewhere around 20gflops. On one particular project using FFT, I got around 15 gflops using GPU including transfer time while testing several FFT libraries, I never got above 3 gflops on a 2.4ghz quad-core using all four cores. The lenghts were big enough not to fit into cache thus reducing CPU performance considerably.