CPU朝向多核发展,从某种程度上来说是一种“无奈之举”

随着CPU时钟频率提升遭遇物理限制,处理器制造商转向多核设计以维持性能增长。2007年Herb Sutter的文章《The Free Lunch Is Over》揭示了这一转变。多核带来了多线程编程和并行计算的需求,但同时也需要程序员编写适应多核的代码。现代CPU在实际运行中可能无法达到标称频率,且管理CPU模式(如性能模式和节能模式)对性能也有影响。面对这些挑战,程序员需要掌握并行计算技术,以充分利用硬件资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CPU朝向多核发展,不停扩展核数,从某种程度上来说是一种“无奈之举”。

免费的午餐结束了

2007年,C++大牛Herb Sutter(Effective C++系列丛书作者)发表了文章《The Free Lunch Is Over》。直译就是“免费的午餐结束了”。

【原文】The Free Lunch Is Over

【翻译】The Free Lunch Is Over

主要的处理器设计生产商,从Intel和AMD到SPARC和PowerPC,已经几乎穷尽了所有的传统方法来提高CPU性能。
大多数应用在几十年内都可以获得免费规律的性能提升,甚至不需要发行新版本或做其他任何特殊的事情,因为CPU制造商(主要)和硬盘制造商(次要)拥有可靠的更新更快的主流系统。时钟频率不是衡量的唯一标准,甚至不是好性能的必要标准,但却是有指导意义的标准:
我们已经习惯看到500MHz的CPU被1GHz的替代,1GHz的被2GHz替代等等。今天主流电脑的主频可以达到3GHz的范围。

其实这2000年前,CPU的更新换代,主要是提升时钟频率,而非增加核数。而且那时CPU的每次升级,软件可以自动地获得大幅性能提升。然而问题逐渐棘手起来。

提高CPU主频变得越来越困难,因为这不仅仅是一个而是几个物理问题造成,特别是热、功耗过大、当前的电流泄露问题。

当时人们早早地获得了2GHz的CPU,3GHz也很快成为主流。按照发展速度,4GHz、5GHz甚至10GHz的的CPU都应该能如期而至。但是从3GHz以后,4GHz却迟迟不至。这受限于诸多物理问题。

为了能稳步地提升性能,CPU“被迫”朝向多核发展。当然CPU这么多年的计数发展不仅仅是时钟频率以及多核带来的,还有缓存,指令优化等等。但不得不说的是时钟频率和多核带来的提升更多些。

多核的发展,也就导致了多线程编程以及并行计算的流行。然而这需要程序员们编写相应的代码(并且是正确而优秀的代码)才能吃掉CPU新增的性能。而那个时钟频率为王的年代,程序员无需修改程序就能获得性能提升。

cpu运行在哪种频率下是有几种模式可以选择的。如果你是Linux系统的,可以尝试用cpupower frequency-info 命令查看一下。可能展示是结果是powersave(节能模式)、performance(性能模式)或其他模式。我还真听说过有线上机器没有开启performance模式,而是powersave模式跑了很长时间,改成performance以后,啥代码都不用改,就获得了几十毫秒的性能提升的事。当然这种问题可能相对低级,专业的运维或基础架构团队应该都能保障,不需要程序员操心。

回头再提一下CPU时钟频率的瓶颈。时至今日,我在公司的服务器机器上,查询CPU的频率的,基本也显示为3GHz。但咨询运维说机器CPU实际达不到满满的3GHz,只能到2.8GHz。我说怎么可能?他说用turbostat命令查看,那个显示的运行频率更真实。好吧。我试了一下还真是。

当然服务器和个人电脑的CPU是不同的。即使都是Intel家的,个人电脑一般是酷睿(Core)系列,而CPU是至强(Xeon)系列。自Herb Sutter发文的2007年,到如今也已经14年了。Intel其实也打造出来4GHz的产品。虽然比预期的时间晚了很多。然而毕十年之功于一役,后续稳步提升频率依旧艰难。所以程序员们,还是好好学习多线程编程和并行计算吧。

关于频率这个话题,我其实也不专业。大家感兴趣的话,可以阅读这里:

为什么 CPU 主频很难超过 4GHz? - 知乎和登那德定律有关系,貌似有公式能说明。https://www.zhihu.com/question/32096371

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

果冻虾仁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值