用于深度学习应用的存储器带宽管理制造技术

技术编号:17352132 阅读:40 留言:0更新日期:2018-02-25 22:48
在数据中心中,通过使用现场可编程门阵列(FPGA)或其他并行处理器,神经网络评估可以被包括以用于涉及图像或语音识别的服务。将来自外部存储器的加权的数据集提供给FPGA(或其他并行处理器)的存储器带宽限制可以通过以至少两个特征向量的批次对来自在FPGA(或其他并行处理器)处执行服务的多个核心的输入数据排队来管理。至少两个特征向量可以是来自相同数据流或来自不同数据流的至少两个观测向量。FPGA(或其他并行处理器)继而可以针对加权的数据集的每次加载对一批数据采取动作。

Memory bandwidth management for deep learning applications

In data center, by using field programmable gate array (FPGA) or other parallel processors, neural network evaluation can be included for service involving image or speech recognition. Weighted from external memory data sets available to FPGA (or other parallel processor) the memory bandwidth limit by at least two batches of feature vectors from the FPGA (or other parallel processor) input data of a plurality of core executive service queuing management. At least two feature vectors can be at least two observation vectors from the same data stream or from different data streams. FPGA (or other parallel processors) can then act on a batch of data for each load of a weighted data set.

【技术实现步骤摘要】
【国外来华专利技术】用于深度学习应用的存储器带宽管理
技术介绍
人工智能(AI)应用涉及被制作为展现诸如学习、交流、感知、运动和操纵、以及甚至创作的智能行为的机器或软件。这些机器或软件可以通过诸如搜索和优化、逻辑、概率方法、统计学习以及神经网络的各种方法来实现这种智能行为。沿着这些思路,各种深度学习架构,例如包括深度多层感知机(MLP)的深度学习网络(深度NN)(常常被称为DNN)、卷积深度神经网络、深度信念网络、递归神经网络(RNN)、以及长短期记忆(LSTM)RNN,对于其应用到如计算机视觉、图像处理/识别、语音处理/识别、自然语言处理、音频识别、以及生物信息学等领域,已经获得了关注。深度NN通常包括输入层、任意数量的隐藏层以及输出层。每个层包含特定量的单元,其可以遵循神经模型,并且每个单元对应于特征向量中的元素(例如输入数据集的观测向量)。每个单元通常使用加权的函数(例如,逻辑函数)来将其来自下层的总输入映射到被发送到上层的标量状态。(通常经由无监督机器学习)训练神经网络的层并且该层的单元被分配以权重。取决于神经网络层的深度,在系统中使用的权重的总数目可以是巨大的。许多计算机视觉、图像处理/识别、语音处理/识别、自然语言处理、音频识别、以及生物信息学在对大量使用者和企业客户可用的服务进行支持的数据中心处被运行并管理。数据中心被设计为以模块化且灵活的方式运行并操作计算机系统(服务器、存储设备、以及其他计算机)、通信设备以及功率系统。数据中心工作负载要求高计算能力、灵活性、功率高效和低成本。能够加速大规模软件服务的至少一些部分可以实现期望的吞吐量并且使得这些数据中心能够满足它们的资源使用者的需求。然而,深度学习应用的逐渐增加的复杂度和可扩展性可能会加剧关于存储器带宽的问题。
技术实现思路
描述了用于加速神经网络评估的存储器带宽管理技术和系统。在数据中心中,一种神经网络评估加速器可以包括支持并行处理的处理器(“并行处理器”),例如现场可编程门阵列(FPGA)。此处理器与数据中心处的通用计算机处理单元(CPU)分离,在(来自CPU的核心的)来自相同或不同数据流的至少两个观测向量之后,其使用从外部存储器加载的权重数据集来执行一过程。通过在应用加权的数据集之前对至少两个流或者至少两个观测向量的输入数据排队,用于神经网络权重加载的存储器带宽要求可以被减少K倍,其中K是一批次中的输入数据集的数目。另外,通过使用支持并行处理的处理器,N个同时的流可以采用并行锁定步骤被处理以确保针对N个并行流的存储器带宽要求保持与针对单个流的存储器带宽要求相同。对于权重数据集的每次加载,这实现了N*K个输入数据集的吞吐量。受益于包括数据中心处所托管的深度学习架构的服务可以包括FPGA上所执行的深度神经网络(深度NN)评估,其中该方法包括从片外存储加载第一权重数据集,在FPGA的输入处对一批至少两个特征向量排队,对该批次执行深度NN评估的第一层过程以生成中间结果,加载片外存储的第二权重数据集,并且对中间结果执行深度NN评估的第二层过程。在一些情况下,至少两个特征向量可以包括来自至少两个数据流,其中至少两个数据流来自对应的核心。在一些情况下,至少两个特征向量可以来自相同的数据流。在一些情况下,至少两个特征向量可以包括来自至少两个数据流中的每个数据流的至少两个观测向量。提供本
技术实现思路
从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本
技术实现思路
并非旨在标识所要求保护的主题的关键特征或必要特征,也并非旨在用于限制所要求保护的主题的范围。附图说明图1图示了提供用于深度学习应用的存储器带宽管理的示例操作环境。图2图示了用于管理并加速由数据中心的资源所托管的深度学习应用的至少部件的示例架构。图3A到图3D图示了神经网络评估中的带宽管理的比较。图4图示了使用FPGA来加速DNN过程的示例实施方式。图5图示了其上可以执行所描述的技术的示例计算系统。具体实施方式描述了可以加速神经网络评估的存储器带宽管理技术和系统。归因于许多神经网络评估的计算模式,通用处理器和基于纯软件的技术方案往往于低效,并且在一些情况下,不能够满足它们形成一部分的应用的性能要求。另外,这些评估往往受执行计算的数据中心处可用的资源限制。通过在数据中心中包括FPGA并且以本文描述的方式利用这些FPGA,能够在当前数据中心的处理器至存储器带宽约束以及机器至机器网络化带宽约束内执行复杂深度神经网络评估。在一些情况下,特别是在功耗效率不是优先事项或者需要较少的并行计算流的情况下,图形处理单元(GPU)可以用于执行神经网络评估。图1图示了提供用于深度学习应用的存储器带宽管理的示例操作环境。参考图1,数据中心100可以包括许多资源101,物理的和虚拟的,其上可以托管应用和服务。一个或多个路由服务器110可以促进将请求引导到合适的资源。一个或多个路由服务器110可以物理上存在于特定数据中心100中。在数据中心100处托管的一个或多个服务可以服务于许多客户端,例如客户端0121、客户端1122、客户端2123、客户端3124、客户端4125、客户端5126以及客户端6127,客户端通过互联网130与(一个或多个)服务进行通信(并且访问一个或多个数据中心资源101)。所描述的技术的各种实施方式适合于用作如下服务的过程的一部分,该服务涉及计算机视觉、图像处理/识别、语音处理/识别、自然语言处理、音频识别、生物信息学、天气预测、股票预报、控制系统、以及神经网络可以应用于其中的任何其他应用。作为示例情形,操作环境支持针对音频或视频呼叫的翻译服务。翻译服务可以涉及深度学习应用用以识别来自会话的单词。客户端(例如,121、122、123、…)可以使得用户能够选择参与到翻译服务中,从而用户会话的音频可以被发送到翻译服务。例如,来自在运行客户端0121的设备处的会话的音频能够作为输入0被发送到翻译服务,来自运行客户端1122的设备处的会话的音频可以作为输入1被发送到翻译服务,来自运行客户端2123的设备处的会话的音频可以作为输入2被发送到翻译服务,并且来自运行客户端3124的设备处的会话的音频可以作为输入3被发送到翻译服务。这些独立会话可以在数据中心100处被处理并且可以使输出发送到相同客户端或不同客户端(其可以参与或者可以不参与到将音频发送到服务中)。例如,来自输入0的经翻译的会话可以作为输出0被发送到客户端4125,来自输入1的经翻译的会话可以作为输出1被发送到客户端5126,来自输入2的经翻译的会话可以作为输出2被发送到客户端6127,并且来自输入3的经翻译的会话可以作为输出3被发送回到客户端3125。对与翻译服务相关联的过程中的一个或多个过程进行加速可以有助于这种服务的实时功能性。然而,任何加速或者甚至仅仅实际计算至少部分地受系统的物理限制(即数据中心100处的数据中心资源101)约束。图2图示了用于管理并加速由数据中心的资源托管的深度学习应用的至少部件的示例架构。在容纳许多服务器、交换机以及用于例如关于图1的数据中心100所描述的各种服务和应用的其他设备的数据中心200中,深度学习应用以及尤其是其中权重数据集以兆字节(数十兆字节、数百兆字节或者甚至更多)为量级的神经网络评估可以被加速,并且其存储器带宽要求通本文档来自技高网
...
用于深度学习应用的存储器带宽管理

【技术保护点】
一种执行神经网络过程的方法,所述方法包括:在现场可编程门阵列(FPGA)处接收一批输入数据以用于神经网络评估的加速处理,其中所述一批输入数据包括至少两个特征向量;利用来自外部存储器的用于所述神经网络评估的第一层权重集合来加载所述FPGA;以及在所述FPGA内将所述第一层权重集合应用到所述一批输入数据以生成针对所述神经网络评估的中间结果。

【技术特征摘要】
【国外来华专利技术】2015.06.25 US 14/750,2771.一种执行神经网络过程的方法,所述方法包括:在现场可编程门阵列(FPGA)处接收一批输入数据以用于神经网络评估的加速处理,其中所述一批输入数据包括至少两个特征向量;利用来自外部存储器的用于所述神经网络评估的第一层权重集合来加载所述FPGA;以及在所述FPGA内将所述第一层权重集合应用到所述一批输入数据以生成针对所述神经网络评估的中间结果。2.根据权利要求1所述的方法,其中所述至少两个特征向量包括来自至少两个数据流中的每个数据流的一个观测向量。3.根据权利要求2所述的方法,其中所述神经网络评估为递归神经网络评估。4.根据权利要求1所述的方法,其中所述至少两个特征向量包括来自至少两个数据流中的每个数据流的至少两个观测向量。5.根据权利要求1所述的方法,其中所述至少两个特征向量包括来自单个数据流的至少两个观测向量。6.根据权利要求1所述的方法,还包括:在将所述第一层权重集合应用到所述批次之后,利用来自所述外部存储器的用于所述神经网络评估的第二层权重集合加载所述FPGA;以及在所述FPGA内将所述第二层权重集合应用到所述中间结果。7.一个或多个计算机可读存储介质,具有存储在其上的指令,所述指令当由处理系统执行时引导所述处理系统管理存储器带宽以用于深度学习应用,所述管理通过:引导来自至少一个核心的一批至少两个观测向量在现场可编程门阵列(FPGA)处排队;在所述FPGA上加载至少一个加权的数据集,所述至少一个加权的数据集中的每个加权的数据集按照被引导在所述FPGA处排队的所述至少两个观测向量的批次被一次加载;以及将来自所述FPGA的评估输出引导到所述至少一个核心以用于进一步处理。8.根据权利要求7所述的介质,其中引导来自至少一个核...

【专利技术属性】
技术研发人员:R·A·小彼特纳F·T·B·塞德
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1