我通过使用多种CPU来读取fftw的基准。但是,测量的单位是MFLOPS,变化的矢量尺寸从小到大。我想知道执行单个反向或常规fft的微秒或毫秒。
如何将MFLOPS转换为秒?
如FFTW的Benchmark Methodology页面所述:
为了报告FFT性能,我们绘制每个FFT的“mflops”,它是速度的缩放版本,定义如下:
对于复杂变换,mflops = 5 N log2(N)/(一个FFT的时间,以微秒为单位),和 对于实际变换,mflops = 2.5 N log2(N)/(一个FFT的时间,以微秒为单位)
例如,如果我们查看raw data file for the "1.06 GHz PowerPC 7447A, MacOSX" case,第一个条目是
arprec dcif 4 27.09 1.4765625e-06 9.5e-05
这是用于dcif
和N=4
的双精度复数变换(查看mflops=27.09
标识符的前两个字母)。然后测量的最小平均执行时间为:
5 * 4 * log2(4) / 27.09 = 1.4765 microseconds
请注意,这与该条目中也显示的1.4765625e-06执行时间一致。