我阅读了使用多种 CPU 完成的 fftw 基准测试。但是,测量的单位是 MFLOPS,向量维度从小到大变化。我想知道执行单个反向或常规 fft 的微秒或毫秒。
如何将 MFLOPS 转换为秒?
如 FFTW 的基准方法页面所述:
为了报告 FFT 性能,我们绘制了每个 FFT 的“mflops”,这是速度的缩放版本,定义为:
mflops = 5 N log2(N) /(一次 FFT 的时间,以微秒为单位)用于复杂变换,
mflops = 2.5 N log2(N) /(一次 FFT 的时间,以微秒为单位)用于实数变换
例如,如果我们查看“1.06 GHz PowerPC 7447A,MacOSX”案例的原始数据文件,第一个条目是
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 执行时间一致。