如何从经过的时间计算FLOPS?

问题描述 投票:0回答:1

[从this tutorial on the usage of Intel MKL DFTs中可以看到,Andrey E. Vladimirov博士使用任务执行期间所经过的时间,即t1-t0,使用GF/s = HztoPerf/(t1-t0)来计算GigaFLOPS的数量,其中HztoPerf = 5.0 * 1e-9 * double(fft_size) * log2(double(fft_size)) * double(num_fft)

这是一个通用公式吗?如果不是,如果我知道运行计算所花费的时间(例如,涉及各种FFT),我如何推算我的CPU(3 GHz的Intel Xeon E5-1660在8 GHz时)的平均GF / s?

performance cpu intel flops
1个回答
0
投票

您必须知道您的问题需要执行多少个FP操作。然后您将其除以时间。

1e-9表示Giga = 10 ^ 9度量标准前缀。否则,如果将浮点运算次数除以秒,则您的FLOP / s将不是GFLOP / s。

[5.0 * fft_size * log2(fft_size)似乎是每个FFT的FP ops的数量。

An efficient FFT is O(n log2(n)),显然此实现的常数为5。(或者可能包括使用结果完成的某些工作?)

num_fft大概是该大小的FFT总数,即重复计数。因此,所有这些事情的乘积就是在FFT计算过程中实际完成的FP操作数。

© www.soinside.com 2019 - 2024. All rights reserved.