在互联网上浏览有关虚拟机大小的信息时,我看到了以下评论:“英特尔 XEON 双核 CPU 例如有 2 x 3000 MHZ。第二个核心只相当于第一个核心的 50-75%。”
我可以理解核心之间可能会有一些开销,但这听起来相当极端,所以我想知道这种说法是否正确。
请注意,我说的并不是手机 CPU,因为这实际上是预期的行为(性能与功耗),而是谈论每个核心具有相同速度的台式机/服务器 CPU。
那么,以运行在 3Ghz 上的四核 CPU 为例,各个核心之间的时钟速度是否存在很大差异?如果存在,为什么存在差异,并且差异为什么这么大?
谢谢!
答案1
台式机和笔记本电脑 CPU 中的所有物理核心都是相同的。这并不意味着 CPU 的计算能力 = 单核计算能力 × 核心数量。
核心共享一些缓存、I/O 和互连,这些可能成为瓶颈。协调核心之间的工作也会使用一些计算资源。核心还存在一些不共享的私有缓存的问题 - 当作业从一个核心移动到另一个核心时,接收核心无法再从缓存中受益。
然后是加速和功率限制。当只有一个(或几个)内核处于负载状态时,CPU 可以以不同的方式使用其功率预算并稍微提高时钟频率以提供更好的性能。但是当所有内核都处于负载状态时,维持如此高的时钟频率可能是不可能的,因为 CPU(或其冷却解决方案)无法散发那么多的热量。
然后是超线程或 AMD 的等效技术。单个物理核心可以显示为两个逻辑核心(所谓的“线程”)。其工作原理是,当核心卡在等待(例如,等待 RAM 中的数据)时,它可以同时执行其他工作。这就是第二个逻辑核心的含义:它是核心无所事事时可用的免费计算能力。
这可能只是冰山一角。