0
本文作者: 吴京鸿 | 2019-07-01 17:27 |
【大咖Live】 人工智能与芯片专场第二期,我们邀请到了Imagination高级总监时昕,带来了关于《中国处理器之路-过去、现在、未来》的主题直播分享。目前,本期分享音频及全文实录已上线,「AI投研邦」会员可进雷锋网「AI投研邦」页面免费查看。
本文对这期分享进行部分要点总结及PPT整理,以帮助大家提前清晰地了解本场分享重点。
分享提纲
1. 处理器:信息产业链皇冠上的宝石;
2. 处理器架构的变迁:分久必合、合久必分;
百花齐放到X86&Arm两分天下;
声卡与显卡等专用处理器;
3 . 处理器的技术趋势;
4. 中国处理器未来发展之路的思考。
以下为Imagination高级总监时昕的部分直播分享实录,【AI投研邦】在不改变原意的基础上做了整理和精编。完整分享内容请关注【AI投研邦】会员内容。
感谢雷锋网平台和大家的时间,在现在这个时刻,有机会跟大家探讨一下中国发展处理器的一些想法。
首先,我们先聊聊为什么处理器如此的重要;接下来,我们简单回顾一下处理器诞生以来,这几十年架构变迁的历史,希望对我们展望未来有所帮助;然后,我们在从技术方面观察一下处理器可能的发展趋势;最后,我们谈谈未来发展中国处理器时有哪些需要考虑的问题和思路。
一、处理器:信息产业链皇冠上的宝石
我记得我经常跟各行业的朋友说,芯片是整个信息产业的基础。从服务器、云、到桌面到移动设备以及物联网设备,所有的这些信息产品,都是要以芯片为基础的。我们常说现在的世界是信息化社会,也有说法是我们正在进入5G时代,AI时代等等,相对于工业化和信息化这些巨大的社会进步,AI, 5G这些都是在信息化基础上实现的新的阶段性突破。大的方面来讲,我们还是在信息化社会的发展阶段。可能有人会问,信息和数据这两者之间有什么区别和联系呢?数据是数据采集时提供的,信息是从采集的数据中获取的有用信息。换句话说,数据是记录,也是信息的表现形式。所以我们社会信息化的根本是对数据的采集、存储和处理。对应的技术产品就是各种传感器、存储和处理器等各种芯片。
因此我们可以说整个信息产业的基础是芯片,而处理器芯片,因为它在所有芯片中的特殊性,包括处理器在系统中的技术地位以及它的技术挑战等等,处理器被称为芯片皇冠上的宝石,也是整个信息产业皇冠上的宝石。这里的处理器不仅是指我们笔记本电脑或服务器上用到的CPU和GPU,其实在手机和各种智能物联网产品,数码娱乐产品等等很多的地方都有无数的处理器在帮我们进行信息的处理。虽然没有准确的统计数字,但是我们每个人身边都有至少两位数的处理器。比方说您所使用的的笔记本,里面不但有用于跑Windows的CPU和GPU,其实像笔记本里的硬盘,wifi等接口也都有小的嵌入式处理器。您的手机上在AP和基带这两个之外,也有好几个小一些的处理器。再加上各种手环,智能家电等等,我们一般人身边至少有十几个处理器。整个世界上的处理器更是数以百亿记。
二、处理器架构的变迁:分久必合、合久必分
经过前面的简单介绍,我想大家可能对处理器的重要程度有些感觉了。那么我们现在简单回顾一下处理器的发展历史。
讨论处理器,肯定离不开讨论计算机。世界上第一台通用计算机“ENIAC”是1946年2月14日在美国宾夕法尼亚大学诞生的,当时是美国国防部用它来进行弹道计算。当时虽然德国已经投降了,但是这个项目的开始时,还是为了战争服务的。这台计算机,用了18000个电子管,占地150平方米,重量30吨,耗电功率约150千瓦,每秒钟可进行5000次运算,这在现在看来微不足道,但在当时却是破天荒的。 因为晶体管的发明还要在一年以后,ENIAC以电子管作为元器件,所以又被称为电子管计算机,是计算机的第一代。电子管计算机由于使用的电子管体积很大,耗电量大,而且使用几十个小时就要对损坏的电子管进行更换,因此工作的时间不能太长。
之后,在1947年,贝尔实验室的肖克利等人发明了晶体管,再之后,TI的基尔比发明了集成电路,并且在1959年2月提交了专利。仙童的诺伊斯等人在几个月之后申请了另一个平面集成电路专利。之后的数十年,集成电路技术推动着处理器的各项指标不断提高。再加上人机交互技术如显示屏、鼠标、触摸屏等技术的不断出现于发展,我们所使用的计算设备也越来越丰富强大。
开始的时候,电脑上只有一个中央处理器,也就是我们大家都知道的CPU,随着电脑上要执行的任务越来越多,更多的处理器设备也逐渐被加入进来。
最典型的包括声卡和显卡。当然我们现在的年轻一点的人可能只知道显卡,也就是GPU,而不太听说过声卡了。
开始的计算机上面只有喇叭,只能发出滴滴滴的警报声,世界上第一块声卡叫做魔奇音效卡,于1984年诞生于英国的ADLIB AUDIO公司。可以说ADLIB公司是名副其实的“声卡之父”。那时的技术还很落后,在性能上存在着许多不足之处,就拿这块声卡来说,它是单声道的,而且音质现在看来简直是烂到极点,但无疑它的诞生,开创了电脑音频技术的先河。
就在人们对PC音频满怀疑虑的时候,真正的声卡出现了,Sound Blaster(声霸卡)曾经是IBM个人电脑声效的非正式标准,由新加坡创新科技有限公司开发。首张Sound Blaster声卡在1989年11月面世,其后推出过多代版本,如Sound Blaster 16,被称为第一张真正的声卡,这块卡之所以名为16,是因为它拥有16位的复音数(是指在回放MIDI时由声卡模拟出所能同时模拟发声的乐器数目),该声卡能较为完美地合成音频效果,具有划时代的意义,我们终于能能在电脑上听到类似于十几年前的手机上的音效,从而可以把烦人的PC喇叭给拆掉了。之后很多年,声卡都是电脑中的一个重要配件。然而到了现在,过去曾经非常重要的一个特定加速卡,已经完全被集成在了主板上成为了一个不起眼的小部件。
与声卡有些类似的还有显卡,现在的PC和服务器上的显卡都是基于我们大家都知道的NVIDIA和AMD的GPU来做的,通常我们也对显卡和GPU不太加以区分虽然他们不完全是一回事。
独立显卡是插在主板上的扩展槽里的(现在一般是PCI-E插槽,此前还有AGP、PCI、ISA等插槽)。此外,Intel和AMD也提供集成显卡。它主要负责把主机的显示输出以显示器能明白的方式发送出去。早期的显卡只是单纯意义的显卡,只起到信号转换的作用;目前我们一般使用的显卡都带有3D画面运算和图形加速功能,所以也叫做“图形加速卡”或“3D加速卡”。
和声卡不一样的地方在于,因为我们对显示的需求永无止境,特别是在游戏和医疗等行业,对显示的要求很高,因此,目前在PC和服务器等产品中,高端的GPU还都是独立显卡形式存在,而且经常是整个电脑中单价最高的模块。在手机和Pad等设备上,因为电池供电和散热的原因,GPU都无法使用NVIDIA和AMD的GPU,而是使用了特别的移动GPU,主要的厂商和产品包括高通的Adreno,这是当初高通从AMD收购的移动GPU,还有Imagination的PowerVR GPU,在所有的苹果手机pad以及一些android设备上采用的是PowerVR,此外,ARM公司也有移动的GPU产品。
这里我们看到,特定应用的加速用的处理器最终可能会走向两个结局,一个是停滞发展之后在整个系统中的重要性逐渐下降如声卡,另一个则是因为需求不断的提高,而拉动加速处理器不断更新提高,一直作为系统的一个重要核心部件而存在。
我们前面提到处理器架构的不断变迁,但其实我们还没有讨论处理器的架构究竟是什么东西。在左边的图中,我们可以看到,整个处理系统从底层的物理材料到顶层的应用软件通常由很多层构成。其中,我们通常把处理器的指令集架构就是Instruction Set Architecture (ISA)称为处理器的架构。
在历史上,处理器架构有很多种,包括大家常听说的RISC、CISC和VLIW等架构。这是按照类别的一个非常粗的分类。具体到产品层面,历史上也出现过非常多的处理器架构,包括Inte和AMD的X86架构,ARM公司的CPU架构,IBM的Power架构,Sun公司的Sparc架构,大多数高校里还在以MIPS架构讲授处理器架构的课程,等等。但是处理器有一个特点,如果没有在这些处理器上跑的足够丰富易用的软件生态,这个处理器架构就没有意义。因此我们目前看到很多架构都逐渐消亡或者接近消亡了,目前大家关注的也就是3个架构了,其中的RISC-V架构是当初MIPS架构的设计者,Patterson教授在放弃MIPS之后重新提出的一个新的架构,因为Patterson教授在处理器领域的巨大声望,因此这个新架构提出后收到了很多的关注,但是他是否能够获得成功,还需要时间的检验。
我在这里在稍微多讲一句,大家经常听到很多市场宣传材料里的洗脑,说RISC架构如何具有功耗优势等等,其实这些都是洗脑文,不可全信。在RISC架构刚出现的时候,确实如此,但随着其支持的应用原来越多,原来的RISC处理器不断的在增加新的指令,因此,现在其实没有一个清晰的界限,哪个处理器是CISC,哪个处理器是RISC。
三、处理器的技术趋势
前面我们简单回顾了一下历史上的处理器,现在我们尝试从技术层面看一下未来。
处理器性能在40年间的增长。这个图表显示了程序性能相对于SPEC整数基准测试的性能结果。在上世纪80年代中期之前,处理器性能的增长平均每年约22%,即每3.5年性能翻一番。从1986年开始,这一数字增长到了50%左右,或者说处理器性能每2年增加一倍,这就是大家熟知的摩尔定律。到了2003年以后,由于Dennard Scaling不再有效,我们看到,摩尔定律带来的性能提升能有大幅下降了。也就是Intel开始被大家戏称为牙膏厂,因为每年的性能提升像挤牙膏一样。
Dennard Scaling,Dennard在1974发了篇论文,预测说晶体管尺寸变小,功耗会同比变小,换句话说相同面积下功耗不变。由于Dennard scaling开始失效,同时我们对于计算的需求越来越多,处理器的功耗在十几年前的时候就开始成为大家关注的一个焦点。图片上是一个数据中心,不但有着复杂的供电系统,也需要复杂的散热系统,我们可以看到那些管道都是用于散热的水管。很多的数据中心开始建设在水电或风电充沛的地方,一方面电力便宜,另一方面这些地方的散热通常也较好处理。在这方面,不管是大型互联网公司的数据中心也好,甚至很多的数字加密货币的挖矿矿场也是类似。
另外,还有两个重要的趋势,一个是处理器的时钟频率,另一个是芯片加工工艺。
我们看到,随着摩尔定律逐渐接近物理极限,这两方面的增长都在放缓。左边这张图显示,处理器时钟速率的增长从1978年到1986年,时钟率每年的提高15%。在1986年至2003年,每年50%的性能改进,时钟率每年飙升近40%。从那以后,时钟速度几乎保持不变,每年的增年增长率仅为个位数。右边这张图是ITRS的工艺节点的预测,International Technology Roadmap for Semiconductors,ITRS是由欧洲、日本、韩国、台湾、美国五个主要的芯片制造地区发起的。在2016年以后,ITRS不再进行工艺节点的预测了。虽然我们现在在2019年看,这个2015年的预测不完全准确,TSMC已经7nm量产,5nm也开始进入试产。但其揭示的趋势是没有问题的,在不远的将来,摩尔定律将无法继续。
在整个系统中,对性能的限制其实在很多时候不是来自处理器的性能,而是来自存储器,也就是我们常听说的memory wall,内存墙。因为我们现在的处理器都是冯诺依曼结构的,也就是说,程序和数据都存在存储器里,处理器从存储器里取得程序指令和数据,处理完的输出也有送回存储器。因此,处理器与内存之间的传输常常会是整个系统的瓶颈。为了尽量减小内存速度不够的影响,现代处理器经常会将70%的硅片面积用于缓存。
这里再简单介绍一下处理器提高性能的常用技术手段。将一个执行通过流水线分成多个步骤,这样每个步骤执行的操作就少了,从而可以进一步提高时钟频率。在每一个时刻,流水线硬件上可以执行不同指令的特定步骤。流水线是处理器设计的基本内容之一,现代的先进处理器的流水线可达十几级。但是流水线不能无限细分,因为在程序执行过程中会经常有跳转等,这时就要清空流水,重新取正确程序分支的指令和数据进来。
流水线可以看作从时间层面进行并行处理,另一个常见的提高处理器性能的技术则是空间并行。
就是将任务或数据不想关的处理,放到多个处理器核上同时处理。这就是我们常听到的多核技术multi core。特别是GPU,可以看作是众核技术Many Core,一个GPU芯片上经常会有数百乃至数千个小核,同时对很多独立的任务或数据进行处理。
我们可以看到,在最近的这十几年中,处理器的核数明显提高了。然而,CPU的核数在达到最高16核之后几乎就停止了提高。GPU的核数在达到了2千多个核之后也基本不再增长了。
这是因为,像流水线技术一样,多核与众核技术也有很多的限制,在适用的场景下可以极大的提升效率,例如对图像中的每个像素点,都可以独立的进行处理,然后很多的任务,是没有任务并行性或数据并行性的,因此无法获益于并行处理。
而且,在那些适合进行并行处理的任务中,也有很大的技术挑战。处理的不好,处理器上并行执行的任务将会像早晚高峰时被堵在路上的车辆一样动弹不得。
最为通用的处理器当然是CPU(比如intel的桌面CPU,ARM的嵌入式CPU),可以运行任何程序,处理各种数据。但问题是CPU对某些应用效率太低(处理能力不够,无法实时处理,或者是能耗太大)。比如,处理graphic不行,于是出现了GPU;信号处理不行,于是出现了DSP。GPU可以做图像处理,也可以做DNN的training和inference,但是在处理某些DNN应用的时候效率不高,于是有了专用针对这些应用处理器,也就是大家最近讨论的专用AI加速处理器,或者说神经网络处理器NN Processor。所以说,专用处理器也是个相对概念,相对CPU而言,别的处理器都是专用处理器。而我想讨论的专用处理器是相对GPU/DSP而言更为“专业”的处理器。
做专用处理器的原因或者动力基本就是两个字,“效率”。拿FFT处理器来看,如果用通用处理器(只有通用的乘加运算),做一个256点的FFT可能需要运行几千条指令,需要很长时间。这对于很多对时延要求很苛刻的场景是很难忍受的。如果,用一个每周期就能做做一次蝶形运算的专用处理器,那么这个时间会缩短到几百个周期。当然,一个周期执行一次蝶形运算,相当于一次做了好几个乘法和加法,需要更多的硬件电路。
当然,这个说法只是一个简单化的说法。实际上衡量处理器效率的标准很多,比如能耗效率。而影响处理器效率的因素和设计优化方法也很多,这就是计算机体系结构这个领域研究的内容。不过,一般来说,如果我们明确的知道我们的处理器的目标应用场景(有限的应用),比如只用来做FFT的运算或者CNN(卷积神经网络)加速,我们在设计中就可以不考虑其它的需求,充分发掘目标需求的特点,实现最有效的设计。
那么为什么过去专用处理器用的不多呢?因为,专用处理器违背了“不要重新发明轮子”原则。从某种程度上说,专用处理器就是重新发明轮子,既不经济和又有很大风险。另一方面,专用处理器的应用范围比较窄,其目标市场规模很有可能无法让你获利。总的来说,如果做专用处理器获得的收益不能超过开发它花的成本和面临的风险的话,还是尽早放弃为好。
而现在随着AI获得越来越多的应用,因此有很多的AI专用加速处理器出现。例如,Imagination的神经网络加速处理器,就可以在AI计算方面提供数百近千倍的速度提升,将过去需要几分钟才能完成的计算缩短到毫秒级从而满足实时性的要求。
本文为部分内容和PPT,完整内容和PPT查看可进入雷锋网「AI投研邦」查看
雷峰网原创文章,未经授权禁止转载。详情见转载须知。