对于每款处理器,geekbench.com 上的基准测试都会显示单核和多核得分。例如,这款 64 核处理器单核得分为 1220,多核得分为 23688。Geekbench 多核基准测试是否通过(案例 1)同时在多个核心上运行多个单核基准测试来衡量(令人尴尬的平行)?或者,(情况 2)是运行一组基准测试,其中可能涉及不能很好并行化的进程。
对于上面的 64 核 CPU 示例,多核性能低于我们可能从单核行为的线性扩展中预期的 64x1220 = 78080 分数。在案例 2 中,这种差异可能是由于基准测试缺乏完美的并行性而导致的。然而,在案例 1 中,差异一定是处理器固有的,它无法同时在所有内核上提供完整的单核性能,大概是由于热管理问题。
答案1
多核不仅仅是不相关的 CPU 的组合。让我来列举一些(按随机顺序)
- 多个内核可能(并且通常会)共享一个内存控制器 - 这意味着,在多核基准测试中,RAM 带宽可能是一个限制因素
- 多个内核可能会也可能不会共享很大一部分片上缓存。这意味着,如果其他内核空闲,缓存中可以容纳的循环可能在所有内核工作时都无法容纳。这可能会导致数量级的差异。
- 在所有现代 CPU 中,热管理都是一个很难解决的问题。如果其他内核处于空闲状态且总内核数符合热约束,大多数 CPU 设计都会使单个内核的时钟速度高得多。根据定义,这意味着在完整的多核基准测试中时钟速度会降低。
- 多核到 RAM 的总线跳数可能不同,也可能不同。这同样会影响多核与单核的性能。
其要点可以归结为:不要指望 COTS 多核 CPU 具有线性可扩展性。