2024年2月23日发(作者:)

CPU单线程性能排行

首先引用CHH上的一段话:

在未来,多核强能替代单核的作用吗?

这个算是科普一下吧,对于开发过多线程应用的人应该算是常识。

理论根据:阿姆达尔定律。

公式是这样的:

P是指程序中可以并行的部分,S是核心数量。以下均假设一个程序有80%可以并行的情况:

核心数量是4,那么加速比是:

1 / (0.2 + 0.8 / 4) = 2.5。即程序在4核心下可以提速2.5倍。

核心数量是8,那么加速比是:

1 / (0.2 + 0.8 / 8) = 3.3。

核心数量是无限多,这个程序的加速比是:

1 / (0.2 + 0) = 5。

看到这里你应该明白了:任何多核程序的加速比都存在一个上限,即便是核心数量无限多,最后的性能也只取决于单线程的部分。

现在是有意思的一点,我们来比较两个平台:

A: 单线程性能是1, 有256个核心

B: 单线程性能是1.5,有16个核心

哪个平台性能强呢?看起来1 * 256远大于1.5*16。实际结果呢?

A: 1 / (0.2 + 0.8 / 256) = 4.92

B: 1 / (0.2 / 1.5 + 0.8 / (16 * 1.5)) = 6

惊讶吗?16核心的B平台的性能远高于256核心的A平台。

最后,你可能要问:有没有一个程序有100%是可以并行化的呢?

答案是,没有。尤其是侧重于IO的程序,永远不能做到100%并行化。

什么是IO? GPU就是一个IO,磁盘也是IO,甚至内存系统对CPU来说,也是一个IO。

服务器系统的扩展性好,一个原因是服务器系统的IO是分布的。而桌面PC决定了IO是串行为主的系统,尤其是GPU。游戏只要需要和GPU密切打交道,就永远不可能高度并行化。

未来的理想CPU,是不对称的CPU,即若干个强大的单线程CPU + 大量多线程卫

星CPU。

把单线程理解为低音炮,多线程理解为卫星喇叭,是不是好理解一点?这不是最佳性能,但却是最佳性价比。

推土机就相当于AMD卖给你一套全部是卫星喇叭组成的7.0家庭影院系统。

------------------------------------------------------------------------------------EDIT:

有些误解。我并不支持i3灭全家之类的话,因为i3这种U还远远达不到多核性能过剩的标准。

目前来看至少8线程以上的U可以谈这个标准,因为用满3-4核心还是比较有可能的。

但是对于PC而言,8核心以上,核心越多,单线程性能越起到决定性的作用。

当核心多到一定程度,即便是增加无限多的核心都不如提高单线程的作用明显。

------------------------------------------------------------------------------------EDIT2:

如果有人还要拿超算和服务器来类比桌面的软件,我解释一下好了:

服务器有大量的独立任务来提供并行度,而PC则不得不挖掘单个任务内部的并行度。PC和服务器相比,并行度的来源有本质的不同。

请问,你的PC是给一万个人同时转码一万部电影,还是给你一个人压转码少量电影用的?

想明白这个,就不要提什么超算了,服务器/超算的负载和PC完全就是两码事。

因为这个叫Amdahl定律,正是几十年前IBM搞超算的前辈提出来的悲观定律。

综上所述,CPU单线程性能重要性不言而喻,是考量一个CPU性能的决定性因素,故放上CPU单线程性能排行榜,以供大家参考。后续会根据实际情况有所调整。(数据来源cpubenchmar

点击展开,查看完整图片