最近,MIT学者Neil Thompson和Svenja Spanuth发表了一篇名为“The Decline of Computers as a General Purpose Technology” 的working paper,重点分析了为什么摩尔定律的终结与深度学习的兴起会加速计算技术的专用化趋势。我和Neil有一面之缘,他在伯克利哈斯商学院的博士课题就是研究IT产业对社会经济和生产力的影响。50多页的论文读着一气呵成,遂整理读书笔记加上一些我的注解,以飨读者。
众所周知,生产率(productivity)是衡量经济增长和经济水平的一个很重要的因素。计算机自20世纪中叶诞生以来用前所未有的速度改变着我们的生活,以美国为例,计算机技术带动了自1974年以来的1/3生产率增长,居功至伟。从产业发展的角度来看,通用计算的进步与普惠离不开坚实的经济后盾:一项新技术通过商业上的成功取得收益,然后继续投入创新项目进一步扩大生产;科技的进步让我们有机会用更加低廉的价格买到更强的算力。同时,经济学原理告诉我们,需求(demand)的增长会继续拉动供给(supply),这样的良性循环在过去几十年里不断地推动着通用计算产业的进步,CPU也成了芯片的代名词。Intel公司的先知Gordon Moore先生预见性地提出了以他名字命名的摩尔定律,几十年增长气势如虹。
然而,当摩尔定律走向尽头[2],通用计算发展的步伐也不得不逐渐放缓。以2008年为转折点,芯片的一个重要衡量指标性价比(performance/dollar)从之前的每年平均48%增长降低到了10%以下。近年来,我们正看到一些芯片设计正在朝着专用化的方向演进– 对比CPU,专用芯片的适用范围很窄,但在特定领域能做得更好,性能达到数十倍甚至百倍的提升。我们看到以深度学习和比特币挖矿为代表的新技术的兴起,都将加速计算芯片技术专用化的进程– 那些能得到专用芯片加速的应用将会在“快车道”上越走越快,而那些不能得到加速的应用将会随着通用计算的没落而一起停滞不前。
非常有意思的是,Neil还预言,这样的专用化趋势会最终影响到计算技术的进步,并进而影响到社会经济的发展。我深以为然,随着信息和资本流动全球化,科技发展的马太效应会越来越多地影响到社会经济的两极分化。这样的蝴蝶效应值得更多的有识之士关注。
在过去的几十年里,绝大多数人都在适用高度同质化(homogeneous)的x86计算机,而CPU的快速发展迭代能够把技术红利集中地、“有感知地”释放给大众。然而,当计算系统变得更加专用化之后,分层就会显现,异构(heterogeneous)的进程就会加快。在进一步讨论其中的经济学原理之前,我们先来回顾一下芯片发展的一些历史。
通用芯片历史
1969年,一家叫Busicom[3]日本公司打算为其计算器(calculator)产品线重新设计一款芯片。在这之前,计算器产品都是高度专用化的设计,即高效地做好规定操作;由于专用芯片缺乏灵活性,芯片设计完成之后就不能增加新的功能了。Intel作为一家刚刚成立一年的初创公司进入了Busicom的视野。伟大的公司自然有其过人之处,Intel从一开始就从战略上选择做一款可编程的通用芯片,并与Busicom一拍即合。这就是第一个通用处理器4004的开始,通过重写软件实现各种不用的应用功能极大地释放了生产力,也从此开启了Intel的芯片王朝。
从4004开始,CPU的性能至今已经有了超过40万倍的提升。从2000到2010年,PC机的年增长率高达9%(远高于同期美国GDP增长)。截至2018年,全球PC机的保有量超过20亿台。而这些成就的取得并不是没有代价的,根据Intel的SEC filling[4],在过去十年总共投入了1,830亿美元用于研发和Fab的建设。放眼世界,由于新的晶圆生产线成本居高不下,有能力生产最前沿芯片制程的厂商,也从2000年的25家骤减到如今的4家。从2014年起,Intel的固定成本(R&D + Additional PP&E)已经开始超过了其可变成本(COGS = Net Revenue – Gross Margin)支出(见下图财务报表)。
正是由于成本结构的变化,Intel在2016财年的10-K filing里面明确了将放缓科技迭代,并从之前的tick-tock转向process-architecture-optimization模式[5]。一场变革正在悄然酝酿之中,最明显的就是TOP500计算机中使用专用加速芯片的比例正在逐年提高。
专用加速芯片的兴起
Domain Specific的专用芯片是计算机体系结构黄金时代大复兴的四个方向之一,唐杉老师的专栏已经讲了好多专用芯片的好处,此处不再赘述。总结一下专用芯片适用的四个主要场景:
- 计算能够大量并行处理的(parallelism)
- 计算pattern是非常整齐的(regularity)
- 不需要过多访问memory的(locality)
- 可以用更低精度(precision)等效替代的
由于专用芯片不需要在通用性和兼容性上做太多妥协,往往在性价比和能效上(energy efficiency)上更优。
而一款专用芯片的成功与否和其开发生态也息息相关。就拿我读研究生时候同时期出来的Cell和GT8800为例,虽然Cell芯片在很多技术点上有可取之处,又成功在PS3游戏机上落地,但由于非常难开发(还有人记得斯坦福开发的Sequoia 么?),三年之后不得不灰溜溜得退出市场,从此没有第二代(插曲:记得当时有恐怖分子买了大量Playstation后来被截获,原本准备拆了当导弹芯片的,那真是有勇气啊!);而NVIDIA的GT8800配合CUDA横空出世,不仅一举为皮衣教主在十年后的AI赛道上封神打下了坚实的基础,也让我等晚辈看到了并行计算的光明前景由此入了GPU的行。而之后,ImageNet挑战赛让GPU以算力打开了深度学习新局面的故事想必大家也都已经耳熟能详。现在炒得火热的AI芯片们有多大的决心做生态做软件,也将很大程度上决定他们未来的命运。
通用和专用之争
在比较芯片之前,我们再来看历史上另一个关于通用和专用的争论,或许能对我们现在讨论的芯片专用化的趋势有所启示。
20世纪之初,家用厨房用具开始逐渐电器化,而小型马达的价格在那时还是居高不下。以一个带电动马达的缝纫机为例,其1917年的售价高达$35美元,相当于一户普通人家一个月28%的收入。Hamilton-Beach公司看到了用户的痛点,并快速设计出了一款售价只有$11.5美元,并能匹配大部分家电的通用马达。
按照通常的逻辑发展,通用马达应该成为标准。根据之前提到的产品改进->扩大市场->追加投资的理论,似乎Hamilton-Beach公司在不断改良降低成本之后,通用马达应该成为家家户户电器里必备的装备。
然而事实的发展并非如此,在100多年后的今天,我们看到家里电器的马达并非是通用的。我们的家电设备因为功率、体积和用途的不同,其马达都是专用的!究其原因,Neil认为无非是两边性价比谁提高地快的问题(在同等的情况下理性人通常会愿意选择功能更多的通用产品),例如假设一个能带动大功率搅拌机的通用马达能比一个小电扇的专用马达价格更低,自然会有受众。然而,工程师们无法设计出一种既省钱又好用的通用产品。由于通用的马达并不能给所有的产品带来收益,相反大功率马达价格premium居高不下,而低成本的马达也同样也有足够大的市场,产品分层带来的各种专用化最终战胜了通用。
对于芯片行业来说,通用CPU借助摩尔定律高速发展在最初几十年很好地回答了上面性价比的问题,而当摩尔定律的魔力不在之时,CPU则很难避免通用马达一般的命运。
当我们把专用芯片的性能作为常数,而通用芯片的进步模拟成一个阶梯函数,则通用和专用芯片的优势对比可以简单地用下图模型表示(Neil在文中还推理了一个比较复杂的数学公式,这里也不展开赘述)。蓝色(通用占优)和灰色(专用占优)面积孰大孰小则表示应该选取那种芯片。
收益与经济规模也有很大关系,根据Neil的复杂公式推理,如果一个专用芯片有10倍于通用的性能,那至少需要167,000块芯片的出货量来支撑;而如果仅有2倍的speedup,则需要至少有1百万块芯片来摊薄固定成本!且不论这个数学模型精确与否,比特币矿机和TPU的出现已经能充分说明这类经济规律的合理性 - 只要有足够大的市场和足够高的收益(性能提升),人们会毫不犹豫撸起袖子搞专用化。
经济规律和总结
芯片的专用化已经很好地在比特币和深度学习的场景中展现,那让我们来推演一下其中哪些经济规律和逻辑在这场变革中起着主导作用,并不断推波助澜。
- 如前文所述,能生产最先进制程芯片的厂商越来越少。这意味着每家厂商的平均市场份额从当年的4%提高到了25%,相当于年均14%的增长,行业的consolidation足以抵消成本上升带来的影响。然而,这样的合并是不可持续的(如果按照之前的趋势,再过不到10年,市场就只能支撑1家芯片制造商),这也就意味着为了摊薄更先进制程的生产线带来的成本上升问题,制程的推陈出新将会变得越来越慢,而通用CPU所能享受到的技术红利(阶梯函数)也将大大受其影响。基于前文引述的财报数据,固定成本已经占据了Intel成本结构的大头,摊薄是个大问题–换言之,Intel当前10nm产线delay的问题真的是技术问题还是经济问题,这个真的很难说!
- 科技发展同样遇到了瓶颈,大约10多年前,Dennard scaling[7]的失效已经预示着芯片的性价比提升无法持续。而三星最近的研究表明,随着晶体管越变越小,单位晶体管成本已经抵达拐点不降反升了!当科技红利无法持续,人们会越来越多选择更成熟也更便宜的制程节点,这又反过来延缓了新技术的铺开和成本摊薄。
- 当通用CPU无法如之前那样势如破竹地提高性价比的时候,不自觉地阶梯函数的收益就会往下降,而当越来越多的人大量选择通过专用芯片来加速的时候,一个类似的关于专用芯片的良性循环周期也已开始。
总结一下有这么几个论断:
- 通用CPU还会在未来相当长一段时间内作为一种成熟稳定、发展缓慢的技术而存在。
- 未来的芯片和数据中心将会是全面异构的,GPU、AI芯片、FPGA和其他加速器都会是其中的一部分。
- 那些不能很好被专用芯片加速的应用(例如事务型数据库加速芯片)、那些虽然能够被加速但无法大量落地的应用,以及那些不能利用云的规模效应的应用,都将被远远地甩在后面。
后记
“天之道,损有余而补不足;人之道,损不足以奉有余。”社会、经济和科技发展到一定阶段必然会导致两极分化。那些时代宠儿们将会不成比例地获取社会资源和享受福利的倾斜,而剩下的那些则很有可能持续陷入到不能自拔的“新常态”中去。如果社会的进步不能如CPU的高速发展一般为大部分人所“感知”,那社会体制的失衡就会愈发明显,进而影响整体的经济发展和进步。资本的逐利性和人们自我意识的觉醒会是一个持续的矛盾,只不过这次专用芯片这只蝴蝶挥动了一下翅膀。
Reference:
[1] Neil Thompson, “The Decline of Computers as a General Purpose Technology”, http://ide.mit.edu/publications/decline-computers-general-purpose-technology
[2] "AFTER MOORE'S LAW", https://www.economist.com/technology-quarterly/2016-03-12/after-moores-law
[3] https://en.wikipedia.org/wiki/Busicom
[4] “Annual Report and Form 10-K”,https://www.intc.com/investor-relations/financials-and-filings/annual-reports-and-proxy/default.aspx
[5] https://en.wikipedia.org/wiki/Tick%E2%80%93tock_model
[6] K Fatahalian,“Sequoia: Programming the Memory Hierarchy”,http://graphics.stanford.edu/papers/sequoia/sequoia_sc06.pdf
[7] https://en.wikipedia.org/wiki/Dennard_scaling
周末抽空整理了一下关于从经济学视角看专用(e.g. AI/挖矿)芯片崛起的感想,首发于StarryHeavensAbove公众号,然后被新智元、半导体行业观察等媒体转载,不觉累计有万余阅读量,转贴到ATA供大家讨论指正
====================