微软发布了 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 提供了支持,并计划兼容更多框架。咱们还定义了一个基于图的中间表达,能转化常见框架上训练的模型,编译到咱们的高性能基础设施上。oop
本文分享自微信公众号 - OpenFPGA(OpenFPGA)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。性能