整整 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 系统做到了两者兼顾,在处理速度和成本控制方面都有非常好的表现。
 
自从冯·诺依曼结构在上世界四十年代被提出之后,我们一直围绕着冯·诺依曼计算机和各种各样的计算机异构加速器进行研究,摩尔定律将要谢幕,我们正处于硅基和冯·诺伊曼时代的尾声。所以,我们应该考虑更深远的东西,为计算机的新的架构探索更深层次的理论。