业界 | 微软推出深度学习加速平台「Project Brainwave」:FPGA驱动实时人工智能

选自微软博客

机器之心编译

参与:路雪、黄小天、蒋思源

近日在 Hot Chips 2017 上,微软团队推出了一个新的深度学习加速平台,其代号为脑波计划(Project Brainwave),机器之心将简要介绍该计划。脑波计划在深度学习模型云服务方面实现了性能与灵活性的巨大提升。微软专为实时人工智能设计了该系统,它可以超低延迟地处理接收到的请求。云基础架构也可以处理实时数据流,如搜索查询、视频、传感器流,或者与用户的交互,因此实时 AI 变的越发重要。

近来,FPGA 对深度学习的训练和应用变得越来越重要,因为 FPGA:

  • 性能:低批量大小上的优秀推理性能、在现代 DNN 上服务的超低延迟、>10X 且比 CPU 和 GPU 更低、在单一 DNN 服务中扩展到很多 FPGA。
  • 灵活性:FPGA 十分适合适应快速发展的 ML、CNN、LSTM、MLP、强化学习、特征提取、决策树等、推理优化的数值精度、利用稀疏性、更大更快模型的深度压缩。
  • 规模:微软在 FPGA 上拥有全球最大的云计算投资、AI 总体能力的多实例操作、脑波计划运行在微软的规模基础设施上。

所以我们发布了脑波计划(Project BrainWave),一个可扩展的、支持 FPGA 的 DNN 服务平台,它有三个特性:

  • 快速:小批量 DNN 模型有超低延迟、高吞吐量服务
  • 灵活:适应性数值精度与自定义运算符
  • 友好:CNTK/Caffe/TF/等的交钥匙(turnkey)部署

脑波计划

脑波计划系统的主要内容包括以下三个层面:

  • 一个高性能的分布式系统架构;
  • 一个集成在 FPGA 的硬件 DNN 引擎;
  • 一个用于已训练模型的低摩擦(low-friction)部署的编译器和运行时间。

首先,脑波计划利用了微软这些年一直部署的大量 FPGA 基础架构。通过把高性能 FPGA 直接连接到我们的数据中心网络,我们可以把 DNN 作为硬件微服务,其中 DNN 可以映射到一个远程 FPGA 池,并被循环中没有软件的服务器调用。这个系统架构不仅可以降低延迟(因为 CPU 并不需要处理传入的请求),还可以允许非常高的吞吐量,并且 FPGA 处理请求可以如网络的流式传输一样快。

第二,脑波计划使用了一个强大的在商业化可用的 FPGA 上合成的「软」DNN 处理单元(DPU)。大量的公司,包括大型公司和一大批初创公司,正在构造硬化的 DPU。尽管其中一些芯片具有高峰值性能,但它们必须在设计时选择运算符和数据类型,这限制了其灵活性。脑波计划采取了另一种方法,提供了一个可在一系列数据类型上缩放的设计。这个设计结合了 FPGA 上的 ASIC 数字信号处理模块和可合成的逻辑,以提供一个更大更优化数量的功能单元。这一方法以两种方式利用了 FPGA 的灵活性。首先,我们已经定义了高度自定义、窄精度(narrow-precision)的数据类型,无需损失模型精度即可提升性能。第二,我们可以把研究创新快速整合进硬件平台(通常是数周时间),这在快速移动的空间中至关重要。因此,我们取得了可媲美于甚至超过很多硬编码(hard-coded)DPU 芯片的性能,并在今天兑现了性能方面的承诺。

脑波软 DPU 架构

核心特征

  • 单线程 C 编程模型(没有 RTL)
  • 具有专门指令的 ISA:密集矩阵乘法、卷积、非线性激励值、向量操作、嵌入
  • 独有的可参数化的窄精度格式,包含在 float16 接口中
  • 可参数化的微架构,并且扩展到大型 FPGA(~1M ALMs)
  • 硬件微服务完全整合(附设网络)
  • 用于 CPU 主机和 FPGA 的 P2P 协议
  • 易于扩展带有自定义运算符的 ISA

矩阵向量单元

特征

  • 优化以适用于批量为 1 的矩阵向量乘法
  • 矩阵逐行分布在 BRAM 的 1K-10K 个内存块上,最高 20 TB/s
  • 可扩展以使用芯片上所有可用的 BRAM、DSP 和软逻辑(soft logic)
  • 将 float 16 权重和激活值原位转换成内部格式
  • 将密集的点积单元高效映射到软逻辑和 DSP

第三,脑波计划纳入了一款支持多个流行深度学习框架的软件栈(software stack)。我们已经支持微软 Cognitive Toolkit 和谷歌的 Tensorflow,并且计划支持其他框架。我们已经定义了一个基于图的中间表示(intermediate representation),我们将在流行框架中训练的模型转换成中间表示,然后再将其编译成我们的高性能基础架构。

  • 编译器 & 运行时:框架中立的联合编译器和运行时,用于将预训练的 DNN 模型编译至软 DPU
  • 架构:自适应 ISA,用于窄精度 DNN 接口;灵活、可扩展,可支持快速变化的人工智能算法
  • 微架构:BrainWave Soft DPU 微架构;高度优化,适用于窄精度和小批量
  • 扩展一致性:在 FPGA 芯片内存中一致的模型参数;可在多个 FPGA 中扩展以支持大模型
  • 英特尔 FPGA 上的 HW 微服务:英特尔 FPGA 大规模部署,带有硬件微服务 [MICRO'16]

脑波编译器和运行时

我们构建该系统,以展示其在多个复杂模型中的高性能,同时无须执行批处理(batch-free execution)。公司和研究人员构建 DNN 加速器通常使用卷积神经网络(CNN)展示性能 demo。CNN 是计算密集型,因此它取得高性能相对比较简单。那些结果通常无法代表其他域的更复杂模型上的性能,如自然语言处理中的 LSTM 或 GRU。DNN 加速器经常用来提升性能的另一项技术是用高度批处理运行深度神经网络。尽管该技术对基于吞吐量的架构和训练等离线场景有效,但它对实时人工智能的效果没有那么好。使用大批量,一个批次中的第一个查询必须等待该批次中的其他查询完成。我们的系统适用于实时人工智能,无须使用批处理来降低吞吐量,即可处理复杂、内存密集型的模型,如 LSTM。

即使在早期 Stratix 10 silicon 中,移植的 Brainwave 系统可运行大型 GRU 模型,它们可能比不使用批处理的 ResNet-50 还要大 5 倍,同时该系统也实现了创纪录的性能。该演示使用的是微软定制的 8 位浮点格式(「ms-fp8」),它在很多模型中都不会遭受到平均准确度损失。我们展示了 Stratix 10 在大型 GRU 模型中保持了 39.5 Teraflops,并且每一个请求的运行时间都在毫秒内。在性能方面,脑波架构每一个周期保持了超过 130000 个计算操作,并且由每 10 个周期发布的宏指令驱动。脑波在 Stratix 10 上运行,实现了实时 AI 的强大性能,特别是在非常具有挑战性的模型上。我们将在接下来的几个季度调整系统,希望它能够实现显著的性能提升。

传统的加速方法:Local Offload and Streaming

通过批处理提升硬件效用

FPGA 上的窄精度接口

结语

我们正将这种强大的实时 AI 系统介绍给大家,特别是 Azure 平台的用户。这样,我们的用户才能从脑波计划中直接获益,并间接补充了访问我们的服务的路径,如 Bing。在不久的未来,我们将具体说明 Azure 用户可以怎样使用该平台运行他们复杂的深度学习模型,并达到创纪录的性能。因为脑波计划系统是大规模集成系统并对我们用户是可用的,所以 Microsoft Azure 在实时人工智能上有行业领先的性能。

原文地址:https://www.microsoft.com/en-us/research/blog/microsoft-unveils-project-brainwave/

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-08-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯技术工程官方号的专栏

今天的【 科技文 】有点污

作者:张大威,TEG 安全平台部。2013年加入安全平台部,从事多媒体信息安全、智能安全领域,目前在色情语音识别和藏维语识别领域,利用深度学习技术构建恶意音视频...

2237
来自专栏华章科技

2017年最流行的15个数据科学Python库

Python 近几年在数据科学行业获得了人们的极大青睐,各种资源也层出不穷。数据科学解决方案公司 ActiveWizards 近日根据他们自己的应用开发经验,总...

1063
来自专栏程序员互动联盟

【专业技术】引擎算法探究

在一些大型购物网站,我们常会看到一个功能叫“猜你喜欢”(或其它类似的名字),里面列出一些跟你买过商品相关的其它商品。网站的用户越多,或你在网站上购买的东西越多,...

3469
来自专栏算法+

这一路走来,冷暖自知 (附算法demos)

最近半年多,除了“一键修图”算法之外我还做了其他什么算法? 1.实时单图HDR算法(颜色矫正,智能曝光) 2.多图曝光融合HDR算法(最高支持八百万像素左右) ...

4258
来自专栏月色的自留地

量子计算及量子计算的模拟

5365
来自专栏PPV课数据科学社区

译文:Python深度学习框架评价

原文链接https://indico.io/blog/python-deep-learning-frameworks-reviewed/ 麦迪逊月 - 201...

3888
来自专栏量子位

手机输入法不好用?谷歌要用AI让你打字更快

陈桦 编译整理 量子位 报道 | 公众号 QbitAI 现在,大部分人的日常生活,都离不开手机上的虚拟键盘,而这其中的大部分人都会觉得虚拟键盘不好用。数据显示,...

3747
来自专栏机器学习之旅

应用:用户生命周期

用户生命周期是指用户从加入平台开始,熟悉平台,参与平台,最终流失的整个过程。用户的生命周期相对于自身而言,是一种参与度的变化,参与度也可以称之为活跃度。

1534
来自专栏程序员叨叨叨

1.2 GPU VS CPU

从上节阐述了GPU的发展历史,那么为什么在CPU之外要发展GPU?GPU 的 vertex programmability 和 fragment program...

1365
来自专栏机器之心

仅需1/5成本:TPU是如何超越GPU,成为深度学习首选处理器的

张量处理单元(TPU)是一种定制化的 ASIC 芯片,它由谷歌从头设计,并专门用于机器学习工作负载。TPU 为谷歌的主要产品提供了计算支持,包括翻译、照片、搜索...

500

扫码关注云+社区

领取腾讯云代金券