CN113112006B 用于深度学习应用的存储器带宽管理(微软技术许可有限责任公司)_第1页
CN113112006B 用于深度学习应用的存储器带宽管理(微软技术许可有限责任公司)_第2页
CN113112006B 用于深度学习应用的存储器带宽管理(微软技术许可有限责任公司)_第3页
CN113112006B 用于深度学习应用的存储器带宽管理(微软技术许可有限责任公司)_第4页
CN113112006B 用于深度学习应用的存储器带宽管理(微软技术许可有限责任公司)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(12)发明专利地址美国华盛顿州专利代理师张立达GO6N3/044(2023.GO6N3/063(2023.N=24lo并行处理器)的存储器带宽限制可以通过以至少两个特征向量的批次对来自在FPGA(或其他并行处理器)处执行服务的多个核心的输入数据排队21.一种执行神经网络过程的方法,包括:利用来自外部存储器的用于神经网络过程的第一权重集合来加载并行处理器;将所述第一权重集合顺序地应用到至少两个输入数据集,使得在所述至少两个输入数据集中的每一个输入数据集被所述并行处理器单独地并行处理时,所述至少两个输入数据集中的一个输入数据集是在所述至少两个输入数据集中的另一个输入数据集之后处理的;对所述至少两个输入数据集的中间结果进行排队;利用来自所述外部存储器的用于所述神经网络过程的第二权重集合来加载所述并行处理器;将所述第二权重集合顺序地应用到所述至少两个输入数据集的所述中间结果;以及重复所述排队、加载和应用,直到针对所述至少两个输入数据集完成了所述神经网络过程。2.根据权利要求1所述的方法,其中,所述输入数据包括用于针对语音识别或翻译服务的处理的数据。3.根据权利要求1所述的方法,其中,所述输入数据包括用于针对计算机视觉应用的处理的数据。4.根据权利要求1所述的方法,其中,所述输入数据包括用于图像处理或识别服务的数5.根据权利要求1所述的方法,其中,所述输入数据包括用于自然语言处理的数据。6.根据权利要求1所述的方法,其中,所述输入数据包括用于音频识别的数据。7.根据权利要求1所述的方法,其中,所述输入数据包括用于生物信息学的数据。8.根据权利要求1所述的方法,其中,所述输入数据包括用于天气预测的数据。具有多个可用的并行处理流的并行处理器,以及用于每个流的具有至少为2的队列深度的缓冲器,使得在特定权重数据集上进行处理之前,来自至少两个并行输入数据集的并行输入数据的一个流被存储在所述缓冲器中,其中,所述至少两个并行输入数据集在所述缓冲器处排队,并且所述至少两个并行输入数据集中的一个是在另一个之后处理的;以及存储单元,存储用于神经网络评估的包括所述特定权重数据集的权重数据集。10.根据权利要求9所述的计算系统,其中,所述并行处理器是现场可编程门阵列FPG11.根据权利要求9所述的计算系统,还包括:操作性地耦合到所述并行处理器的多个处理核心,所述多个处理核心执行音频、语音或图像处理。12.根据权利要求9所述的计算系统,其中,所述并行处理器操作性地耦合为接收在所述多个处理核心中的至少一个处理核心上执行的过程的至少一个观测向量,并且向所述多个处理核心中的相应的至少一个处理核心传送评估输出。13.一个或多个存储介质,具有存储在其上的指令,所述指令当被执行时引导计算系利用来自外部存储器的用于神经网络过程的第一权重集合来加载并行处理器,其中,所述第一权重集合被顺序地应用到至少两个输入数据集,使得在所述至少两个输入数据集中的每一个输入数据集被所述并行处理器单独地并行处理时,所述至少两个输入数据集中3的一个输入数据集是在所述至少两个输入数据集中的另一个输入数据集之后处理的,其中,在应用了所述第一权重集合之后,所述至少两个输入数据集的中间结果被排队;以及利用来自所述外部存储器的用于所述神经网络过程的第二权重集合来加载所述并行处理器,其中,所述第二权重集合被顺序地应用到所述至少两个输入数据集的所述中间结14.根据权利要求13所述的介质,其中,所述输入数据包括用于针对语音识别或翻译服务的处理的数据。15.根据权利要求13所述的介质,其中,所述输入数据包括用于针对计算机视觉应用的处理的数据。16.根据权利要求13所述的介质,其中,所述输入数据包括用于图像处理或识别服务的数据。17.根据权利要求13所述的介质,其中,所述输入数据包括用于自然语言处理的数据。18.根据权利要求13所述的介质,其中,所述输入数据包括用于音频识别的数据。19.根据权利要求13所述的介质,其中,所述输入数据包括用于生物信息学的数据。20.根据权利要求13所述的介质,其中,所述输入数据包括用于天气预测的数据。4用于深度学习应用的存储器带宽管理[0001]本申请是申请日为2016年6月23日、申请号为201680034405.4的发明专利申请“用于深度学习应用的存储器带宽管理”的分案申请。背景技术[0002]人工智能(AI)应用涉及被制作为展现诸如学习、交流、感知、运动和操纵、以及甚至创作的智能行为的机器或软件。这些机器或软件可以通过诸如搜索和优化、逻辑、概率方法、统计学习以及神经网络的各种方法来实现这种智能行为。沿着这些思路,各种深度学习架构,例如包括深度多层感知机(MLP)的深度学习网络(深度NN)(常常被称为DNN)、卷积深度神经网络、深度信念网络、递归神经网络(RNN)、以及长短期记忆(LSTM)RNN,对于其应用[0003]深度NN通常包括输入层、任意数量的隐藏层以及输出层。每个层包含特定量的单元,其可以遵循神经模型,并且每个单元对应于特征向量中的元素(例如输入数据集的观测向量)。每个单元通常使用加权的函数(例如,逻辑函数)来将其来自下层的总输入映射到被发送到上层的标量状态。(通常经由无监督机器学习)训练神经网络的层并且该层的单元被分配以权重。取决于神经网络层的深度,在系统中使用的权重的总数目可以是巨大的。生物信息学在对大量使用者和企业客户可用的服务进行支持的数据中心处被运行并管理。数据中心被设计为以模块化且灵活的方式运行并操作计算机系统(服务器、存储设备、以及其他计算机)、通信设备以及功率系统。数据中心工作负载要求高计效和低成本。能够加速大规模软件服务的至少一些部分可以实现期望的吞吐量并且使得这些数据中心能够满足它们的资源使用者的需求。然而,深度学习应用的逐渐增加的复杂度和可扩展性可能会加剧关于存储器带宽的问题。发明内容[0005]描述了用于加速神经网络评估的存储器带宽管理技术和系统。[0006]在数据中心中,一种神经网络评估加速器可以包括支持并行处理的处理器(“并行处理器”),例如现场可编程门阵列(FPGA)。此处理器与数据中心处的通用计算机处理单元(CPU)分离,在(来自CPU的核心的)来自相同或不同数据流的至少两个观测向量之后,其使用从外部存储器加载的权重数据集来执行一过程。通过在应用加权的数据集之前对至少两个流或者至少两个观测向量的输入数据排队,用于神经网络权重加载的存储器带宽要求可以被减少K倍,其中K是一批次中的输入数据集的数目。另外,通过使用支持并器,N个同时的流可以采用并行锁定步骤被处理以确保针对N个并行流的存储器带宽要求保持与针对单个流的存储器带宽要求相同。对于权重数据集的每次加载,这实现了N*K个输入数据集的吞吐量。[0007]受益于包括数据中心处所托管的深度学习架构的服务可以包括FPGA上所执行的5深度神经网络(深度NN)评估,其中该方法包括从片外存储加载第一权重数据集,在FPGA的输入处对一批至少两个特征向量排队,对该批次执行深度NN评估的第一层过程以生成中间结果,加载片外存储的第二权重数据集,并且对中间结果执行深度一些情况下,至少两个特征向量可以包括来自至少两个数据流,其中至少两个数据流来自对应的核心。在一些情况下,至少两个特征向量可以来自相同的数据流。在一些情况下,至少两个特征向量可以包括来自至少两个数据流中的每个数据流的至少两个观测向量。[0008]提供本发明内容从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也并非旨在用于限制所要求保护的主题的范围。附图说明[0009]图1图示了提供用于深度学习应用的存储器带宽管理的示例操作环境。[0010]图2图示了用于管理并加速由数据中心的资源所托管的深度学习应用的至少部件的示例架构。[0011]图3A到图3D图示了神经网络评估中的带宽管理的比较。[0012]图4图示了使用FPGA来加速DNN过程的示例实施方式。[0013]图5图示了其上可以执行所描述的技术的示例计算系统。具体实施方式[0014]描述了可以加速神经网络评估的存储器带宽管理技术和系统。[0015]归因于许多神经网络评估的计算模式,通用处理器和基于纯软件的技术方案往往于低效,并且在一些情况下,不能够满足它们形成一部分的应用的性能要求。另外,这些评估往往受执行计算的数据中心处可用的资源限制。通过在数据中心中包括FPGA并且以本文描述的方式利用这些FPGA,能够在当前数据中心的处理器至存储器带宽约束以及机器至机器网络化带宽约束内执行复杂深度神经网络评估。在一些情况下,特别是在功耗效率不是优先事项或者需要较少的并行计算流的情况下,图形处理单元(GPU)可以用于执行神经网络评估。[0016]图1图示了提供用于深度学习应用的存储器带宽管理的示例操作环境。参考图1,数据中心100可以包括许多资源101,物理的和虚拟的,其上可以托管应用和服务。一个或多个路由服务器110可以促进将请求引导到合适的资源。一个或多个路由服务器110可以物理上存在于特定数据中心100中。在数据中心100处托管的一个或多个服务可以服务于许多客户端,例如客户端0121、客户端1122、客户端2123、客户端3124、客户端4125、客户端5126以及客户端6127,客户端通过互联网130与(一个或多个)服务进行通信(并且访问一个或多个数据中心资源101)。[0017]所描述的技术的各种实施方式适合于用作如下服务的过程的一部分,该服务涉及[0018]作为示例情形,操作环境支持针对音频或视频呼叫的翻译服务。翻译服务可以涉及深度学习应用用以识别来自会话的单词。客户端(例如,121、122、126能够选择参与到翻译服务中,从而用户会话的音频可以被发送到翻译服务。例如,来自在运行客户端0121的设备处的会话的音频能够作为输入0被发送到翻译服务,来自运行客户端1122的设备处的会话的音频可以作为输入1被发送到翻译服务,来自运行客户端2123的设备处的会话的音频可以作为输入2被发送到翻译服务,并且来自运行客户端3124的设备处的会话的音频可以作为输入3被发送到翻译服务。[0019]这些独立会话可以在数据中心100处被处理并且可以使输出发送到相同客户端或不同客户端(其可以参与或者可以不参与到将音频发送到服务中)。例如,来自输入0的经翻译的会话可以作为输出0被发送到客户端4125,来自输入1的经翻译的会话可以作为输出1被发送到客户端5126,来自输入2的经翻译的会话可以作为输出2被发送到客户端6127,并且来自输入3的经翻译的会话可以作为输出3被发送回到客户端3125.对与翻译服务相关联的过程中的一个或多个过程进行加速可以有助于这种服务的实时功能性。然而,任何加速或者甚至仅仅实际计算至少部分地受系统的物理限制(即数据中心100处的数据中心资源101)约束。[0020]图2图示了用于管理并加速由数据中心的资源托管的深度学习应用的至少部件的示例架构。在容纳许多服务器、交换机以及用于例如关于图1的数据中心100所描述的各种服务和应用的其他设备的数据中心200中,深度学习应用以及尤其是其中权重数据集以兆字节(数十兆字节、数百兆字节或者甚至更多)为量级的神经网络评估可以被加速,并且其存储器带宽要求通过对输入数据的批处理来降低。[0021]在数据中心200处的服务器可以包括具有两个或更多核心的处理器。每个核心往往处理单个线程或者单个数据流。根据某些实施方式,并行处理器210用于加速神经网络评估。作为示例,并行处理器210可以为GPU或FPGA.FPGA可以示出超越GPU的使用的改进的功率节省。然而,应当理解,某些实施方式可以使用GPU或其他并行处理器来执行本文中描述的方法中的一些或全部。[0022]并行处理器210可以包括:输入缓冲211,其具有(例如K=2或更多的)指定队列深度;以及输出缓冲212,其用于在数据被进一步处理和/或输出到另一部件之前保持中间结果输出或其他数据。在一些情况下,并行处理器可以包括用于处理来自一个或多个输入缓冲211的数据的逻辑220。取决于并行处理器210的类型,逻辑220可以是在操作之间和/或期间可编程和/或可重配置的。[0023]“观测向量”是指初始数据集(或者特征向量),其被输入到神经网络并且用于启动或触发识别或分类处理。这可以包括表示颜色、价格、声音幅度或可能已经在感兴趣对象中观测到的任何其他可量化值的数据。输入到并行处理器210的观测向量可以通过CPU的核心生成(在下面的示例中更详细地讨论)、通过另一计算单元生成,该计算单元诸如为FPGA、CPU或正执行神经网络评估的并行处理器210上的其他逻辑。者跨网络的多个评估(在RNN的情况下)通过网络跟踪数据的进展。[0025]中间结果值可以与观测向量的特征相关,但是通常它们将原始观测数据的某种抽象形式表示为关于它被给定的输入的网络算法“原因”。逻辑上,中间结果值表示网络基于竞争概念之间的超维判决线将数据进行分类的尝试。数学上,中间结果值表示观测向量、先前中间结果值、或两者的组合看起来像是一个或多个神经网络节点表示的竞争概念之间的7分界线的接近度。[0026]如图2中图示的,单个并行处理器210可以从多个核心接收输入数据,多个核心例如为核心0221、核心1222、核心2223以及核心3224,其可以被提供在容纳在一个或多个服务器中的一个或多个处理单元中。例如,一个服务器可以包含如今常见的具有12-24个核心的处理单元。在一些应用中,来自这些核心的输入数据可以被加载到输入缓冲211的对应缓冲中。在其他应用中,来自这些核心中的一个核心的输入数据可以被加载到多于一个输入缓冲中。[0027]在另一实施方式中,代替(由输入缓冲211提供的)许多单独的队列,N个核心中的每个核心一个队列,并行处理器可以具有单个队列,其中不同的核心在它们变为可用时将它们的数据集添加到该单个队列。并行处理器可以(在深度NN的每个完整评估之后)定期地轮询该队列并且从该队列读取数据集的新的批次以进行并行处理。数据集的新的批次将通过深度NN并行处理,并且之后并行处理器上或者一个CPU核心上的解码器会将它们发送回到合适的核心。每个数据集将由发送它的核心标记以促进该解复用操作。这种类型的实施方式适合于如下情况,其中诸如FPGA的并行处理器可以处理诸如添加解码处理的计算负[0028]如以上所提到的,观测向量可以由核心生成并且作为输入数据被直接提供给并行处理器210;然而,在一些情况下,观测向量可以不由核心输出。在那些情况中的一些中,并行处理器210可以生成观测向量(使用单独的逻辑来这么做)或者其他计算单元可以根据从核心或在使用其他计算单元完全实施的系统中输出的数据来生成观测向量。因此,当在本文中描述核心和数据流时,对其他计算单元的使用可以被视为可以适合用作针对特定识别过程(或者受益于深度学习的其他应用)的处理单元的其他实施方式。[0029]当并行处理器执行针对神经网络评估的加权的函数时,权重数据集通常太大以至于不能够利用处理器被存储在片上。代替地,权重数据集被存储在片外存储230中,并且在每次特定加权的函数被执行时以用于片上存储足够小的划分被加载到并行处理器210上。为了获得最大效率,权重必须以处理器可以消耗它们的速度被加载,这要求显著数量的存以及其他可移除存储设备。应当理解,存储230不包括传播信号。[0030]根据本文中描述的各种技术,存储器带宽通过在并行处理器210处以批次来处理并行数据流(例如,来自核心:核心0221、核心1222、核心2223以及核心3224)来管理,因此,针对每层从片外存储230输入到并行处理器210的权重数据集处理至少两个特征向量。尽管所描述的技术可以对(来自相同或不同数据流的)两个特征向量有用,但是当至少四个特征向量被并行处理时,可以看到对带宽和/或功率效率的明显效果。例如,使并行处理的项的数目加倍差不多会使存储器带宽减半。[0031]在一些情况下,深度NN评估的加速可以通过管理器代理240来管理。管理器代理240可以采用可由任何适当的计算系统(包括物理服务器和虚拟服务器以及其任何组合)执行的软件来实施。管理器代理240可以在一些情形中被安装在虚拟机上并且在虚拟机的上下文中运行或者可以以非虚拟化的实施方式被直接安装在计算系统上并且在计算系统上被执行。在一些情况下,管理器代理240可以整体上或部分地采用硬件来实施。8[0032]管理器代理240当使用时可以协调在数据中心处的各个部件之间(例如,在存储用于深度NN评估的权重的片外存储230与并行处理器210之间)传送数据的定时。因此,在某些实施例中,管理器代理240和/或针对数据中心200的总线/数据路由配置使得数据集(例如,来自核心:核心0221、核心1222、核心2223、核心3224)能够被传送到单个并行处理器210从而以批次进行处理。[0033]图3A到图3D图示了神经网络评估中的带宽管理的比较。在图3A中图示的情形中,深度NN评估涉及软件或硬件评估并且不包括如本文中描述的加速或存储器管理。代替地,存储在外部存储器300中的权重数据集在对应的深度NN评估(例如,分别为DNN评估(0)303和DNN评估(1)304)期间被单独地应用到每个数据集(例如,来自核心:核心0301和核心1302)。具体地,来自外部存储器300的第一层权重集合310和来自核心0301的第一流(流0)的第一特征向量(向量0)311被获取/接收(312)以进行DNN评估(0)303;第一层过程被执行(313),生成中间结果314。[0034]来自外部存储器300的第二层权重集合315继而被获取/接收316以便对中间结果314执行第二层过程(317)。从外部存储器300获取/接收权重的该评估过程针对每层持续进行,直到针对特定输入向量完成了整个过程为止。该过程可以针对每个输入特征向量(例如,向量0的向量01)重复进行。如果存在运行深度NN评估的多个核心,则可以并行执行多个深度NN评估,但是没有如本文中描述的存储器管理,每个评估需要从外部存储器300获取/接收权重数据集作为独立请求以及使用附加的处理器/核心。[0035]例如,来自外部存储器300的第一层权重集合310和来自核心1302的第二流(流1)的第二特征向量(向量1)318被获取/接收(319)以进行DNN评估(0)304;并且第一层过程被执行(313)以生成针对第二流的中间结果320。来自外部存储器300的第二层权重集合315之后被获取/接收316以便对中间结果320执行第二层过程(317)。如关于DNN评估(0)303所述的,DNN评估(1)304针对每层持续进行,直到针对特定输入特征向量完成了整个过程为止,并且针对每个输入特征向量(例如,流1的向量11)进行重复。如可以看到的,这不是用于执行深度NN评估的有效机制并且需要相当大的存储器带宽来执行,因为每个评估需要获取加权的数据集获取并且需要它自己的处理器/(一个或多个)核心来执行评估。[0036]在图3B中图示的情形中,存储器管理的、加速的深度NN过程使用FPGA330对来自相同数据流的两个特征向量执行深度NN评估。这里,两个特征向量,即观测向量(向量0和向量01)331可以作为一个批次从核心0301被加载到FPGA330上并且被评估。第一层权重集合310可以被接收和/或获取以用于加载(332)在FPGA330上,并且在FPGA330处对向量0和向量01331两者执行(333)第一层过程。来自第一层过程的中间结果334可以在针对两个观测向量完成第一层过程时可用;并且第二层权重集合315被加载(335)到FGPA330上。[0037]中间结果334可以被加载到缓冲(例如图2的输入缓冲211)中,以用于下一层处理以及所执行(337)的第二层过程。在FPGA330处深度NN评估针对每层持续进行,直到针对两个观测向量(向量0和向量01)331完成了整个过程为止。之后可以针对下一对观测向量(例如,向量02和向量03)重复该过程。应当理解,尽管描述了仅FPGA来并行评估多于两个特征向量/观测向量。这将进一步降低所需要的存储器带宽,但是会发现它在缓冲来自单个数据流的批次的延迟中的限制,因为在实时应用中,在开始计算之前缓冲N个观测向量使系统的输出被延迟N个向量,并且在一些应用中,可接受的延迟不9归网络(RNN),因为一个批次内的向量不是独立的(在时间步骤t处的计算需要在时间步骤t-1处的输出)。一个观测向量(向量0)341和来自核心1302的一个观测向量(向量1)342作为一个批次被评处对向量0341和向量1342两者执行(344)第一层过程,从而生成中间结果345。中间结果345(第一层过程的数据输出)可以被加载到缓冲中以进行下一层处理。不像图3B中图示的经网络),因为该批次内的所有观测结果都是来自不同流的并且因此是独立的。心0301的两个观测向量351(向量0,向量01)和来自核心1302的两个观测向量352(向量1,向量11)作为一个批次被加载以及评估。来自每个流的两个观测向量可以通过针对FPGA的集合310、来自核心0301的两个观测向量351(向量0,向量01)和来自核心1302的两个观测[0041]中间结果355(第一层过程的数据输出)可以被加载到缓冲中以进行下一层处理,理在处理输入数据集所需要的数据库(权重)的带宽过高的情况下的任何I/0边界问题。因以采用并行锁定步骤来处理以确保针对N个并行流的存储器带宽要求保持与针对单个流的且(例如,经由快速傅里叶变换)被变换以基于(可以根据其获得观测向量的)频率建立功率看的片段(slice)属于语音单元的概率有多少,例如被查看的片段属于在“t”的左上下文和任务可以涉及基于概率得分来标识单词并且针对某些词典进行应用以执行语言之间的翻译。执行针对包含24个CPU核心403(N=24)的整个服务器刀片的深度NN评估中的全部;在深度从存储401加载新的权重数据集时被路由回来(407)从而经历利用新的加权函数的另一过设针对FPGA功率消耗的膨胀(bloated)估计为25W,并且针对CPU核心的合理的平均功率消FPGA的情况下以另一方式计算,功率使用将为每个会话3*8.33W=25W,而利用FPGA每会话11话每秒被评估100次。甚至对于一个会话,这意味着针对FPGA的存储器带宽要求为100*在图4中针对N=24的特定实施方式反映的)技术可以解决该问题。过以(观测向量的)K个输入数据集的组对输入数据进行批处理来减少。通过延迟处理直到需要的有效存储器带宽下降K倍(同时使语音识别输出延迟对应于K-1向量的持续时间,例且K=1和K=2,每个会话在使用中同时使用K个输入数据集的队列和N个这种队列(针对图4中图示的示例为N=24和K=2)。输入数据集可以被安排为使得在锁定步骤中在层逻辑405重新排队407以利用新的权重进行下一层处理)同时跨所有队列使用完全相同的权重处理[0053]图5是图示了可以用于执行本文中描述的一些过程的计算设备或系统的部件的框设备以及其他类型的计算设备。硬件可以根据诸如对称多处理(SMP)架构或者非均匀存储[0055]处理系统505的一个或多个处理设备可以包括多处理器或多核心处理器并且可以[0056]软件510可以包括可由处理系统505读取的并且能够存储包括用于执行各种过程的指令的软件510的任何计算机可读存储介质,FPGA上所执行的神经网络评估形成各种过程中的一部分。软件510还可以包括附加的过程、程序或部件,例如操理软件或者其他应用软件。软件510还可以包括可由处理系统505执行的固件或者某种其他形式的机器可读处理指令。除了存储软件510,存储系统520还可以存储用于执行神经网络评估的矩阵权重和其他数据集。在一些情况下,管理器代理240至少部分地被存储在形成存储系统520的一部分并且实施虚拟存储器和/或非虚拟存储器的计算机可读存储介质上。[0057]存储系统520可以包括以任何方法或技术实施的用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性介质和非易失性介质、可移除介质和不可移除介质。[0058]尽管存储系统520被示出为一个框,但是存储系统520表示对计算系统500可用的片上存储和外部存储。存储系统520可以包括各种存储介质,例如随机访问存储器(RAM)、只存储介质。某些实施方式可以包含虚拟存储器和非虚拟存储器中的任一或两者。在任何情况下,存储介质都不包括传播信号或载波。除了存储介质,在一些实还可以包括通信介质,软件和数据可以通过通信介质进行内部地或者外部地通信。[0059]存储系统520可以被实施为单个存储设备,还可以跨相对于彼此共同定位或者分布的多个存储设备或者子系统实施。在一些情况下,处理系统505可以通过系统总线访问存储系统520(或者存储系统520的一部分)。存储系统520可以包括附加的元件,例如控制器,其能够与处理系统505进行通信。[0060]计算系统500还包括用于执行神经网络评估的FPGA530。可以在数据中心中获得备选地,单个FPGA可以被容纳在单个服务器中,其中需要多于一个FPGA的服务可以跨驻存在多个服务器中的FPGA被映射和/或需要多于一个服务器的服务可以访问驻存在服务器中当被并入在相同服务器中时,(一个或多个)FPGA可以在相同的板上或者在利用诸如PCIe(PCI快速)的通信接口技术接口连接的单独的板上被耦合到处理系统505。[0061]通信接口540被包括,从而提供允许设备500与其他计算系统(未示出)之间通过通信网络或者网络(未示出)的集合或者空中通信的通信连接和设备。共同允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、RF电路、收发器以及其他通信电路。连接和设备可以通过通信介质进行通信以与其他计算系统或系统的网络交换通信,设备是公知的并且不需要在此详细讨论。[0062]应当指出,设备500的许多元件可以被包括在片上系统(SoC)设备上。这些元件可以包括但不限于处理系统505、存储系统520的元件以及甚至通信接口540的元件。[0063]本发明的某些方面提供以下非限制性实施例。[0064]示例1.一种执行神经网络过程的方法,方法包括:在现场可编程门阵列(FPGA)处接收一批输入数据以用于神经网络评估的加速处理,其中该批输入数据包括至少两个特征向量;利用来自外部存储器的用于神经网络评估的第一层权重集加载FPGA;以及在FPGA内将第一层权重集应用到该批输入数据以生成中间结果。[0065]示例2.根据示例1的方法,其中至少两个特征向量包括来自至少两个数据流中的每个数据流的一个观测向量。[0066]示例3.根据示例2的方法,其中神经网络评估是递归神经网络评估。[0067]示例4.根据示例1的方法,其中至少两个特征向量包括来自至少两个数据流中的每个数据流的至少两个观测向量。[0068]示例5.根据示例1的方法,其中至少两个特征向量包括来自单个数据流的至少两个观测向量。[0069]示例6.根据示例1-5中的任一项的方法,还包括:在将第一层权重集应用到该批次之后,利用来自外部存储器的用于神经网络评估的第二层权重集加载FPGA;以及在FPGA内将第二层权重集应用到中间结果。[0070]示例7.根据示例1、2或4-6中的任一项的方法,其中神经网络评估为深度神经网络多层感知评估。[0071]示例8.根据示例1-7中的任一项的方法,其中该批输入数据从至少一个核心被接[0072]示例9.根据示例1-7中的任一项的方法,其中从FPGA上其他逻辑接收输入数据的[0073]示例10.根据示例1-7中的任一项的方法,其中该批输入数据从其他处理单元被接[0074]示例11.一个或多个计算机可读存储介质,具有存储在其上的指令,指令在由处理系统执行时引导处理系统通过以下来管理用于深度学习应用的存储器带宽:引导来自至少一个核心的一批至少两个观测向量在现场可编程门阵列(FPGA)处排队;在FPGA上加载至少一个加权的数据集,至少一个加权的数据集中的每个加权的数据集安装被引导在FPGA处排队的至少两个观测向量的批次被一次加载;以及将来自FPGA的评估输出引导到至少一个核心以用于进一步处理。[0075]示例12.根据示例11的介质,其中引导来自至少一个核心的该批至少两个观测向量在FPGA处排队的指令引导来自至少两个核心中的每个核心的一个观测向量在FPGA处排[0076]示例13.根据示例11的介质,其中引导来自至少一个核心的该批至少两个观测向量在FPGA处排队的指令引导来自至少两个核心中的每个核心的至少两个观测向量在FPGA处排队。在一个或多个存储介质中的至少一个存储介质上并且至少在多个处理核心上被执行;并行处理器,其与多个核心通信以对用于服务的过程的一批数据执行神经网络评估;以及用于神经网络评估的被存储在一个或多个存储介质中的至少一个存储介质上的权重数据集。[0078]示例15.根据示例14的系统,其中并行处理器为现场可编程门阵列(FPGA)。[0079]示例16.根据示例14或15的系统,其中并行处理器从多个核心中的每个核心接收一个观测向量以作为该批数据。[0080]示例17.根据示例16的系统,其中神经网络评估包括递归神经网络评估。[0081]示例18.根据示例14-16中的任一项的系统,其中神经网络评估包括深度神经网络多层感知评估。[0082]示例19.根据示例14、15或18中的任一项的系统,其中并行处理器从多个核心中的每个核心接收至少两个观测向量以作为该批数据。[0083]示例20.根据示例14-19

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论