从到目前为止我所做的研究中,我了解到 MIPS 高度依赖于正在运行的应用程序或语言。
但是谁能给我他们对 MIPS 中 2.5 Ghz 计算机的最佳猜测?或任何其他 Ghz 数?
C++ 如果有帮助的话。
从到目前为止我所做的研究中,我了解到 MIPS 高度依赖于正在运行的应用程序或语言。
但是谁能给我他们对 MIPS 中 2.5 Ghz 计算机的最佳猜测?或任何其他 Ghz 数?
C++ 如果有帮助的话。
MIPS 代表“每秒百万指令”,但对于现代计算机来说,这个值变得难以计算。许多处理器体系结构(例如构成大多数台式机和笔记本电脑的 x86 和 x86_64)都属于CISC处理器类别。CISC 架构通常包含同时执行多个不同任务的指令。这样做的后果之一是某些指令比其他指令占用更多的时钟周期。因此,即使您知道时钟频率(在本例中为 2.5 GHz),每秒运行的指令数也主要取决于程序使用的指令。出于这个原因,MIPS 在很大程度上已不再用作性能指标。
对于我的许多基准中的一些,在
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。
罗伊
MIPS 正式代表每秒百万指令,但黑客词典将其定义为无意义的处理器速度指示。这是因为许多公司使用在实际应用中从未达到的营销理论最大值。例如,当前的英特尔处理器每个周期最多可以执行 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。然而,实数很容易低十倍甚至一百倍。