为什么 CPU 制造商停止提高处理器的时钟速度?

lea*_*ner 63 cpu performance clockspeed computer-architecture cpu-architecture

我读到制造商不再专注于更高的时钟速度,现在正在致力于其他事情以提高性能。

  • 一台采用 Intel® Xeon® 处理器 E3110、时钟速度为 3.0GHz 的旧台式机
  • 以及配备 AMD Opteron(TM) 处理器 6272、时钟速度为 2.1GHz 的新服务器

当使用(单线程)执行简单的加密比较时

 openssl aes256c
Run Code Online (Sandbox Code Playgroud)

台式机的性能远远好于服务器。

那么即使是最新的优化,为什么时钟速度更好的处理器性能更好呢?

小智 73

制造商不再专注于提高时钟速度的原因是我们无法再快速冷却处理器以使其可行。时钟速度越高,产生的热量就越多,我们现在已经到了一个阶段,由于用于冷却处理器的能量,提高处理器速度不再有效。

其他答案详细说明了更高的时钟速度并不意味着在所有领域都有更好的性能。

  • @Mixxiphoid 您还需要以电路可以处理的电压以某种方式将 200+ W 的功率输入 CPU。这本身就是一项不平凡的任务。 (9认同)
  • 请注意,功耗也是一个问题。如果您有一个 16 核 3.0GHz,那可能会消耗 200 多瓦的功率,而最常见的电源与系统的其余部分结合起来几乎无法支持。 (2认同)
  • @demonofnight:说“每次你需要(...)跳跃”就太过分了。无条件直接分支不构成控制风险,因此它们不计入条件分支~95%-99%是通过各种技术预测的(数据基于一些基于SPEC的论文)。如果目标尚未注册并且对其进行错误预测,则直接分支确实会带来问题。我不确定“分叉代码”或“清除内存”是什么意思,但上下文切换不应该如此频繁地执行(中断和可能的 I/O)。 (2认同)

Dav*_*ett 37

处理速度比时钟频率更重要。

  • 由于流水线排列的不同变体以及每个内核中具有多个组件单元(加法器等),不同的 CPU 在相同数量的时钟周期内可以执行不同的数量。虽然在您的测试中情况并非如此,但您经常会发现“较慢”的芯片可以比快速的芯片做更多的事情(仅通过时钟速率来衡量),因为每个滴答声能够做更多的事情。

  • 您执行的测试可能对 CPU 架构的差异非常敏感:它可以针对特定架构进行优化,您可能会发现它不仅在 Intel 芯片和 AMD 芯片之间执行不同,而且在不同系列的 Intel(或 AMD)芯片之间执行不同。它也可能使用单线程,因此没有利用 CPU 的多核。

  • 出于功率和热量管理的原因,有一种降低时钟频率的举措:提高时钟频率对功率使用和热量输出没有线性影响。

  • 由于上述非线性关系,对于当今的需求而言,拥有多个处理单元比将一个单元的速度推得更高更有效。这也允许使用巧妙的技巧来节省电力,例如在不使用时关闭单个内核,并在需求再次增加时将它们恢复。当然,多核当然对单线程算法没有帮助,尽管如果您同时运行它的两个或更多实例,它会有所帮助。


s1l*_*v3r 19

为什么您认为制造商实际上只是通过比较两个处理器来降低时钟速度?

  1. 6272具有3 GHz的涡轮速度。较低的基本速度只是为了降低平均瓦数并在所有内核都承受压力时为工作负载保持可接受的 TDP。
  2. AMD 的下一代台式机高性能芯片FX-9590将达到 5 Ghz。

此外,时钟速度与每个时钟周期的性能不同。您可以拥有 3.8 Ghz P4 与来自 i7-3930K 的一个 3.2 Ghz 核心,但这并不意味着 P4 核心更快。

这里所说的关于功耗的所有内容对于 16 核设计也是完全正确的,您自然会更加关注 TDP 问题。

此外,您仅测试 openssl 的基准测试方法对于给出真实世界的数字来说有点简单。也许您应该尝试任何加密基准套件。

  • @nialsh 这对于 [CISC 计算机](http://en.wikipedia.org/wiki/Complex_instruction_set_computing) 来说根本不是真的(事实上 CISC 的定义之一是指令需要多个周期),如果所有指令都需要一个循环然后最慢的指令将花费与最快的指令相同的时间来执行。 (4认同)
  • 只是为时钟速度=性能谬误添加一个类比。想象一个人迈出很小的步子但很快(高时钟速度),而另一个人以稍慢的速度(较低的时钟频率)迈出很大的步子。迈出大步的人可以移动得更快。 (3认同)
  • @MartinKonecny 我的理解是,大多数汇编指令(ADD、MOV、IMUL 等)都是在单个周期内执行的。那么对于这些​​新处理器,是否在一个周期内执行了多条指令? (2认同)

小智 13

您的测试用例(aes-256 加密)对特定于处理器的优化非常敏感。

有各种 CPU 具有旨在加速加密/解密操作的特殊指令。这些特殊说明不仅可能只出现在您的桌​​面上——可能是 AMD CPU 有不同的特殊说明。此外,openssl 可能仅支持 Intel CPU 的这些特殊指令。你检查过是不是这样?

要找出哪个系统更快,请尝试使用“合适的”基准测试套件 - 或者更好,只需使用您的典型工作负载。


MSa*_*ers 10

很简单:AMD 芯片要快得多,因为它是 16 核芯片。在 115 瓦时,这意味着每个核心产生约 7 瓦。如果每个内核都以 3 Ghz 运行,这将无法实现。为了达到 7 瓦的数字,AMD 降低了时钟频率。将时钟频率降低 10% 可将功耗降低 20%,从而使您可以在芯片上放置 25% 的额外内核。


Pse*_*che 10

正如其他人所说,如果我们在过去推动相同的相对时钟速率增加所需的电压,我们就无法再有效地冷却 CPU。曾经有一段时间(P4 时代及之前),您可以购买新 CPU 并看到“立即”提高速度,因为与上一代相比,时钟频率显着提高。现在我们遇到了各种各样的热墙。

每一代新一代处理器的时钟频率都略有增加,但这也与适当冷却它们的能力有关。英特尔等芯片制造商一直致力于缩小 CPU 的芯片尺寸,以提高它们的能效并在相同的时钟下产生更少的热量。附带说明一下,这种缩小的芯片尺寸使现代处理器更容易因电压过高而不是过热而死亡。这意味着它也限制了任何当前一代 CPU 的最高时钟频率,而没有芯片制造商进行其他优化。

芯片制造商高度关注的另一个领域是增加芯片内核的数量。这确实会显着增加计算能力,但仅限于使用利用多核优势的软件时。 请注意此处计算能力和速度之间的差异。简单地说,速度是指计算机执行一条指令的速度,而计算能力是指计算机在给定的时间内可以进行多少次计算。 现代操作系统和许多现代软件确实利用了多核。问题是并发/并行编程比标准的线性编程范式更难。这增加了市场上许多程序充分利用这些较新处理器功能所需的时间,因为许多开发人员不习惯以这种方式编写程序。当今市场上仍有一些程序(现代的或传统的)没有利用多核或多线程的优势。您引用的加密程序就是这样的一个例子。

芯片制造商关注的这两个领域有着内在的联系。通过减小芯片的裸片尺寸和功耗,他们能够增加该芯片上的内核数量。但最终,这也会碰壁,导致另一个更剧烈的范式转变。

这种范式转变的原因是因为我们接近了硅作为芯片生产基础材料的极限。这是英特尔和其他公司一段时间以来一直在努力解决的问题。英特尔已经表示,它正在研发一种硅替代品,我们很可能会在 2017 年之后的某个时候开始看到它。除了这种新材料,英特尔还在研究可以“有效地将处理能力提高三倍”的 3D 晶体管。这是一篇提到这两个想法的文章:http : //apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm