微软推出基于FPGA的深度学习加速平台

可编程逻辑

1340人已加入

描述

微软团队推出了一个新的深度学习加速平台,其代号为脑波计划(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 芯片的性能,并在今天兑现了性能方面的承诺。

单线程 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),我们将在流行框架中训练的模型转换成中间表示,然后再将其编译成我们的高性能基础架构。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分