摩尔定律谢幕,芯片的未来在哪?

编者按:今天我们能够在工作生活中使用快速、便捷的云服务,要得益于微软研究院新体验与新技术部杰出工程师Doug Burger博士和他的同行们在计算机架构领域做出的贡献。如今,人工智能尤其是深度学习的进步对硬件和计算机架构提出了更高的要求,在本期访谈中,Doug Burger博士将介绍他的工作如何应对这样的挑战,并分享了他对后冯·诺伊曼时代硬件发展的展望。

微软研究院新体验与新技术部杰出工程师Doug Burger

整整50年来,计算机的底层元件都遵从着“摩尔定律”:在价格不变的情况下,集成在芯片上的晶体管数量每隔18到24个月将增加一倍,计算成本呈指数型下降摩尔定律成就了各种技术变革,例如互联网、基因组测序等等。

然而现在,摩尔定律的趋势第一次放缓了。芯片行业进入了一个不确定的时代,在同样的投入下,收益变得越来越低。我认为有两个原因。一是芯片制造商面临的一个经济问题:相比与芯片体积,大多数人对芯片的价格更敏感,要求芯片要做到经济实用;二是我所认为的真正原因,随着晶体管尺寸的不断缩小,我们遇到了原子极限,先前标准、规则结构的晶体管结构已经无法维系。

在CPU时代,我们一直沿用的范式是在CPU上运行编写好的程序。这一范式的优点在于整个计算系统所有层级都是确定的,它们有限但功能强大。芯片的原理非常简单,无非就是开关、逻辑门、二进制系统等等。但是现在,计算需求正变得越来越复杂和艰难,导致计算机结构也越来越复杂,在一块芯片上集成的电路越来越庞大。

Simon Peyton Jones曾说,计算机软件和体系架构是人们迄今为止所创造的最令人惊叹的结构。在计算机体系架构领域,任何一个接口的设计都需要调整芯片底层的架构。做芯片与做软件差别很大。编写软件时的自由度非常高,但在设计硬件时却会面临各种各样的限制:在一块尺寸有限的硅芯片上要集成各种不同功能的组件,并且要保证以正确的方式相互连接,而且要根据预算在通用性、高效性、速度、软件适配等多个维度中做出权衡

FPGA:现场可编程门阵列

在加入微软前,我曾和我的一名博士生Hadi Esmaeilzadeh做过一项关于“暗硅”(Dark Silicon)的研究。当时,业界正朝着多核芯片的方向发展,有人认为,只要能编写并行软件,就能将计算机芯片架构扩展到数千核。

我们在2011年发表的研究中发现,由于功耗的限制,一个多核处理器在同一时刻只能有很少的一部分晶体管能够工作,而其余部分则处于休眠状态。这项研究获得了相当高的关注度。

受到这一研究的启发,我们认为可以针对特定的工作使用定制硬件来加速计算,解决“暗硅”问题。但是对于普通用户来说,定制芯片的经济成本以及大量功能不同芯片的管理成本都很高。为了帮助用户解决这个问题,微软在Azure云平台上部署了FPGA(现场可编程门阵列)。

FPGA全称为“现场可编程门阵列”,之所以称为“现场可编程”,是因为在做完芯片硬件设计和算法映射之后,我们仍然可以对FPGA芯片进行实时、动态地修改。我们可以随时把它改写成其它用途的芯片,甚至可以每隔几秒修改一次。为了同时满足性能、成本和灵活性的要求,我们可以使用定制芯片来处理部分长期稳定的计算需求,而使用FPGA来处理剩余计算需求。

FPGA此前就已经广泛应用于通信领域,在处理高速数据流以及测试即将投产的芯片时的表现出色。但在云计算中,FPGA尚未真正成功地大规模使用。

CPU和GPU适合于处理不同的任务。CPU是一种通用处理器,适合处理少量数据而GPU是一种单指令、多数据(Single Instruction Multiple Data,SIMD)的并行处理器,即一条指令对不同的几组数据执行相同的操作。FPGA实际上是CPU模型的“倒置”。在FPGA上,我们不再固定数据、运行指令,而是固定一些指令、运行整批数据。我称之为“结构化计算”,其理念为固定一种计算结构,让数据不断从其中流过。FPGA非常适合这类工作负载,在云中, FPGA可以很好地完成这一使命,对CPU来说也是一种很好的补充。

FPGA每秒能够处理50GB的数据包,同时也可以确保用户的信息安全和网络私密性。面对同样的计算任务,多块CPU才能接近一块FPGA的处理速度。

于是,从2015年底开始,微软通过Project Catapult项目在微软Azure云中对FPGA进行了超大规模的部署,不管与之前相比还是跟竞争对手相比,Azure云的数据处理速度都有明显的提升。目前,微软是全球最大的FPGA使用者之一,各个团队都在使用FPGA强化自己的服务。

Brainwave:为深度神经网络“定制”处理器

在人工智能领域,目前大热的深度学习对计算机硬件和架构都提出了更高的要求,只有更好、更快的硬件和架构才能处理日益庞大的训练数据和越来越复杂的深度神经网络模型。机器翻译、语音理解、计算机视觉等经典人工智能领域的不断发展给硅芯产业带来了很大的压力。现在,许多公司都为打造人工智能、机器学习,特别是深度学习的定制架构投入了大量的资金。

Project Brainwave硬件模型

因此,我们团队打造了自己的深度神经网络处理器Brainwave。我们正与微软必应和Azure团队通力合作,为微软的各项服务提供有力的硬件与架构支持。利用Brainwave,必应团队可以摆脱计算资源的制约,能够部署体量更大的模型,从而为用户提供更好、更快、更高质量的搜索内容。

在今年的微软Build大会上,微软宣布了Project Brainwave预览版,并将其整合到Azure机器学习服务中供用户使用。同时,用户也可以自行购买微软推出的Catapult架构主板将之嵌入到生产设备上,这样就可以在边缘设备上直接运行已经在Azure上训练好的模型,从而节省时间成本。

Brainwave非常适合处理推理运算任务,对于此类任务,目前大量技术都采用“批处理”的方式。批处理能够提升计算机的处理能力,但却容易增加网络延迟。Project Brainwave可以将实时AI计算的延迟时间降到最小。不同的任务对于“实时”的要求并不相同,对于通过收集网络信息预告紧急情况的任务来说,几分钟的“实时”处理是可以接受的,但对于实时语音互动或者类似于HoloLens这种增强现实任务,“实时”处理则要求做到毫秒级。

在实际的计算任务中,除了处理速度,成本也是需要考虑的一个关键因素。Brainwave系统做到了两者兼顾,在处理速度和成本控制方面都有非常好的表现。

自从冯·诺依曼结构在上世界四十年代被提出之后,我们一直围绕着冯·诺依曼计算机和各种各样的计算机异构加速器进行研究,摩尔定律将要谢幕,我们正处于硅基和冯·诺伊曼时代的尾声。所以,我们应该考虑更深远的东西,为计算机的新的架构探索更深层次的理论。

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

产业芯片摩尔定律
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

增强现实技术

增强现实,是指透过摄影机影像的位置及角度精算并加上图像分析技术,让屏幕上的虚拟世界能够与现实世界场景进行结合与互动的技术。这种技术于1990年提出。随着随身电子产品运算能力的提升,增强现实的用途也越来越广。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

摩尔定律技术

摩尔定律是由英特尔创始人之一戈登·摩尔提出来的。其内容为:积体电路上可容纳的电晶体数目,约每隔两年便会增加一倍;经常被引用的“18个月”,是由英特尔首席执行官大卫·豪斯所说:预计18个月会将芯片的性能提高一倍。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~