CN107818367A - 用于神经网络的处理系统和处理方法 - Google Patents

用于神经网络的处理系统和处理方法 Download PDF

Info

Publication number
CN107818367A
CN107818367A CN201711041164.9A CN201711041164A CN107818367A CN 107818367 A CN107818367 A CN 107818367A CN 201711041164 A CN201711041164 A CN 201711041164A CN 107818367 A CN107818367 A CN 107818367A
Authority
CN
China
Prior art keywords
neuron
row
computing array
neural
weights
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711041164.9A
Other languages
English (en)
Other versions
CN107818367B (zh
Inventor
韩银和
闵丰
许浩博
王颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201711041164.9A priority Critical patent/CN107818367B/zh
Publication of CN107818367A publication Critical patent/CN107818367A/zh
Application granted granted Critical
Publication of CN107818367B publication Critical patent/CN107818367B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

本发明提供了一种神经网络处理系统。该处理系统包括:计算阵列,用于执行神经元和权值的乘法和累加操作;控制单元,用于控制所述计算阵列的数据传递和加载,其中,所述计算阵列包括:至少一个列处理单元,由多个乘法单元构成,并用于执行神经元和权值的乘法运算,以输出乘积结果;至少一个列累加单元,与所述列处理单元相连,并用于对所述列处理单元的多个乘积结果进行累加;至少一个列暂存单元,与所述列累加单元相连,并用于存储所述列累加单元的计算结果。利用本发明的处理系统,在计算过程中能够实现神经元循环使用,从而提高了计算效率和资源利用率。

Description

用于神经网络的处理系统和处理方法
技术领域
本发明涉及深度学习技术领域,尤其涉及一种用于神经网络的处理系统和处理方法。
背景技术
近年来,深度学习技术得到了飞速的发展,在解决高级抽象认知问题,例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域得到了广泛应用,成为学术界和工业界的研究热点。
深度神经网络是人工智能领域具有最高发展水平的感知模型之一,该类网络通过建立模型模拟人类大脑的神经连接结构,通过多个变换阶段分层对数据特征进行描述,为图像、视频和音频等大规模数据处理任务带来突破性进展。深度神经网络模型结构是一种运算模型,由大量节点通过网状互连结构构成,这些节点被称为神经元。每两个节点间连接强度都代表通过该连接信号在两个节点间的加权重,即权重,与人类神经网络中的记忆相对应。
然而,实现深度学习技术依赖于极大的计算量。在训练阶段,需要在海量数据中通过反复迭代计算得到神经网络中的权重数据;在推理阶段,同样需要神经网络在极短的响应时间(通常为毫秒级)内完成对输入数据的运算处理。神经网络中涉及的计算主要包括卷积操作、池化操作等,例如,卷积操作是将输入的神经元或称像素与相应卷积核的权值进行乘累加处理,卷积操作和池化操作占用了神经网络处理的大部分时间,因此,提高卷积操作和池化操作的计算效率,能够有效降低神经网络的处理时间。随着神经网络运算的规模越来越大、数据吞吐量越来越高,运行功耗成为一个严重问题。
因此,需要对现有技术进行改进,以提高神经网络的计算效率并降低运行能耗。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种用于神经网络的处理系统和处理方法。
根据本发明的第一方面,提供了一种神经网络处理系统。该处理系统包括:
计算阵列,用于执行神经元和权值的乘法和累加操作;
控制单元,用于控制所述计算阵列的数据传递和加载;
其中,所述计算阵列包括:
至少一个列处理单元,由多个乘法单元构成,并用于执行神经元和权值的乘法运算,以输出乘积结果;
至少一个列累加单元,与所述列处理单元相连,并用于对所述列处理单元的多个乘积结果进行累加;
至少一个列暂存单元,与所述列累加单元相连,并用于存储所述列累加单元的计算结果。
在一个实施例中,所述计算阵列组织为二维矩阵形式,二维矩阵的行数是一个所述列处理单元包含的乘法单元的数目,二维矩阵的列数是所述列处理单元的数目。
在一个实施例中,所述控制单元基于所述计算阵列的规模确定神经元的分批策略和权值的分批策略。
在一个实施例中,所述神经元的分批策略是:将针对所有输入特征图的一个卷积域范围的神经元作为一个神经元批次,该一个神经元批次包括多个神经元组,每个神经元组包含的神经元数目等于所述计算阵列的第一列所包含的乘法单元数目。
在一个实施例中,所述权值的分批策略是:将一个神经元集群所需的权值作为一个权值批次,其中,该一个神经元集群包含的神经元数目等于所述计算阵列的乘法单元数目。
在一个实施例中,所述控制单元基于所述神经元分批策略控制神经元在所述计算阵列中的加载和传递过程,该过程包括:
步骤S61,在每一个周期,向所述计算阵列的第一列输入一个神经元组,之前已载入的神经元组均横向向后传递一列;
步骤S62,当所述计算阵列的各列均载有神经元组时,暂停输入神经元组;
步骤S63,将已载入的所有神经元组按照输入顺序从第一列开始继续在所述计算阵列中流动,直到所述已载入的所有神经元组与对应的所有输出特征图的权值完成计算。
在一个实施例中,所述控制单元根据所述计算阵列中神经元与权值计算任务的完成情况生成神经元持续循环传递信号,以控制已载入的神经元组在所述计算阵列中循环传递,或者生成循环传递结束信号以控制向所述计算阵列输入新的神经元组。
在一个实施例中,所述列暂存单元用于针对不同输出特征图分别存储对应神经元累加的中间值。
根据本发明的第二方面,提供了一种神经网络处理方法。该处理方法包括以下步骤:
步骤91:根据神经网络中计算阵列的规模确定待计算神经元和权值的分批策略;
步骤92:根据所述分批策略控制所述待计算神经元和权值到所述计算阵列的加载和在所述计算阵列的流动,以完成与所有输出特征图权值的乘累加计算,以获得卷积结果。
步骤93:对所述卷积结果进行激活处理和池化处理。
在本发明的神经网络处理方法中,所述神经元分批策略是:将针对所有输入特征图的一个卷积域范围的神经元作为一个神经元批次,该一个神经元批次包括多个神经元组,每个神经元组包含的神经元数目等于所述计算阵列的第一列所包含的乘法单元数目。
在本发明的神经网络处理方法中,步骤92包括:在每一个周期,向所述计算阵列的第一列输入一个神经元组,之前已载入的神经元组均横向向后传递一列;当所述计算阵列的各列均载有神经元组时,暂停输入神经元组;将已载入的所有神经元组按照输入顺序从第一列开始继续在所述计算阵列中流动,直到所述已载入的所有神经元组与对应的所有输出特征图的权值完成计算。
与现有技术相比,本发明的优点在于:利用计算阵列结构对神经元和权值进行分批卷积处理,提高了计算速度;在计算过程中,通过将神经元分组在计算阵列中循环传递,以供不同输出特征图的权值循环利用,形成了循环流水线式的计算模式,进一步提升了数据处理效率和资源利用率;在循环利用神经元组的过程中,通过专用暂存器对中间结果进行保存与传递,保证了神经网络卷积计算的正确性,并同时降低了系统的运行能耗。
附图说明
以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
图1示出了根据本发明一个实施例的神经网络处理系统的示意图;
图2(a)示出了根据本发明一个实施例的乘法单元的示例;
图2(b)示出根据本发明一个实施例的列累加单元的示例;
图3(a)示出了根据本发明一个实施例的4*4规模的计算阵列;
图3(b)示出了根据本发明一个实施例的向图3(a)的计算阵列加载神经元的顺序;
图4示出了根据本发明一个实施例的对神经元和权值进行分割的示意图;
图5示出了根据本发明另一个实施例的神经网络处理系统的示意图;
图6示出了图5的神经网络处理系统的工作流程图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
典型地,深度神经网络是具有多层神经网络的拓扑结构,并且每层神经网络具有多个特征图层。例如,对于卷积神经网络,其处理数据的过程由卷积层、池化层、归一化层、非线性层和全连接层等多层结构组成,其中,卷积层的操作过程是:将一个K*K大小的二维权重卷积核对输入特征图进行扫描,在扫描过程中权重与特征图内对应的神经元求内积,并将所有内积值求和,然后通过非线性激活函数(如ReLU)处理之后,获得卷积层的输出特征图或称输出神经元并把该输出特征图传递到下一层(例如池化层),当每个卷积层具有N个输入特征图时,会有N个K*K大小的卷积核与该卷积层内的特征图进行卷积操作。池化层又称下采样层,其具体过程是:将一个P*P大小的二维窗口(即池化域)对特征图(例如,由卷积层输出给池化层的特征图)进行扫描,在扫描过程中计算窗口在图层对应神经元的最大值或平均值,得到池化层的输出神经元,池化层一方面可以消除部分噪声信息,有利于特征提取,另一方面也可以减少下一层特征神经元的数量,从而减小网络规模。
图1示出了根据本发明一个实施例的神经网络处理系统的示意图。该处理系统能够应用于训练好的神经网络,对待测的目标神经元进行输出预测。参见图1所示,处理系统101包括控制单元102、输入数据存储单元103、输出数据存储单元105、权重存储单元104、输入数据缓存单元106、权重缓存单元107、计算阵列100、输出缓存单元111以及用于激活神经元的激活单元(未示出)、用于对卷积层的输出神经元进行池化处理的池化单元(未示出),其中,计算阵列100包括列处理单元110、列累加单元108和列暂存单元109,在该实施例中,示出了多个一一对应的列处理单元110、列累加单元108和列暂存单元109。
输入数据存储单元103与输入数据缓存单元106相连,用于存储神经网络各层需处理的目标数据,该数据包括原始特征图数据和参与中间层计算的数据。
输出数据存储单元105与输出缓存单元111相连,用于存储计算得到的输出神经元。
权重存储单元104与权重缓存单元107相连,用于存储已经训练好的神经网络权重。
输入数据缓存单元106与计算阵列100相连,用于向计算阵列100提供神经元输入值。
权重缓存单元107与计算阵列100相连,用于向计算阵列100提供不同输出特征图对应权值。
列处理单元110和与其一一对应的列累加单元108相连,用于进行神经元和权值卷积的乘法操作。
列累加单元108与列暂存单元109相连,用于将与其对应的列处理单元的乘法结果进行累加。
列暂存单元109与输出缓存单元111相连,用于暂存卷积计算的中间结果和输出神经元值。
输出缓存单元111与输出数据存储单元105相连,用于暂存各输出特征图的卷积计算结果。
控制单元102分别与输入数据存储单元103、权重存储单元104、输出数据存储单元105、输入数据缓存单元106、权重缓存单元107、计算阵列100以及输出缓存单元111相连。控制单元102获得神经网络各层参数以及计算阵列参数,以控制神经元和权值向计算阵列100、各存储单元的载入以及缓存数据的排列顺序,以及控制列累加单元108与列暂存单元109的数据累加与数据传递。
应说明的是,尽管图1示出了独立的列处理单元110、列累加单元108和列暂存单元109,但在其它实施例中,也可将列累加单元108、列暂存单元109与列处理单元110集成在一起。
计算阵列100用于完成神经元和权值的卷积运算、对中间计算结果的累加和存储,其中,本文所述的列处理单元110可以由多个乘法单元构成并以列的形式排列,每个乘法单元能够实现神经元和权值的乘法操作。列累加单元108能够对列处理单元110的计算的多个乘积进行累加,从而完成神经元和权值的卷积操作。乘法单元和列累加单元均可采用通用器件实现,图2(a)示出了一个乘法单元的示意,图2(b)示出的是一个列累加单元的示意,其中,乘法单元完成神经元和权值的乘法操作之后,将乘积输出到列累加单元,并可将神经元进一步传递,列累加单元对多个乘积结果进行累加。
在一个实施例中,计算阵列100可组织为二维矩阵形式,图3(a)示出了规模为4*4的计算阵列100,行数表示每个列处理单元110所包含的乘法单元的数量,列数表示为计算阵列100中包含的列处理单元的数量,每个列处理单元110之间互相连接,其中,列累加单元108和列暂存单元109均可内置在列处理单元110中,在图3(a)中未示出。
参见图3(a)所示,在该示例中,第一个列处理单元110可同时接收4个神经元值,4列同时接收4个权值,第一个列处理单元接收的神经元在计算阵列中100横向传递,例如,对于图3(b)所示的4个输入特征图,神经元向计算阵列100的第一列的加载顺序是:在第一周期加载1、5、9、d,第二周期加载2、6、a、e并且第一列已加载的1、5、9、d横向传递到第二列,依次类推,到第四周期计算阵列已覆盖所有输入特征图一个卷积域的神经元。在每个周期,乘法单元中的加载神经元和权值进行乘积计算,因此,通过这种加载顺序,在每个周期,一个列处理单元可获得4个输入特征图同一位置的乘法结果,例如,1、5、9、d对应分别对应4个输入特征图的同一个坐标位置。
应理解的是,本发明提供的计算阵列也可以组织为其他形式,例如,仅包括一个列处理单元的一维矩阵形式,或者,计算阵列的行数和列数可以相等或不相等。
本发明提供的计算阵列可用于神经网络的卷积层及全连接层的向量乘累加计算,利用计算阵列进行数据处理的主要过程包括基于计算阵列的规模确定神经元和权值的批次策略;控制单元控制各批次的神经元和权值向计算阵列的加载、累加和存储。
1)关于神经元和权值的批次划分策略
在本发明中,基于计算阵列规模和神经网络的计算规模将待计算的神经元分为多个批次,并将权值也分为多个批次。
图4示出了对参与计算的神经元和权值进行批次划分的示意图。在该示例中,卷积域为3x3、卷积移动步长为2、48个输入特征图、96个输出特征图,计算阵列的规模是16*16。
参见图4所示,当以3x3的卷积核对48个输入特征图进行扫描时,以针对所有输入特征图的一个卷积域范围的神经元作为一个批次,即3x3x48个神经元作为一个神经元批次,由于计算阵列的第一列可并行接收16个神经元,将该16个神经元作为一个神经元组,因此,每批次神经元可分为27个(即3x3x48/16)神经元组。在本文中将覆盖计算阵列的所述乘法单元所需的神经元数目定义为一个局部神经元集群,即本实施例中,每16个神经元组称为一个局部神经元集群,将每个局部神经元集群所需的权值作为一个权值批次,因此,所有96个输出特征图与相应局部神经元集群的权值将分为6个批次。
在图4的实施例中,以权值和神经元原位宽是8比特定点数为例进行阐述,由于计算阵列行数为16,故神经元缓存载入的数据拼接位宽至少为16x8比特(即128bit)。计算阵列各列神经元所对应计算权值均不同,故权值缓存载入数据的拼接位宽至少为16x16x8比特(即2048bit)。在另一个实施例中,权值与神经元的原位宽也可以是32比特或16比特等。
2)关于计算阵列的数据加载和传递过程
基于神经元和权值的分批策略,控制单元可控制神经元和权值向计算阵列的加载顺序,以及在计算阵列中的流动。
对于16*16规模的计算阵列,一个神经元批次的卷积计算过程包括以下步骤:
步骤S210,首先,在第一个周期,向计算阵列100的第一列输入一个神经元组,然后,在后续的15个周期,向计算阵列100的第一列输入一个新的神经元组,各列之前载入的神经元组均横向向后传递一列。因此,在16个周期结束时,计算阵列的各列的处理单元均已载有神经元。
步骤S220,当计算阵列的各列均载有神经元组时,暂停输入新的神经元组,此时已输入的16个神经元组作为阵列的局部神经元集群已完成与相应权值的乘累加计算,即完成了第一个循环的乘累加,在本实施例中,以16个周期为一个循环。
步骤S230,在后续的5个循环中,仍暂停向计算阵列输入新的神经元组,已载入的神经元集群按照原顺序(即前16个周期的载入顺序)从第一列开始继续在计算阵列中流动,每周期更新输入权值,以进行计算,直到该神经元集群与对应的所有输出特征图的权值计算完成。
步骤S240,当完成一个神经元集群与所有输出特征图权值的计算时,向计算阵列输入新的神经元组,直到新的神经元集群替换原神经元集群。重复上述过程,直到一个批次的神经元对应的所有输出特征图的卷积计算任务完成。
当一个神经元批次的卷积计算完成时,即一个卷积域的卷积计算任务已完成,输出所有输出特征图对应位置的计算结果。通过这种方式,可获得所有神经元批次的卷积结算任务。
3)关于计算阵列中数据累加过程
在神经元组向计算阵列加载和流动过程中,关于权值输入和累加计算过程说明如下:
a)、控制单元每周期依据计算阵列中各列对应的输出特征图加载对应权值参与卷积运算,计算阵列的各列对应不同输出特征图在同一输出坐标神经元的卷积运算,权值的输入与步骤S210中神经元组的输入过程同步;
b)、计算阵列内神经元组每周期流水式向后移动一列,各列神经元所对应的权值也将发生变化,需实时更新与加载,该过程对应神经元循环流水线移动时计算阵列的权值输入;
c)、将各个列处理单元的乘积进行累加,每列累加结果为特定输出特征图固定位置的中间值,将同列且同批次权值计算出的中间值进行累加,计算阵列各列赋予专用暂存空间(即与列处理单元110一一对应的列暂存单元109),以存储各输出特征图对应同一坐标神经元计算的中间值;
d)、当某批次的神经元处理完毕时,计算阵列中各列的专用存储空间已累加为各输出特征图固定位置的最终卷积结果。
e)、当开始载入下一批次的神经元时,权值将重新从第一批次开始载入计算阵列,直至所有批次神经元处理完毕。
需说明的是,在神经元组进行循环流水线传递和计算过程中,控制单元针对各组及批次计算生成对应的更新信号和批次序号,用于控制列累加单元与列暂存单元的累加与数据传递。所述更新信号,可用于表示计算阵列内部神经元的循环状态,例如,包括神经元持续循环传递信号与循环传递结束信号。
综上所述,在本发明的计算过程中,各列处理单元完成卷积相乘的部分任务后,将其乘法结果传递至列累加单元进行向量积的累加操作,每列在一个局部神经元集群的单个循环中所累加的向量积是一个特定输出特征图的单一神经元的中间值,当一个批次的神经元对应单列处理单元的乘累加完成时,其对应的各输出特征图单一神经元也将计算完成。而对于单批次神经元的卷积计算过程中,以局部神经元集群循环复用与权值轮换来完成其计算任务,通过这种方式在不增加阵列规模的情况下,能够提高计算量和计算效率。而不同循环内的累加值分别属于不同输出特征图,故需要分开累加。本发明所提供的列暂存单元可针对不同输出特征图分别存储对应神经元累加的中间值,暂存数据的地址可由批次更新信号与批次顺序参数确定,以保证累加计算的正确性同时减少缓存访存次数。
图5示出了根据本发明一个实施例的神经网络处理系统,该处理系统包括输入数据存储单元、权重存储单元、输出数据存储单元、输入数据缓存单元、输入权重缓存单元、输出缓存单元、池化单元、激活单元、计算阵列规模为16*16、内置列累加器、中间值暂存单元,其中,中间值暂存单元用于存储各列计算的中间值,用于实现各个列暂存单元的功能。
以8比特数据为例,其计算步骤包括(参见图6所示):
步骤S610,控制单元根据计算阵列的规模确定神经元和权值的分批策略。
步骤S620,控制单元控制将神经元与权值分批加载至输入数据缓存单元与权重缓存单元。
步骤S630,向计算阵列的第一列输入一组神经元值,同时向已载入神经元的列处理单元载入相应权值进行计算。
步骤S640,每周期继续向第一列处理单元输入神经元,已存于计算阵列的神经元横向移动一列,直至神经元覆盖计算阵列的所有列处理单元。
步骤S650,停止输入神经元,局部神经元集群按原顺序继续循环移动,每周期更新输入相应权值进行计算,直至该神经元集群面向的所有输出特征图的权值计算完成。
步骤S660,向计算阵列的第一列输入新的神经元,并逐列替换原神经元集群,直至新的神经元集群重新覆盖计算阵列,重复步骤650,直至该批次的神经元面向所有输出特征图的卷积运算任务完成。
步骤670,单批次神经元卷积完成时,将中间值暂存单元的卷积运算结果输出至输出缓存单元。
步骤680,在神经元缓存单元中复用上一批次的重复神经元,组成下一批次的神经元并输入到计算阵列完成卷积运算,直至完成所有批次的卷积运算。
步骤690,将各批次的卷积输出结果输出至激活单元、池化单元做进一步处理并将处理结果存于输出数据存储单元。
综上,本发明提供的计算阵列和神经元循环流水式复用方法,能够提高计算效率,并且通过采用专用的列暂存空间来存储卷积过程中的中间值,在保证神经网络计算的正确性同时减少了缓存的访存量并降低神经网络处理系统的运行功耗。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (11)

1.一种神经网络处理系统,其特征在于,包括:
计算阵列,用于执行神经元和权值的乘法和累加操作;
控制单元,用于控制所述计算阵列的数据传递和加载;
其中,所述计算阵列包括:
至少一个列处理单元,由多个乘法单元构成,并用于执行神经元和权值的乘法运算,以输出乘积结果;
至少一个列累加单元,与所述列处理单元相连,并用于对所述列处理单元的多个乘积结果进行累加;
至少一个列暂存单元,与所述列累加单元相连,并用于存储所述列累加单元的计算结果。
2.根据权利要求1所述的神经网络处理系统,其特征在于,所述计算阵列组织为二维矩阵形式,二维矩阵的行数是一个所述列处理单元包含的乘法单元的数目,二维矩阵的列数是所述列处理单元的数目。
3.根据权利要求2所述的神经网络处理系统,其特征在于,所述控制单元基于所述计算阵列的规模确定神经元的分批策略和权值的分批策略。
4.根据权利要求3所述的神经网络处理系统,其特征在于,所述神经元的分批策略是:
将针对所有输入特征图的一个卷积域范围的神经元作为一个神经元批次,该一个神经元批次包括多个神经元组,每个神经元组包含的神经元数目等于所述计算阵列的第一列所包含的乘法单元数目。
5.根据权利要求3所述的神经网络处理系统,其特征在于,所述权值的分批策略是:
将一个神经元集群所需的权值作为一个权值批次,其中,该一个神经元集群包含的神经元数目等于所述计算阵列的乘法单元数目。
6.根据权利要求4所述的神经网络处理系统,其特征在于,所述控制单元基于所述神经元分批策略控制神经元在所述计算阵列中的加载和传递过程,该过程包括:
步骤S61,在每一个周期,向所述计算阵列的第一列输入一个神经元组,之前已载入的神经元组均横向向后传递一列;
步骤S62,当所述计算阵列的各列均载有神经元组时,暂停输入神经元组;
步骤S63,将已载入的所有神经元组按照输入顺序从第一列开始继续在所述计算阵列中流动,直到所述已载入的所有神经元组与对应的所有输出特征图的权值完成计算。
7.根据权利要求6所述的神经网络处理系统,其特征在于,所述控制单元根据所述计算阵列中神经元与权值计算任务的完成情况生成神经元持续循环传递信号,以控制已载入的神经元组在所述计算阵列中循环传递,或者生成循环传递结束信号以控制向所述计算阵列输入新的神经元组。
8.根据权利要求1至7中任一项所述的神经网络处理系统,其中所述列暂存单元用于针对不同输出特征图分别存储对应神经元累加的中间值。
9.一种神经网络处理方法,包括,以下步骤:
步骤91:根据神经网络中计算阵列的规模确定待计算神经元和权值的分批策略;
步骤92:根据所述分批策略控制所述待计算神经元和权值到所述计算阵列的加载和在所述计算阵列的流动,以完成与所有输出特征图权值的乘累加计算,以获得卷积结果。
步骤93:对所述卷积结果进行激活处理和池化处理。
10.根据权利要求9所述的神经网络处理方法,其中,所述神经元分批策略是:将针对所有输入特征图的一个卷积域范围的神经元作为一个神经元批次,该一个神经元批次包括多个神经元组,每个神经元组包含的神经元数目等于所述计算阵列的第一列所包含的乘法单元数目。
11.根据权利要求10所述的神经网络处理方法,其中,步骤92包括:
在每一个周期,向所述计算阵列的第一列输入一个神经元组,之前已载入的神经元组均横向向后传递一列;
当所述计算阵列的各列均载有神经元组时,暂停输入神经元组;
将已载入的所有神经元组按照输入顺序从第一列开始继续在所述计算阵列中流动,直到所述已载入的所有神经元组与对应的所有输出特征图的权值完成计算。
CN201711041164.9A 2017-10-30 2017-10-30 用于神经网络的处理系统和处理方法 Active CN107818367B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711041164.9A CN107818367B (zh) 2017-10-30 2017-10-30 用于神经网络的处理系统和处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711041164.9A CN107818367B (zh) 2017-10-30 2017-10-30 用于神经网络的处理系统和处理方法

Publications (2)

Publication Number Publication Date
CN107818367A true CN107818367A (zh) 2018-03-20
CN107818367B CN107818367B (zh) 2020-12-29

Family

ID=61603376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711041164.9A Active CN107818367B (zh) 2017-10-30 2017-10-30 用于神经网络的处理系统和处理方法

Country Status (1)

Country Link
CN (1) CN107818367B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875925A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种针对卷积神经网络处理器的控制方法及装置
CN108875917A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种用于卷积神经网络处理器的控制方法及装置
CN109670158A (zh) * 2018-12-27 2019-04-23 丹翰智能科技(上海)有限公司 一种用于根据资讯数据生成文本内容的方法与设备
CN109669666A (zh) * 2018-11-06 2019-04-23 清华大学 乘累加处理器
CN109902040A (zh) * 2019-02-01 2019-06-18 京微齐力(北京)科技有限公司 一种集成fpga和人工智能模块的系统芯片
CN110070175A (zh) * 2019-04-12 2019-07-30 北京市商汤科技开发有限公司 图像处理方法、模型训练方法及装置、电子设备
CN110322388A (zh) * 2018-03-29 2019-10-11 上海熠知电子科技有限公司 池化方法及装置、池化系统、计算机可读存储介质
CN110647975A (zh) * 2018-06-27 2020-01-03 龙芯中科技术有限公司 一种数据处理方法、装置、设备以及介质
WO2020029551A1 (zh) * 2018-08-08 2020-02-13 东南大学 一种适用于神经网络的乘加计算方法和计算电路
CN110989971A (zh) * 2018-10-03 2020-04-10 马克西姆综合产品公司 用于节能数据处理的系统和方法
CN111199275A (zh) * 2018-11-20 2020-05-26 上海登临科技有限公司 用于神经网络的片上系统
CN112203291A (zh) * 2020-12-03 2021-01-08 中国科学院自动化研究所 基于知识嵌入的区域覆盖和连通保持的集群控制方法
CN115058343A (zh) * 2022-08-16 2022-09-16 南京邦康生物技术有限公司 基于超声波的富硒酵母细胞壁的破壁方法、控制器及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106056211A (zh) * 2016-05-25 2016-10-26 清华大学 神经元计算单元、神经元计算模块及人工神经网络计算核
CN106127302A (zh) * 2016-06-23 2016-11-16 杭州华为数字技术有限公司 处理数据的电路、图像处理系统、处理数据的方法和装置
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN106503791A (zh) * 2015-09-04 2017-03-15 百度(美国)有限责任公司 用于有效神经网络部署的系统和方法
US20170103317A1 (en) * 2015-05-21 2017-04-13 Google Inc. Batch processing in a neural network processor
CN106844294A (zh) * 2016-12-29 2017-06-13 华为机器有限公司 卷积运算芯片和通信设备
CN106951395A (zh) * 2017-02-13 2017-07-14 上海客鹭信息技术有限公司 面向压缩卷积神经网络的并行卷积运算方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170103317A1 (en) * 2015-05-21 2017-04-13 Google Inc. Batch processing in a neural network processor
CN106503791A (zh) * 2015-09-04 2017-03-15 百度(美国)有限责任公司 用于有效神经网络部署的系统和方法
CN106056211A (zh) * 2016-05-25 2016-10-26 清华大学 神经元计算单元、神经元计算模块及人工神经网络计算核
CN106127302A (zh) * 2016-06-23 2016-11-16 杭州华为数字技术有限公司 处理数据的电路、图像处理系统、处理数据的方法和装置
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN106844294A (zh) * 2016-12-29 2017-06-13 华为机器有限公司 卷积运算芯片和通信设备
CN106951395A (zh) * 2017-02-13 2017-07-14 上海客鹭信息技术有限公司 面向压缩卷积神经网络的并行卷积运算方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WENYAN LU ET AL: "FlexFlow: A Flexible Dataflow Accelerator Architecture for Convolutional Neural Networks", 《2017 IEEE INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE COMPUTER ARCHITECTURE》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110322388A (zh) * 2018-03-29 2019-10-11 上海熠知电子科技有限公司 池化方法及装置、池化系统、计算机可读存储介质
CN110322388B (zh) * 2018-03-29 2023-09-12 上海熠知电子科技有限公司 池化方法及装置、池化系统、计算机可读存储介质
CN110647975B (zh) * 2018-06-27 2022-09-13 龙芯中科技术股份有限公司 一种数据处理方法、装置、设备以及介质
CN110647975A (zh) * 2018-06-27 2020-01-03 龙芯中科技术有限公司 一种数据处理方法、装置、设备以及介质
CN108875917A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种用于卷积神经网络处理器的控制方法及装置
CN108875925A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种针对卷积神经网络处理器的控制方法及装置
US10984313B2 (en) 2018-08-08 2021-04-20 Southeast University Multiply-accumulate calculation method and circuit suitable for neural network
WO2020029551A1 (zh) * 2018-08-08 2020-02-13 东南大学 一种适用于神经网络的乘加计算方法和计算电路
CN110989971A (zh) * 2018-10-03 2020-04-10 马克西姆综合产品公司 用于节能数据处理的系统和方法
CN109669666B (zh) * 2018-11-06 2022-12-16 清华大学 乘累加处理器
CN109669666A (zh) * 2018-11-06 2019-04-23 清华大学 乘累加处理器
CN111199275A (zh) * 2018-11-20 2020-05-26 上海登临科技有限公司 用于神经网络的片上系统
CN111199275B (zh) * 2018-11-20 2023-04-28 上海登临科技有限公司 用于神经网络的片上系统
CN109670158B (zh) * 2018-12-27 2023-09-29 北京及客科技有限公司 一种用于根据资讯数据生成文本内容的方法与设备
CN109670158A (zh) * 2018-12-27 2019-04-23 丹翰智能科技(上海)有限公司 一种用于根据资讯数据生成文本内容的方法与设备
CN109902040A (zh) * 2019-02-01 2019-06-18 京微齐力(北京)科技有限公司 一种集成fpga和人工智能模块的系统芯片
CN110070175A (zh) * 2019-04-12 2019-07-30 北京市商汤科技开发有限公司 图像处理方法、模型训练方法及装置、电子设备
CN110070175B (zh) * 2019-04-12 2021-07-02 北京市商汤科技开发有限公司 图像处理方法、模型训练方法及装置、电子设备
CN112203291A (zh) * 2020-12-03 2021-01-08 中国科学院自动化研究所 基于知识嵌入的区域覆盖和连通保持的集群控制方法
CN115058343B (zh) * 2022-08-16 2022-11-01 南京邦康生物技术有限公司 基于超声波的富硒酵母细胞壁的破壁方法、控制器及系统
CN115058343A (zh) * 2022-08-16 2022-09-16 南京邦康生物技术有限公司 基于超声波的富硒酵母细胞壁的破壁方法、控制器及系统

Also Published As

Publication number Publication date
CN107818367B (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN107818367A (zh) 用于神经网络的处理系统和处理方法
CN107844826B (zh) 神经网络处理单元及包含该处理单元的处理系统
CN107862374B (zh) 基于流水线的神经网络处理系统和处理方法
CN107977704A (zh) 权重数据存储方法和基于该方法的神经网络处理器
CN108073983B (zh) 在硬件中执行核心跨越
CN108241890B (zh) 一种可重构神经网络加速方法及架构
CN107169560B (zh) 一种自适应可重构的深度卷积神经网络计算方法和装置
CN107918794A (zh) 基于计算阵列的神经网络处理器
CN107454965B (zh) 神经网络处理器中的批处理
CN107578095B (zh) 神经网络计算装置及包含该计算装置的处理器
CN107766292A (zh) 一种神经网络处理方法及处理系统
CN107578098A (zh) 基于脉动阵列的神经网络处理器
CN109325591A (zh) 面向Winograd卷积的神经网络处理器
CN107239824A (zh) 用于实现稀疏卷积神经网络加速器的装置和方法
CN107944545A (zh) 应用于神经网络的计算方法及计算装置
CN108665063A (zh) 用于bnn硬件加速器的双向并行处理卷积加速系统
CN108446761A (zh) 一种神经网络加速器及数据处理方法
CN107527090A (zh) 应用于稀疏神经网络的处理器和处理方法
CN112101525A (zh) 一种通过nas设计神经网络的方法、装置和系统
KR20170023708A (ko) 콘볼루션 신경망 컴퓨팅 장치
CN116113941A (zh) 一种神经网络加速器、加速方法以及装置
CN107622305A (zh) 用于神经网络的处理器和处理方法
CN108510058A (zh) 神经网络中的权重存储方法以及基于该方法的处理器
CN107632965A (zh) 可重构的s型运算装置及运算方法
CN108985449B (zh) 一种对卷积神经网络处理器的控制方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant