Doug Burger博士就是这群“建筑师”里的一员。他现任微软技术院士(Technical Fellow),曾任微软研究院杰出工程师、德克萨斯大学奥斯丁分校计算机科学教授。他也是微软FPGA项目Catapult和Brainwave的首席架构师和主要负责人。2018年,Doug Burger在微软研究院的播客里分享了他对后摩尔定律时代芯片产业发展的观点与愿景,并展望了人工智能时代芯片技术的前进方向。
(Doug Burger博士,图片来自微软)
2. FPGA:解决暗硅效应的有效途径
3. 使用FPGA的独特优势是什么
4. 什么是Catapult项目
5. 脑波项目与实时AI
6. 评价实时AI系统的主要标准
7. AI未来的发展路在何方?
于是,我们在2011年发表了一篇论文,并因此获得了很高的知名度。虽然在那篇论文里没有明确的定义“暗硅(dark silicon)”这个词,但是它的意义却得到了广泛认可。
暗硅效应指的是,虽然我们可以不断增加处理器核心的数量,但是由于能耗限制,无法让它们同时工作。就好像一幢大楼里有很多房间,但由于功耗太大,你无法点亮每个房间的灯光,使得这幢大楼在夜里看起来有很多黑暗的部分。这其中的本质原因是在后摩尔定律时代,晶体管的能效发展已经趋于停滞。
(暗硅示意图,图片来自NYU)
因此,我们将赌注押在了这个名叫FPGA的芯片上。FPGA全名叫“现场可编程逻辑阵列”,它本质是一种可编程的芯片。人们可以把硬件设计重复烧写在它的可编程存储器里,从而使FPGA芯片可以执行不同的硬件设计和功能。另外,你也可以在使用现场动态的改变它上面运行的功能,这就是为什么它们被称作“现场可编程”的原因。事实上,你可以每隔几秒就改变一次FPGA芯片上运行的硬件设计,因此这种芯片非常灵活。
(英特尔Stratix 10 FPGA芯片,图片来自英特尔)
灵活性是FPGA最重要的特点。要知道,FPGA芯片已经在电信领域中得到了非常广泛的使用。这种芯片非常擅长对数据流进行快速处理,同时也被用于流片前的功能测试等。但是在云计算中,之前并没有人能够真正成功的大规模部署FPGA。我指的“部署”,并不是指那些用来作为原型设计或概念验证的工作,而是指真正的用于工业级使用的部署。
CPU是一种非常通用的架构,它的工作方式基于一系列的计算机指令,也称为“指令集”。简单来说,CPU从内存中提取一小部分数据,放在寄存器或者缓存中,然后使用一系列指令对这些数据进行操作。操作完毕后,将数据写回内存,提取另一小部分数据,再用指令进行操作,并周而复始。我把这种计算方式称为“时域计算”。
不过,如果这些需要用指令进行处理的数据集太大,或者这些数据值太大,那么CPU就不能很高效的应对这种情况。这就是为什么在处理高速网络流量的时候,我们往往需要使用定制芯片,比如网卡芯片等,而不是CPU。这是因为在CPU中,即使处理一个字节的数据也必须使用一堆指令才能完成,而当数据流以每秒125亿字节进入系统时,这种处理方式哪怕使用再多的线程也忙不过来。
对于GPU来说,它所擅长的是被称作“单指令多数据流(SIMD)”的并行处理。这种处理方式的本质是,在GPU中有着一堆相同的计算核心,可以处理类似但并不是完全相同的数据集。因此,可以使用一条指令,就让这些计算核心执行相同的操作,并且平行的处理所有数据。
然后对于FPGA而言,它实际上是CPU计算模型的转置。与其将数据锁定在架构上,然后使用指令流对其处理,FPGA将“指令”锁定在架构上,然后在上面运行数据流。
(CPU与FPGA计算模型的对比,图片来自微软)
在2015年末,我们开始在微软购买的几乎每台新服务器上部署Catapult FPGA板卡。这些服务器被用于微软的必应搜索、Azure云服务以及其他应用。到目前为止,我们已经发展到了非常大的规模,FPGA已经在世界范围内被大规模部署。这也使得微软成为了世界上最大的FPGA客户之一。
(Catapult FPGA板卡,图片来自微软)
(微软的FPGA板卡,图片来自微软)
这些巨大的发展和变革,促使我思考它们对半导体和芯片架构的影响。于是,我们开始重点布局针对AI、机器学习、特别是深度学习的定制化硬件架构,这也就是脑波项目(Project Brainwave)产生的主要背景。
在脑波项目里,我们提出了一种深度神经网络处理器,也有人称之为神经处理单元,或者NPU(Neural Processing Unit)。对于像必应搜索这样的应用来说,他们需要很强的计算能力,因为只有不断学习和训练,才能向用户提供更优的搜索结果。因此,我们将大的深度神经网络利用FPGA进行加速,并在很短的时间内返回结果。目前,这种计算架构已经在全球范围内运行了一段时间。在2018年的微软开发者大会上,我们正式发布了脑波项目在Azure云服务上的预览版。我们也为一些用户提供带有FPGA的板卡,使他们可以使用自己公司的服务器,从Azure上获取AI模型并运行。
(Brainwave FPGA板卡,图片来自微软)
对于这种情形,我经常把它比喻成你在银行里排队,你排在第二个,但总共有100个人排队。出纳员将所有人的信息收集起来,并询问每个人想要办什么业务,然后取钱存钱,再把钱和收据发给每个人。这样每个人的业务都在同一时刻完成,而这就是所谓的批处理。
对于批处理应用来说,可以达到很好的吞吐量,但是往往会有很高的延时。这就是我们为什么在尝试推动实时AI的发展。
另外一个例子是,微软的另一项人工智能技术是所谓的HPU,它被用于HoloLens设备中。HoloLens是一款智能眼镜,它能提供混合现实和增强现实等功能,它里面的HPU也具备神经网络的处理功能。
(宇航员Scott Kelly在国际空间站上使用HoloLens,图片来自NASA)
很多情况下,增加系统的处理速度势必代表着更多的投入和成本的攀升,两者很难同时满足。但这就是脑波项目的主要优势所在,通过使用FPGA,我认为我们在这两个方面都处于非常有利的位置。在性能方面我们是最快的,在成本上我们大概率也是最便宜的。
不管怎样,我们的工作从某种程度上提高了计算的效率,这使得它可以用来帮助解决重大的科学问题,我对此有很强的成就感。
对于那些正在考虑从事硬件系统和计算机架构研究的人来说,最重要的就是找到那颗能让你充满激情并为之不懈奋斗的“北极星”,然后不顾一切的为之努力。一定要找到那种打了鸡血的感觉,不用担心太多诸如职业规划、工作选择等问题,要相信车到山前必有路。你在做的工作,应该能让你感受到它真正能带来变革,并帮助你在变革的道路上不断前行。
当前,人们已经开始意识到,在我说的这些“后·冯诺依曼时代”的异构加速器之外,还有远比这些更加深刻的东西等待我们探寻。我们已经接近了摩尔定律的终点,而基于冯诺依曼体系的计算架构也已经存在了相当长的时间。自从冯诺依曼在上世纪四十年代发明了这种计算架构以来,它已经取得了惊人的成功。
但是现在,除了这种计算结构外,又产生了各种硬件加速器,以及许多人们正在开发的新型架构,但是从整体上来看,这些新结构都处在一个比较混乱的状态。
我认为,在这个混乱的表象之下,还隐藏着更加深刻的真理,而这将会是人们在下个阶段的最重要发现,这也是我目前经常在思考的问题。
我慢慢发现,那些可能已经普遍存在的东西会是计算架构的下一个巨大飞跃。当然,我也可能完全错了,但这就是科学研究的乐趣所在。
来源:老石谈芯