微软 22 日发表 Project Brainwave,一个基于 FPGA 的低延迟深度学习云端平台。微软官方评测显示,当使用英特尔 Stratix 10 FPGA,Brainwave 不需要任何 batching 就能在大型 GRU(gated recurrent unit)达 39.5 Teraflops 的效能。
微软表示,该系统为即时 AI 设计──这意味着,它能以极低的延迟在接收资料后立刻处理要求。由于云端基础设施需要处理即时资料流,不管是搜寻要求、影片、感测器资料流还是用户互动,即时 AI 正在变得越来越重要。
Project Brainwave 的系统可分为三层面:
- 高效能分散式系统架构。
- 整合到 FPGA 硬件上的深度神经网络(DNN)引擎。
- 能 low-friction 部署已训练模型的编译器和 runtime。
第一点,Project Brainwave 利用微软数年建立起来的 FPGA 基础设施。透过把高效能 FPGA 连线到资料中心网络,微软可为 DNN 提供硬件微服务支援──把一个 DNN 加载到远端 FPGA,再由一个 loop 中没有软件的服务器呼叫。这套系统架构既降低延迟,因为 CPU 不需要处理传来的要求;也能达到非常高的吞吐率,FPGA 处理要求的速度能达到网络接受要求的速度。
第二点,Project Brainwave 使用一个非常强大的“软”DNN 处理单元(即 DPU),并整合到可购买的 FPGA 中。
有许多公司,包括大企业和初创公司,正在开发“硬化”的 DPU。虽然很多芯片有很高的峰值效能,它们却必须要在设计时就选择运算子和资料类别,这限制了弹性。Project Brainwave 采取另一条路,提供一个横跨多种资料类别的设计。理想的资料类别可以在合成时间(synthesis-time)选择。该设计整合 FPGA 上的 ASIC 数字信号处理模组与合成逻辑,提供更多、数量上更最佳化的功能单元。该方法在两个层面上利用了 FPGA 的弹性。首先,定义了高度自订、窄精度的资料类别,借此在不牺牲模型精度的情况下提升效能。第二,可把研究创新快速整合到硬件平台设计──通常是几个星期,这在快速发展的领域特别必要。做为结果,实现了不弱于这些硬编码 DPU 芯片的效能。
第三点,Project Brainwave 内建一个支援各种深度学习框架的软件堆。微软已支援 Microsoft Cognitive Toolkit(注:改名后的 CNTK)和 Google 的 Tensorflow,并计划相容更多框架。还定义一个基于图片的中间表达,能转化常见框架上训练的模型,编译到高效能基础设施。
- Microsoft unveils Project Brainwave for real-time AI
(本文由 雷锋网 授权转载;图片来源:微软)