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