我读到过制造商不再专注于更高的时钟速度,而是正在致力于其他事情以提高性能。
和
- 一台旧台式机,配备 Intel® Xeon® 处理器 E3110,时钟速度为 3.0GHz
- 以及一台搭载 AMD Opteron(TM) 处理器 6272(时钟速度为 2.1GHz)的新服务器
使用(单线程)执行简单加密比较时
openssl aes256c
桌面的性能远远好于服务器。
那么,即使进行了最新的优化,为什么时钟速度更快的处理器性能会更好呢?
答案1
制造商不再专注于提高时钟速度的原因是,我们无法再快速冷却处理器,因此无法实现这一目标。时钟速度越高,产生的热量就越多,而我们现在已经到了这样一个阶段:由于冷却处理器所消耗的能量太多,提高处理器速度不再有效。
其他答案详细说明了更高的时钟速度并不意味着在所有领域都有更好的性能。
答案2
处理速度与时钟频率的关系不只在于此。
由于管道布置的不同变体以及每个核心中都有多个组件单元(加法器等),不同的 CPU 可以在相同数量的时钟周期内完成不同的任务。虽然在您的测试中情况并非如此,但您经常会发现“较慢”的芯片可以比快速芯片完成更多任务(仅通过时钟速率来衡量),因为它们每刻可以完成更多任务。
您执行的测试可能对 CPU 架构的差异非常敏感:它可以针对特定架构进行优化,您可能会发现它的性能不仅在 Intel 芯片和 AMD 芯片之间不同,而且在不同系列的 Intel(或 AMD)芯片之间也不同。它很可能也使用单线程,因此没有利用 CPU 的多个核心。
出于电源和热量管理的原因,人们倾向于降低时钟频率:提高时钟频率不会对功耗和热量输出产生线性影响。
由于上述非线性关系,对于当今的需求而言,拥有多个处理单元比不断提高单个单元的速度要高效得多。这也允许使用巧妙的技巧来节省电量,例如在不使用时关闭单个核心,并在需求再次增加时重新启动它们。当然,多核对单线程算法没有帮助,但如果您同时运行两个或更多个实例,它会有所帮助。
答案3
您为什么认为制造商仅通过比较两个处理器就实际上降低了时钟速度?
- 这6272具有 3Ghz 的 Turbo 速度。较低的基本速度只是为了降低平均功率,并在所有核心都承受压力时为工作负载保持可接受的 TDP。
- AMD 的下一代高性能台式机芯片FX-9590将达到5 Ghz。
此外,时钟速度与每时钟周期的性能并不相同。你可以拥有 3.8 Ghz P4 和 i7-3930K 的一个 3.2 Ghz 核心,但这并不意味着 P4 核心更快。
这里所说的有关功耗的一切对于 16 核设计来说也是完全有效和正确的,在这种设计中您自然会更加关注 TDP 问题。
此外,您的基准测试方法仅测试 openssl,这有点过于简单,无法给出真实世界的数字。也许您应该尝试任何加密基准测试套件。
答案4
正如其他人所说,如果我们提高过去相同相对时钟频率增加所需的电压,我们就无法再有效地冷却 CPU。曾经有一段时间(P4 时代及之前),你可以购买一个新的 CPU 并看到“立即”的速度提升,因为时钟频率与上一代相比显着增加。现在我们遇到了某种散热障碍。
每一代新处理器的时钟频率都会略有增加,但这也与适当冷却它们的能力有关。英特尔等芯片制造商不断致力于缩小 CPU 的芯片尺寸,以提高其能效并在相同时钟频率下产生更少的热量。顺便说一句,这种缩小的芯片尺寸使得这些现代处理器更容易因过压而不是过热而损坏。这意味着,如果没有芯片制造商进行其他优化,它还会限制任何当前一代 CPU 的最高时钟频率。
芯片制造商重点关注的另一个领域是增加芯片上的内核数量。这确实会显著提高计算能力,但前提是使用能够充分利用多内核的软件。 注意这里计算能力和速度的区别。简单来说,速度是指计算机执行一条指令的速度,而计算能力是指计算机在给定时间内可以进行多少次计算。 现代操作系统和许多现代软件确实利用了多核。问题是并发/并行编程比标准的线性编程范式更难。这增加了市场上许多程序充分利用这些新处理器功能所需的时间,因为许多开发人员不习惯以这种方式编写程序。目前市场上仍有一些程序(无论是现代的还是传统的)没有利用多核或多线程。您引用的加密程序就是这样一个例子。
芯片制造商关注的这两个领域本质上是相互关联的。通过减少芯片的裸片尺寸和功耗,他们能够增加芯片上的内核数量。但最终,这也会遇到瓶颈,导致另一个更剧烈的范式转变。
这种模式转变的原因在于,我们已接近硅作为芯片生产基础材料的极限。英特尔和其他公司一直在努力解决这个问题。英特尔表示,他们正在研发一种硅的替代品,我们很可能会在 2017 年之后的某个时候看到它。除了这种新材料,英特尔还在研究可以“有效提高处理能力三倍”的 3D 晶体管。以下是提到这两个想法的文章:http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm