FLOPS英特尔核心并使用C(内部产品)进行测试

  1. 关于测量触发器,我有一些误解,在英特尔架构上,FLOP是一个加法和一个乘法吗? 我在网上的某处读过这篇文章,没有任何辩论可以拒绝这一点。 我知道FLOP在不同类型的cpu上有不同的含义。

  2. 如何计算理论峰值FLOPS? 我正在使用英特尔(R)Core(TM)2 Duo CPU E7400 @ 2.80GHz。 GHz和FLOPS之间究竟有什么关系? (甚至维基百科在FLOPS上的条目也没有具体说明如何做到这一点)

  3. 我将使用以下方法来测量我的计算机的实际性能(就翻牌而言):两个向量的内积:对于两个大小为N的向量,是翻牌数2n(n -1)(如果一个加法)或者一次乘法被认为是1次翻牌)。 如果没有,我该如何计算呢?

我知道有更好的方法可以这样做,但我想知道我提出的计算是否正确。 我在某处读到LINPACK作为基准,但我仍然想知道它是如何完成的。

至于你的第二个问题,理论上的FLOPS计算并不太难。 它可以大致分解为:

(核心数)*(执行单元/核心数)*(周期/秒)*(执行单元操作/周期)*(每个寄存器的浮点数/执行单元操作)

Core-2 Duo有2个内核,每个内核有1个执行单元。 SSE寄存器是128位宽。 浮点数是32位宽,因此每个寄存器可以存储4个浮点数。 我假设执行单元每个周期执行1次SSE操作。 所以它应该是:

2 * 1 * 2.8 * 1 * 4 = 22.4 GFLOPS

匹配: http : //www.intel.com/support/processors/sb/cs-023143.htm

这个数字显然是理论上最好的案例表现。 由于各种原因,现实世界的表现很可能不会接近这一点。 可能不值得尝试将flops直接关联到实际的app运行时,你最好尝试使用你的应用程序使用的计算。

本文介绍了有关x86 CPU的FLOPS数的一些理论。 它只是Pentium 4的最新版本,但也许你可以推断出来。

FLOP代表浮点运算。

它在任何支持浮点运算的架构中都是相同的,通常被测量为可以在任何一秒内发生的操作量(如FLOPS;每秒浮点运算)。

在这里,您可以找到测量计算机FLOPS的工具。

英特尔的数据表包含GFLOPS数字,而您的处理器声明为22.4

http://www.intel.com/support/processors/sb/CS-023143.htm

由于您的机器是双核,意味着2.8 GHz时每核11.2 GFlops。 将其划分为4,因此英特尔声称其核心每个周期可以执行4个FLOPS。