这取决于怎么定义「性能」,以及怎么定义「天花板」。
我们目前讨论的消费级CPU设计,往往不是无限功耗(随意超频)或者无限的芯片面积,往往更倾向于在特定功率范围(约为65W)和特定芯片尺寸(约为100mm2)下,怎么设计出更好的CPU。所以,在这个问题下考虑超频性能是不公平且有失偏颇的。
如果要系统回答这个问题,我们应该从CPU性能影响因素开始讲起。
如果我们以目前大家默认的CPU性能衡量标准(CPU单核运算性能)来讲, 理论上CPU性能主要由三方面决定:
就CPU性能,一个非常普遍的观点是,即使(基于硅)的半导体工艺可以继续演进,但纳米级晶体管尺寸带来的量子效应也已经变得越来越不可忽视,所以半导体制程带来的CPU性能提升可能会在5nm左右(就是现在)出现收益递减 [2],这是「CPU性能达到天花板」这一观点的基础。
但是,这一观点是片面的,因为这种说法仅着眼于工艺进步的边际效应,而芯片本身的性能进步并不局限于工艺本身。在硬件,微架构,缓存架构,芯片驱动软件等等方面都有太多地方可以对CPU 晶体管利用率,能耗比,极限性能,芯片极限面积,甚至芯片软件开发时间等等方面做出优化,这些优化都会对传统意义上的「CPU性能」产生积极影响。
我可以把它们分为几类分别讨论,期望能够给大家一个关于芯片性能的更全面的视角。
1959年,诺贝尔奖获得者Richard Feynman在对美国物理学会的大会演讲上曾这么说过,「计算机性能的进步大多来自于计算机组件的小型化,(这些进步)在底部依然有足够的空间」[3]。这里的「底部」其实就是在说CPU这类通用计算芯片。
考虑到CPU的小型化大多依赖于更小的晶体管尺寸和半导体制程的进步,这条评论本身也其实正在间接暗示摩尔定律推动CPU性能进步(注:这句话早于摩尔定律十几年)。而在过去五十年时间里,芯片的发展一直符合这个观点,或者说,
摩尔定律。
摩尔定律预测,预计18个月会将芯片的性能提高一倍(即更多的晶体管使其更快。
我们可以在这里解释的更加详细一点。众所周知,半导体电路(特别是CMOS电路)的电路功耗和工作频率成正比,而工作频率的提升意味着芯片性能的直接提升(大家可以想象超频给电脑所带来的性能增长)。
但是,正如我们之前所说,大多数情况下的消费级CPU在设计时都存在一定的功率范围。这种功率范围既不能太高导致整体耗电急剧增长(或触碰功率墙),也不能太低导致计算能力低下,所以,有没有一种可能让半导体芯片在功率不变的情况下直接提升性能工作频率?
换句话说,我们在期望能通过某些设计来提升CPU的能量效率?
答案是肯定的。
这也是1970年左右,Dennard (MOSFET)Scaling Law 产生的基础:在半导体芯片里,每代将会使晶体管尺寸减少30%,并且同时保持晶体管里各处的电场恒定。晶体管尺寸减少(也就是制程提升)会带来很多好处:
Dennard Scaling Law 带来的直接预测结果是,在每一代半导体制程进步中,晶体管的密度都翻了一番,性能将提高 40%,而整体系统功耗几乎保持不变。如果配合摩尔定律,几乎等同于每18个月,芯片的每瓦性能将会翻一倍 (见下图 [4])。
这也是过去二十年间,推动芯片制程进步的主要动力:芯片设计师利用晶体管密度来设计更复杂的架构和晶体管速度以提高频率,而得益于晶体管密度的提升,设计师们有足够的空间在合理的功率和能量范围内同时获得复杂的架构和更高的频率。以一种简单粗暴的思路,甚至可以只依靠晶体管的小型化简单粗暴添加更多内核,然后通过制程进步带来的更多「免费」核心来提升CPU性能。
从另一方面来说,更先进的芯片制程不止影响了技术进步,它们也间接影响了计算机的价格(同样的钱能买到更多晶体管,也意味着能买到更多计算性能)。
实际上,在20世纪60年代初,一个晶体管要10美元左右,但随着晶体管越来越小,小到一根头发丝上可以放1000个晶体管时,每个晶体管的价格只有千分之一美分。据有关统计,按运算10万次乘法的价格算,IBM704电脑为85美分,IBM709降到17美分,而60年代中期IBM耗资50亿研制的IBM360系统电脑已变为3.0美分,具体统计数据见下图(数据收集自论文[5])。
但是在未来,大概率并非如此。
一些观点认为这代表着是摩尔定律的终结,即「后摩尔时代」的到来。这可以通过芯片领域的国家自然基金重点项目指南得到确认(见下图):我们需要在「后摩尔时代」解决低功耗器件,新材料工艺和新架构的芯片设计问题。
从目前来看,在「后摩尔时代」,晶体管制程的进步仍会继续,但正如之前所说,单位面积晶体管密度增长会不断放缓,从而对整体芯片性能的影响越来越小。既然如此,架构方面和软件方面的提升就成了目前的性能提升重点,比如更有效的异构多核架构和领域定制处理器,以及目前的一些研究热点,非冯·诺伊曼体系结构、存内计算、多芯片封装等等。
答案是非常正确的,且有很多例子可以证明这一点。这也是芯片设计中的一种比较重要的设计思想---发现程序中的共性特点,并以硬件设计加速相关共性计算[6]。
在计算机历史上,领域定制处理器最经典的例子是独立显卡的出现。随着当年影音和图像处理业务越来越多,通用的CPU不能非常有效的处理图形图像所需要的浮点型数据运算,所以显卡就此诞生。
此后也随着多媒体内容逐渐增多,显卡市场也得到了更蓬勃的发展,而且所支持的指令集和显卡架构也在不断升级。在Intel前几天发布的第11代英特尔酷睿处理器高性能移动版(H45)芯片组里,Iris Xe 集成显卡可以支持更快捷的视频转码和多媒体处理,这类领域定制处理器(集成显卡)可以帮助H45完成视频处理的硬件加速,并且通过更多的智能加速引擎为影音处理和游戏提供更好的性能。
领域定制处理器另一个非常典型的例子是人工智能芯片的兴起,以及(通用处理器)中对人工智能相关指令集的支持力度加大。在芯片设计领域,判断一类应用是否需要专用芯片支持,需要非常大规模的热点代码分析。
08年左右人工智能相关算法方兴未艾,但是一些公司曾经通过大规模的代码分析出人工智能代码运算正在大幅度增加,所以需要设计专用硬件架构来提升人工智能计算效率。同样,在Intel 第11代英特尔酷睿处理器高性能移动版(H45)芯片组里,Intel也通过抽象出Advanced Vector Extensions指令集来大幅度加速电脑所需要的人工智能图像应用,通过Gaussian & Neural Accelerator (Intel® GNA)来提升人工智能语音处理速度。
随着制程提升带来的边际效应越来越明显,硬件方面的提升更多的可能会着眼于在特定面积下的领域定制处理设计,以及更有效的多核心通信方式;当然,半导体材料和工艺的飞跃性进步依然有可能。
在很早之前(2010年左右),白宫总统科技咨询委员会就曾经做出过论断,在CPU性能优化上,算法带来的增益已经远远超过提升处理器速度所带来的增益[3]。所以,一个普遍的观点是,上层的算法和调度方法会成为CPU性能提升的下一个关键点。
而另一个原因是,算法实现严重依赖于数学领域的建模和抽象,大多数问题往往无解或者暂时无法建模,只有少量问题有算法加速的空间。换句话说,算法的优化不同于芯片制程进步,它是离散而且充满了偶然性,这给相应的CPU性能提升带来了一定的偶然空间。
可以这么说,算法部分能够给CPU性能带来多少提升,很大程度上依赖于这段时间内解决了多少问题。如果大家看上图,就会发现在某些年份里,CPU性能提升是呈现阶梯状的,这正是因为当年算法领域出现了突破性进展。
作为主要研究算法的科研民工,其实我可以在这里加上一句,大多数算法进步也往往会因为假设条件过强,导致无法直接应用于实际工业中,算法和实现之间依然存在非常巨大的鸿沟。
但是,即使如此,我们依然可以想象到,算法的进步空间并没有受限,它依然可以给CPU性能带来更多提升空间。
如果大家对软件行业有所了解,就会发先随着计算机普及,高级编程语言(特别是非常简单的脚本语言)变得越来越流行,比如Python。但是,这些代码本身其实是非常低效的。
前段时间Science上的一篇文章[3]曾经指出,目前的高级编程语言的运行效率非常低下,如果我们用硬件实现相应的计算方式(以矩阵计算为例),那么速度提升可以达到数万倍,这是非常巨大的提升空间(见下图)。
高性能代码对CPU的性能提升有着极大的帮助,但是因为其耗时比较长,目前暂时没有太多关注。这导致我们即使能够看到这些性能提升空间,也暂时难以有效利用。
其中一个非常重要的原因是,算法设计需要人工思考,而且大多数人无法熟练从高级编程语言掌握到汇编语言,如果我们所有的算法都通过设计专用电路来加速的话,流片成本高昂到无法承受。
此外,随着目前的芯片硬件架构设计越来越领域化,高性能的代码可能会更加难以编写。所以,如果摩尔定律或者CPU性能越来越难以进步,可能会出现更多硬件和软件工程师共同设计代码,来优化相应的软件性能[7]。
从另一方面上说,芯片本身需要软件驱动,而软件的运行速度并不是唯一衡量指标。事实上,对于越来越多的软件开发者来说,他们更需要的是减少软件开发时间,而不仅仅是「高性能」的计算水平。
这就是「CPU生态」的一种。CPU和芯片公司总是可以通过向开发者提供更简单的开发套件,来提升(或者有人说是压榨)CPU性能。大公司往往有更加充足的精力来建设相应生态,Intel应当是其中非常值得提及的例子。
H45提供了20通道的PCI-E接口,以及外置WiFi6芯片,这些外置接口和套件都可以为软件开发者提供更简单的开发方案和开发套件,从用更简单的指令集支持更多应用。从指令集来看,基于X86的指令集可以给第11代英特尔酷睿处理器高性能移动版(H45)提供非常良好的编译器生态,这又大大降低了开发成本,也可以通过原生提供更多丰富的接口,可以原生支持更多设备,从而方便用户扩展。
从另一方面来说,对生态的扩展也可以抽象出更多行业共性软件需求,提供更多有价值的高性能代码和指令集,从而进一提升和挖掘CPU性能,这是另一种CPU性能提升空间。
例如,大多3A游戏都深度支持Intel的指令集,从而提升软件使用效率;通过与Killer网卡的深度支持,也可以提升CPU与网卡之间的调度效率,提升用户的游戏体验。
或许在可见的未来,芯片微架构,片上网络通信,领域定制处理器,或者本文中未提到的更多芯片优化技术可以给CPU带来更多性能提升。这些优化技术曾经在过去几十年内,在intel CPU中集成了数十上百种,例如超标量,乱序执行,超线程,硬件虚拟化,大页面等等。
又或许,在未来几年内,算法部分和高性能代码研发会出现更多突破性,直接影响到用户的体验。目前科研领域可能会期望更多来自材料领域的进展能够实际使用,影响到消费级CPU,这些都是未来可能的发展方向。
正如大多数芯片从业者都认为,目前的摩尔定律正在接近末尾,但是这并不意味着CPU的性能提升就会停止。未来虽然不可知,但是CPU性能的提升并不会因为制程的收益缓慢而停止。
远远没有。
cpu天花板这个事情,本来定义就很不明确。
现在你看到的cpu,不是技术天花板,而是成本收益决定了做成这个规模比较赚钱。
AI芯片有激进的,要一片硅片整个用上。
你以为cpu不行吗?
不考虑成本,不考虑良率,液氮散热,现在技术下,一片CPU的运算能力也会超过量产品很多。只是没有厂家疯了去干这种事情。
一般厂家会把功率控制在300w以内,看看现在的工艺下能做多高的性能。
单核心性能也没到极限。苹果已经证明,合理架构下适当的堆晶体管是可以提高IPC的。
M1 的八路解码到头了吗?二级缓存塞多少兆才是极限呢?
苹果或者高通,或者ARM就不会做更大的核心了吗?
新处理器的IPC是不是比M1 更好呢?
如果,针对一个只能跑单线程的程序,开发CPU,5nm工艺,300W功率只堆一个巨核,能堆出什么样子的CPU核心呢?
所以单核行动远没有到头,只是程序支持多核。没有人去消耗全部资源怼单核的IPC。
多线程性能这些年也没停滞,英特尔停了是因为14nm,AMD工艺一上去,核心数上去,同样功耗下,性能增长速度一点不慢。
GPU更是每年都有比较大进步。GPU也算是多核心的计算机。
多核性能,依赖于工艺进步,同样300W,一样的架构,7nm比14nm堆得核心多,互联快,性能就强。
工艺也没有到头,现在的5nm不是物理5nm。距离物理极限差得远,所以台积电才有2nm ,1nm的规划。
到物理极限还有一段距离。
在此之前,CPU性能还有很大空间。
过去10年进步慢,不是技术到极限了,而是英特尔挤牙膏。
现在美国一家公司的risv处理器用69mv做出3ghz芯片,性能相当于第一代i7 。
CPU进化恐怕还远没有完美。
CPU本身没有到顶。目前不往上,是因为性价比不好。
这个题目下的大多答案没有回答到点上:
现在随着散热成本的提升(芯片内),提高性能没那么明显的性价比了。
这个,我们可以从矿机芯片的发展同样看到:
1,从28nm-》7nm,矿机始终频率在500-800M,大家宁可降频来实现低功耗。这个频率性价比最好。(如果不降电压,矿机可以提高10+倍的频率)
2,CPU 可能在2-3G为最佳性价比。
3,将来功耗会成为核心的竞争优势。
4,做动态逻辑等的有福了。
(动态逻辑对时序/功耗有好处,苹果买过一家Intrinsity,专门做domino 动态逻辑的。华为想要这个取得进展,应该也至少掌握这个。)
Apple's Intrinsity Acquisition: Winners and Losers (anandtech.com)
长期来讲(3-5年),Intel有大麻烦,其两个核心竞争力都被打破:先进工艺被TSMC打破;服务器被Arm打破。
鉴于本回答依然存在热度,在此特地声明,以下关于主频的内容可能存在事实错误,仅供参考。本人水平有限,争取日后修正。
首先是制程很难再进一步缩小,也就是芯片的集成度遇到了天花板。7纳米以内的尺度将面临量子隧穿效应,电子可以在没有外部电场作用的情况下肆意穿越到它本不可能到达的地方,仿佛其间有个隧道一般。经典物理在此失效,0不再确定为0,1不再确定为1,这是晶体管怎么也无法逾越的屏障。尽管,研究者们正使用各种手段避免隧穿效应带来的麻烦,但他们心里比谁都明白,这是一条很快就将见底的死胡同。
再者就是主频也有不可逾越的天花板,因为电信号在介质中的传播速度再快,也快不过光速。即使按光速算,并且不考虑处理时间,在主频为4GHz的CPU中,一个信号最远只能跑7.5厘米。主频越高,这个距离就越短,甚至会出现上一个信号还来不及达到目的地下一个信号就已经产生的现象,这就乱套了。
说白了芯片作为人造物的登峰造极之作,遇到了物理学上量子力学和光速两大天花板,传统的电子计算机已经无法再遵循摩尔定律飞速发展了。
看到有朋友好奇7.5cm是怎么算的,很简单就是真空光速÷主频:
或许有朋友觉得7.5cm挺长的,芯片才多大?但这可是在不考虑信号处理延时的理想情况下算出来的,更重要的是,电在介质中的传播速度其实是这样一个公式:
表示介质的相对介电常数, 表示介质的相对磁导率。对于真空来说,它们都是1,但对于大部分我们所用的导体,它们的值都大于1。硅的 是11.68,铜的 是0.999994(哎哟不错哦)。贴一下维基上各类材料的 和 ,让大家有个直观感受。
有几条评论提到把芯片做大,多核的大芯片就不讨论了,N核带不来N倍的效率。如果把单die做大,除了上面提到的光速局限,还会面临良率降低的问题。晶圆在加工过程中会引入随机散落的瑕疵点,我们从一片晶圆上切下若干片die,如果瑕疵正好落在了某片die上,这片die就报废了。die越大,良率越低,成本就越高。
当然,如果你有幸买到一个由整块晶圆做成的CPU,基本能省下购置电磁炉的开支。
过去这些年中,单核性能的增长可以主要归功于以下2个方面:(1)处理器微结构(MicroArch)的发展。流水线、乱序执行、分支预测这些技术使得时间上和空间上,对电路的利用更加充分。(2)CMOS工艺的发展。更小的尺寸为计算部件带来了更低的延时、更低的功耗,为存储部件带来了更大的容量。
然而,(1)和(2)两个方面的发展速度都已放缓。对于(1),微结构(MicroArch)的爆发增长期是在1985年——2002年,许多革命性的技术在这一时期被应用,2002年以后技术趋于成熟,发展速度放缓。对于(2),抛开能不能制造出尺寸更小的CMOS元件这个问题不谈,即使可以制造出,功耗这一因素已经无法忽略。在 @逸之 的答案中已经详细说了物理方面的因素,我这里再就量子的影响展开说,CPU的功耗可以粗略计算为: ,在数百nm到数十nm的时代,占功耗大头的是 ,但是随着工艺的不断缩小,静态功耗 占比越来越大。造成这种影响一个因素是,栅极上方的氧化层(栅氧)越来越薄,这一区域理想的功能是一个绝缘层,但现在厚度栅氧已经接近原子尺度,电子有一定概率会穿过,从而产生漏电流。
以上因素共同作用的结果就是性能增长的放缓。1980年——2004年,单核性能的进步速度约为每年52%,2005年——2012年约为每年20%,2015年——2019年约为每年3%。
我们可以将并行分为3类:(1)指令级并行instruction level parallel 简称ILP (2)数据级 data instruction level 简称DLP (3)线程级并行 thread level parallel 简称TLP。单核中主要利用的是ILP,ILP是所有3类中最好用的,所有程序都可以使用,并且对程序员透明,只需把工作丢给硬件。但剩下两类却没那么好用,不是所有程序所有算法都可以发掘出并行的空间。也就是说,一个速度为2的处理器,和两个速度为1的处理器是不一样的。
正文至此
以下内容给非cs、ee专业的同学补充一下背景知识,cs、ee专业的同学请跳过。
也许因为,它们的事态看起来并没有那么糟糕,所以没能感同身受吧。
其实就算武汉封城的时候,我还天真的以为,这次的疫情只是屁大点事。
直到我发现,官方公布的武汉单城市确诊数量竟然高达几万人。。。这才意识到武汉短短一个多月确实传染了太多的人,这才意识到这个病毒比我想象的要可怕很多。
欧美现在单城市破万的根本没有,甚至全国加起来都没破万,所以它们觉得这不是什么大事,也挺正常。
人类,大概总会是不见棺材不落泪的,等到它们也单城市确诊过万的时候,自然就会意识到,戴口罩一点也不好笑。