【问题标题】:Ghz to MIPS? Rough estimate anyone?Ghz 到 MIPS?粗略估计有人吗?
【发布时间】:2013-04-22 19:01:46
【问题描述】:

从我目前所做的研究中了解到,MIPS 高度依赖于正在运行的应用程序或语言。

但是谁能给我他们对 MIPS 中 2.5 Ghz 计算机的最佳猜测?或任何其他 Ghz 数?

C++ 如果有帮助的话。

【问题讨论】:

  • 芯片技术改进不断改变这一比例。实在是无法一概而论。
  • 我需要联系英特尔吗?
  • 我每小时画 1800 次铅笔。你能猜出我一小时能画多少个物体吗?
  • 那么没有办法确定吗?
  • 是的,有一种方法 - 在您想知道 MIPS 等级的芯片上,使用具有已知数量的您有兴趣测量的指令类型的程序对其进行基准测试。从那里开始,MIPS 和时钟速度之间的关系应该主要是线性的。

标签: computer-architecture


【解决方案1】:

MIPS 代表“每秒百万指令”,但对于现代计算机来说,这个值变得难以计算。许多处理器架构(例如构成大多数台式机和笔记本电脑的 x86 和 x86_64)都属于CISC 处理器类别。 CISC 架构通常包含同时执行多个不同任务的指令。这样做的后果之一是某些指令比其他指令占用更多的时钟周期。因此,即使您知道时钟频率(在本例中为 2.5 GHz),每秒运行的指令数也主要取决于程序使用的指令。出于这个原因,MIPS 已基本不再用作性能指标。

【讨论】:

  • 这不是因为 CISC,而是像加载指令这样的事情可能会在高速缓存未命中时停顿数百个周期,或者在高速缓存命中时根本不会停顿。对于乱序执行,CPU 隐藏该停顿的能力(通过运行独立的其他指令)取决于周围的代码。如果预测正确,分支指令也很便宜,否则会导致停顿。在超标量机器上,指令之间的数据依赖关系决定了要找到多少指令级并行度。 MIPS 不仅取决于您选择的insn,还取决于它们的操作数和数据!
  • 即使在 RISC 机器上,不同的工作负载也可能有非常不同的 IPC(因此 MIPS)。所以是的,MIPS 已经不再用作性能指标(因为它在同一台机器上的不同工作负载中几乎不是恒定的),但是这个 CISC 解释不是原因。说一条指令“占用”了一定数量的时钟周期甚至是不准确的。在超标量 OoO 执行机器上,you can't find performance by adding up fixed cycle costs across different instructions.
【解决方案2】:

对于我的许多基准中的一些,在

中确定

http://www.roylongbottom.org.uk/

我生成了一个汇编代码列表,从中可以计算出实际使用的汇编指令(请注意,这些不是 RISC 处理器使用的实际微指令)。以下包括基于这些和其他 MIPS 假设的 %MIPS/MHz 计算。

http://www.roylongbottom.org.uk/cpuspeed.htm

结果仅适用于 Intel CPU。您将看到 MIPS 结果取决于使用的是 CPU、缓存还是 RAM 数据。对于 2500 MHz 的现代 CPU,使用 CPU/L1 缓存的 MIPS 可能在 1250 到 9000 之间,但访问 RAM 中的数据要少得多。然后是 SSE SIMD 整数指令。用于基于寄存器的简单加法的实整数 MIPS 位于:

http://www.roylongbottom.org.uk/whatcpu%20results.htm#anchorC2D

我的 2.4 GHz Core 2 CPU 运行速度高达 17531 MIPS。

罗伊

【讨论】:

    【解决方案3】:

    MIPS 正式代表 Million Instructions Per Second,但黑客词典将其定义为无意义的处理器速度指示。这是因为许多公司使用在实际应用中从未实现的营销理论最大值。例如。当前的英特尔处理器每个周期最多可以执行 4 条指令。在 2.5 GHz 遵循这个逻辑,它可以达到 10,000 MIPS。当然,在实际应用中,这个数字永远不会达到。 slavik 已经提到的另一个问题是指令执行不同数量的有用工作。甚至还有 NOP,根据定义,它们对 MIPS 评级没有任何用处。

    为了纠正这个问题,人们在 1980 年代开始使用 Dhrystone MIPS。 Dhrystone 是一个综合基准(即它不是基于有用的程序),一个 Dhrystone MIPS 是相对于 VAX 11/780 的基准性能定义的。这比上面的定义略显荒谬。

    如今,性能通常通过SPEC CPU 基准来衡量,这些基准基于真实世界的程序。如果您非常了解这些基准测试和您自己的应用程序,则无需在相关 CPU 上实际运行您的应用程序,就可以做出合理的性能预测。

    他们的关键是了解性能会因许多特征而有很大差异。例如。曾经有一个名为 The Many Faces of Go 的程序,它本质上将有关棋盘游戏的知识硬编码在许多条件 if 子句中。该程序的性能几乎完全由分支预测器决定。其他程序使用不适合任何缓存的大量内存。这些程序的性能取决于主存储器的带宽和/或延迟。一些应用程序可能严重依赖浮点指令的吞吐量,而其他应用程序从不使用任何浮点指令。你明白了。如果不了解应用程序,就不可能做出准确的预测。

    话虽如此,平均数量约为每个周期 2 条指令和 5,000 MIPS @ 2.5 GHz。但是,实数很容易低十倍甚至一百倍。

    【讨论】:

    • 既然你提到了 SPEC,researchgate.net/publication/… 在 SPECint2017 和 SPECfp2017 上测量了 IPC,发现在 Haswell 上的平均 IPC 约为 1.7。 (我认为他们说这是针对 SPECrate_fp 的,即通过并行运行基准测试的多个副本来保持 CPU 忙碌,否则 IPC 较低,例如 1.2 或 0.7,可能是因为 FP 指令延迟和/或 mem 的依赖链瓶颈数组中的带宽)
    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 2018-08-26
    • 2010-12-02
    • 1970-01-01
    相关资源
    最近更新 更多