![CPU 频率如何影响性能?](https://linux22.com/image/1388933/CPU%20%E9%A2%91%E7%8E%87%E5%A6%82%E4%BD%95%E5%BD%B1%E5%93%8D%E6%80%A7%E8%83%BD%EF%BC%9F.png)
CPU 频率如何影响性能?如果我们有两个具有相同架构但速度不同的 CPU,它们的性能如何?
1)8 核 Ivy Bridge CPU @ 2.4
2)8 核 Ivy Bridge CPU @ 2.7
我如何从数学上计算出性能的差异?
有人可能会说:2.7 > 2.4,高出 12%。那么,2.4 GHz 的 CPU 会比 2.7 的 CPU 慢 12% 吗?
答案1
一般情况下,您无法根据频率确定性能。如果 CPU 属于同一系列(不仅是相同的架构)——我的意思是除了时钟速度之外,其他方面都相同——那么更快的系统的最大性能将更快,所以是的,在您的示例中,CPU 的最大速度将快 12%。
但是,当然,这并不是全部。大多数系统都会受到 CPU 以外的因素的瓶颈,在这种情况下,更快的 CPU 不会提高您的性能(例如,如果您正在等待磁盘、网络或用户输入)。
如果 CPU 不属于同一产品线,您能做的最好的事情就是通过查找 CPU 基准测试中的“Passmark”并据此进行计算来粗略地估计性能。这非常粗略,但一旦您了解了应用程序如何处理线程,这是一种比较 CPU 的好方法。此外,比较 Intel Ark 中的 CPU 将帮助您确定它们在时钟速度以外的所有方面是否相同。(例如,通过显示不同的指令集支持、缓存等)
答案2
每条 CPU 指令需要若干个周期才能完成。每个周期所花的时间是 1 除以 CPU 的速度。
然而,很难将其与性能线性关联,因为:
CPU 指令在不同条件和使用方式下消耗的周期数也不同。
现代 CPU 长期以来都是“流水线式”并且“超标量”的 - 本质上意味着每个周期,CPU 实际上可能正在处理几条指令的几个部分,甚至同时执行多条指令。
加速功能会在 CPU 实际执行之前“预加载”指令流,从而影响即将执行的指令的性能 - 例如分支预测和寄存器重命名。
现代 CPU 有一个指令缓存。缓存中的内容对性能有很大影响。与 CPU 速度相比,等待从 RAM 加载指令会耗费很多周期。
现代 CPU 有一个数据缓存。CPU 经常执行读取/写入内存的指令,同样会受到此缓存状态的影响。
有人可能会说:2.7 > 2.4,高出 12%。那么,2.4 GHz 的 CPU 会比 2.7 的 CPU 慢 12% 吗?
您可以说,从技术上来说这是正确的 - CPU A 的运行速度比 CPU B 快 12%。但是 CPU 速度提高 12%(即使采用完全相同的微架构)并不意味着代码执行性能提高 12%。