当前位置: 首页 > 专利查询>赛灵思公司专利>正文

使用主机传达的合并权重和每层指令的封装通过神经网络加速器进行的多层神经网络处理制造技术

技术编号:24366100 阅读:19 留言:0更新日期:2020-06-03 04:49
在所公开的用于在神经网络系统中进行处理的方法和系统中,主机计算机系统(402)将与神经网络的多个层相关联的多个权重矩阵写入(602)到与神经网络加速器(238)共享的存储器(226)中。主机计算机系统还将多个每层指令组装(610)为指令封装。每个每层指令指定对神经网络的多个层中的相应层的处理以及共享存储器中权重矩阵的相应偏移。主机计算机系统将输入数据和指令封装写入(612,614)到共享存储器。神经网络加速器从共享存储器中读取(702)指令封装,并且处理(702‑712)指令封装的多个每层指令。

Multi layer neural network processing via neural network accelerator using the combination weight communicated by the host and the encapsulation of each layer's instructions

【技术实现步骤摘要】
【国外来华专利技术】使用主机传达的合并权重和每层指令的封装通过神经网络加速器进行的多层神经网络处理
本公开大体上涉及神经网络处理。
技术介绍
机器学习是使计算系统无需明确编程即可采取行动的科学。传统机器学习包括各种聚类和分类技术,包括K-means聚类、线性和逻辑回归、随机梯度下降、关联规则学习等。深度学习是机器学习中的较新前沿。深度学习是一类机器学习算法,其使用多层非线性处理单元进行特征提取和变换。深度学习算法可以不受监督(例如,模式分析)或受监督(例如,分类)。深度学习算法可以使用人工神经网络(ANN)(在本文中被称为“神经网络”)的各层来实现。一般而言,神经网络是在曲线图中连接的节点(即“神经元”)的集合。神经网络中的节点计算加权输入的总和,并且向总和添加可选偏差。节点的输出是最终总和的函数(称为“激活函数”)。示例激活函数包括S形函数、双曲正切(tanh)函数、整流线性单元(ReLU)函数和恒等函数。神经网络模型通常组织为节点的各层,这些层定义了特定拓扑结构以及对应的权重和偏差。权重和偏差被称为网络参数。一般而言,神经网络包括输入层和输出层,并且可以可选地包括输入层和输出层之间的一个或多个隐藏层。用于深度学习应用的神经网络通常包括许多隐藏层,这导致出现术语“深度神经网络(DNN)”。神经网络的层可以紧密连接(例如,一层中的每个节点都完全连接到上一层中的所有节点),还可以稀疏连接(例如,一层中的每个节点仅连接到上一层中的节点中的一部分节点)。卷积神经网络(CNN)是一种DNN,其包括一个或多个稀疏连接的层,被称为卷积层。CNN非常适合处理图像或视频数据。其他类型的DNN包括递归神经网络(RNN),其非常适合处理语音和文本数据。现场可编程门阵列(FPGA)已经用于实现加速从软件调用的功能的电路。加速从软件调用的功能的电路被称为硬件加速器。硬件加速器的示例包括实现为FPGA电路的各种图像过滤器,这些图像过滤器可以从图像处理软件调用。基于FPGA的实现方式包括:主机计算机系统将权重和输入数据传送到FPGA可访问存储器;以及将输出数据传送到主机计算机系统。主机计算机系统和FPGA加速器之间的数据传送会降低性能。与其他常用的神经网络(NN)实现方式(诸如在CPU或GPU上)相比,因为FPGA电路可以比GPU更快地处理数据,并且在该过程中消耗的功率更少,所以基于FPGA的实现方式可能是有利的。
技术实现思路
公开了一种神经网络系统中的处理方法,包括:通过主机计算机系统将与神经网络的多个层相关联的多个权重矩阵写入与神经网络加速器共享的存储器。主机计算机系统还将多个每层指令组装为指令封装。每个每层指令指定对神经网络的多个层中的相应层的处理,以及共享存储器中权重矩阵的相应偏移。主机计算机系统将输入数据和指令封装写入共享存储器。神经网络加速器从共享存储器读取指令封装,并且处理指令封装的多个每层指令。公开了一种神经网络处理系统,包括共享存储器;主机计算机系统,其耦合到共享存储器;以及神经网络加速器,其耦合到共享存储器。主机计算机系统配置有指令,当该指令被执行时,使得主机计算机系统将与神经网络的多个层相关联的多个权重矩阵写入共享存储器。主机计算机系统还被编程为将多个每层指令组装为指令封装。每个每层指令指定对神经网络的多个层中的相应层的处理,以及共享存储器中权重矩阵的相应偏移。主机计算机系统将输入数据和指令封装写入共享存储器。神经网络加速器被配置为从共享存储器读取指令封装并且处理指令封装的多个每层指令。通过考虑以下的具体实施方式和权利要求,应当认识到其他特征。附图说明通过查阅以下具体实施方式并且参考附图,该方法和系统的各个方面和特征将变得显而易见。图1是描绘了根据示例的用于实现神经网络的系统的框图;图2是描绘了根据示例的计算系统的框图;图3是描绘了根据示例的加速电路的框图;图4示出了根据一个实现方式的示例性神经网络处理系统;图5示出了图3所示的示例性神经网络加速器的另一视图;图6示出了在配置神经网络加速器用于处理每层指令的封装并且将权重、输入数据和每层指令的封装提供给神经网络加速器以进行处理时由KA接口执行的过程的流程图;图7示出了在处理神经网络指令的封装时由神经网络加速器执行的过程的流程图;图8示出了用于五个神经网络层的示例性权重矩阵的寻址和示例性输入/输出缓冲器(“B/C缓冲器”)的寻址;图9是描绘了根据示例的可编程IC的框图;以及图10图示了可编程IC的FPGA实现方式。具体实施方式在以下描述中,阐述了许多具体细节以描述本文中所提出的具体示例。然而,对于本领域的技术人员而言,应当显而易见的是,在下文没有给出所有具体细节的情况下,可以实践一个或多个其他示例和/或这些示例的变型。在其他实例中,尚未对众所周知的特征进行描述,以免使本文中示例的描述晦涩难懂。为了便于说明,可以在不同的图中使用相同的附图标记是指相同元件或相同元件的其他实例。所公开的实现方式减少了与包括主机计算机系统和神经网络加速器的神经网络处理系统相关联的开销和延迟。该系统和方法使与在主机计算机系统和神经网络加速器之间共享的存储器之间来回传送数据所涉及的直接存储器访问(DMA)操作的数目最少。主机计算机系统组装神经网络的所有层所需的所有输入数据和参数以进行处理,并且在由神经网络加速器启动处理之前在共享存储器中建立数据和参数的集合。通过一些DMA操作,神经网络加速器具有完成穿过神经网络所需的数据和配置参数,从而减少了开销和延迟。所公开的方法和系统适用于卷积神经网络(CNN)、递归神经网络(RNN)、以及包括诸如矩阵乘法或卷积之类的操作的其他神经网络。为了简便起见,主机计算机系统还可以称为“主机”,神经网络加速器还可以或可替代地称为“加速电路”、“内核加速器”或“内核加速器电路”。所公开的系统和方法的示例性应用是卷积神经网络(CNN)。CNN可以表示为具有操作层的有向图。每层可能需要一个或多个操作,诸如CONV(卷积)或图像到列转换(“im2col”)、通用矩阵乘法(“GEMM”)、激活(例如,整流线性单元,“ReLU”函数)、池化(例如,“最大池化”)、本地响应规范化(LRN层)和内积(例如,“完全连接”(FC)层)。每层的输入都是数据(诸如图像或语音样本),以及经训练的权重,所有均表示为矩阵。在所公开的系统和方法中,在神经网络加速器发起对输入数据的神经网络处理之前,从主机向神经网络加速器提供要按照神经网络的所有层进行处理的输入数据。在所公开的系统和方法的一个特征中,在神经网络的不同层中用于卷积或矩阵乘法的单独权重矩阵被合并为单个数据块,并且存储在共享存储器的连续地址空间中。组合的权重矩阵允许神经网络加速器顺序访问所需权重,这比访问非连续地址更有效。连续地址空间还允许访问,而不必等待内核处理器从对神经网络的一个层的处理过渡到对下一层的处理时加载新权重矩阵。在另一特征中,主机计算机系统产生本文档来自技高网
...

【技术保护点】
1.一种方法,包括:/n通过主机计算机系统将与神经网络的多个层相关联的多个权重矩阵写入与神经网络加速器共享的存储器;/n通过所述主机计算机系统将多个每层指令组装为指令封装,每个每层指令指定对所述神经网络的所述多个层的相应层的处理以及共享的存储器中权重矩阵的相应偏移;/n通过所述主机计算机系统将输入数据和所述指令封装写入所述共享的存储器;/n通过所述神经网络加速器从所述共享的存储器中读取所述指令封装;以及/n通过所述神经网络加速器处理所述指令封装的所述多个每层指令。/n

【技术特征摘要】
【国外来华专利技术】20171017 US 15/785,8001.一种方法,包括:
通过主机计算机系统将与神经网络的多个层相关联的多个权重矩阵写入与神经网络加速器共享的存储器;
通过所述主机计算机系统将多个每层指令组装为指令封装,每个每层指令指定对所述神经网络的所述多个层的相应层的处理以及共享的存储器中权重矩阵的相应偏移;
通过所述主机计算机系统将输入数据和所述指令封装写入所述共享的存储器;
通过所述神经网络加速器从所述共享的存储器中读取所述指令封装;以及
通过所述神经网络加速器处理所述指令封装的所述多个每层指令。


2.根据权利要求1所述的方法,其中所述写入所述多个权重矩阵包括:在所述处理所述多个每层指令之前,将所有所述多个权重矩阵写入所述共享的存储器。


3.根据权利要求1或权利要求2所述的方法,其中所述写入所述多个权重矩阵包括:在所述处理所述多个每层指令之前,将所有所述多个权重矩阵写入所述共享的存储器中的连续地址空间。


4.根据权利要求1至3中任一项所述的方法,还包括:从所述主机计算机系统向所述神经网络加速器传达指示所述权重矩阵在所述共享的存储器中的基址的参数。


5.根据权利要求1至4中任一项所述的方法,其中所述处理所述多个每层指令封装包括:
处理第一每层指令,接着连续处理所述指令封装的第二每层指令;
在处理所述第一每层指令时,从所述共享的存储器的第一部分读取输入数据,并且将输出数据写入所述共享的存储器的第二部分;以及
在处理所述第二每层指令时,从所述共享的存储器的所述第二部分读取输入数据,并且将输出数据写入所述共享的存储器的所述第一部分。


6.根据权利要求1至5中任一项所述的方法,其中所述处理所述多个每层指令封装包括:按照在所述指令封装中出现的次序来处理所述指令封装中的所述多个每层指令。


7.根据权利要求1至6中任一项所述的方法,其中所述处理所述多个每层指令封装包括:针对指令封装中的n个指令在开始执行指令i+1之前,处理完成指令i的执行,并且1≤i≤n。


8.根据权利要求1至7中任一项所述的方法,其中所述处理所述多个每层指令封装包括:针对由所述指令封装定义的状态机,评估有限状态机转换表。


9.一种神经网络处理系统,包括:
共享存储器;
主机计算机系统,耦合到所述共享存储器,其中...

【专利技术属性】
技术研发人员:A·吴E·德拉耶E·盖塞米滕晓J·泽杰达吴永军S·塞特勒A·西拉萨奥
申请(专利权)人:赛灵思公司
类型:发明
国别省市:美国;US

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

1