雷锋网消息:今日,微软发布了 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)和谷歌的 Tensorflow 提供了支持,并计划兼容更多框架。我们还定义了一个基于图的中间表达,能转化常见框架上训练的模型,编译到我们的高性能基础设施上。雷锋网