CN110135556A - 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 - Google Patents
基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110135556A CN110135556A CN201910268881.8A CN201910268881A CN110135556A CN 110135556 A CN110135556 A CN 110135556A CN 201910268881 A CN201910268881 A CN 201910268881A CN 110135556 A CN110135556 A CN 110135556A
- Authority
- CN
- China
- Prior art keywords
- convolution
- characteristic pattern
- filter
- subfilter
- length
- 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.)
- Pending
Links
- 238000003491 array Methods 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 47
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims abstract description 57
- 230000011218 segmentation Effects 0.000 claims abstract description 44
- 238000004590 computer program Methods 0.000 claims description 19
- 238000001914 filtration Methods 0.000 claims description 8
- 238000010030 laminating Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 2
- 230000010349 pulsation Effects 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 16
- 238000005520 cutting process Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- FGRBYDKOBBBPOI-UHFFFAOYSA-N 10,10-dioxo-2-[4-(N-phenylanilino)phenyl]thioxanthen-9-one Chemical compound O=C1c2ccccc2S(=O)(=O)c2ccc(cc12)-c1ccc(cc1)N(c1ccccc1)c1ccccc1 FGRBYDKOBBBPOI-UHFFFAOYSA-N 0.000 description 1
- 240000008005 Crotalaria incana Species 0.000 description 1
- 210000001367 artery Anatomy 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 210000003462 vein Anatomy 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及模型构建领域,在卷积步长不为1时根据预设规则分割滤波器和特征图,以将该卷积等效为步长为1的卷积以适配于脉动阵列。具体公开了基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质,该方法包括:获取卷积滤波器的卷积参数;若卷积步长不为1且卷积滤波器的尺寸大于1×1,根据预设的滤波器分割规则从卷积滤波器分割出若干子滤波器;获取待卷积特征图并根据预设的特征图分割规则从待卷积特征图分割出若干特征子图;基于脉动阵列,根据各子滤波器对各自对应的特征子图进行卷积计算,卷积计算的步长为1;将各子滤波器对应的卷积计算结果进行叠加,并将叠加的结果作为卷积滤波器对待卷积特征图卷积计算的结果进行输出。
Description
技术领域
本申请涉及神经网络技术领域,尤其涉及一种基于脉动阵列的神经网络加 速方法、装置、计算机设备及存储介质。
背景技术
常用的神经网络最主要的部分就是卷积的计算,卷积计算中常常会碰到卷 积滤波器不等于1的情况,在这种情况下,主流的一些神经网络计算库,例如 CUDNN(NVIDIA的深度网络计算库)在计算这种卷积的时候会显著的变慢。 一些深度学习加速器例如现场可编程门阵列(Field-Programmable Gate Array, FPGA),专用网络处理器(network processunits,NPU)等在卷积部分通常会用 脉动阵列的结构实现,此种结构对于卷积滤波器的卷积滤波器不等于1的情况 非常不友好。
现有技术一般通过先计算卷积步长为1时的卷积结果,然后下采样丢弃不 需要的卷积结果以得到特定卷积步长的特征图,这样做显然会浪费计算和调度 资源,同样会使得卷积计算变慢。
发明内容
本申请实施例提供一种基于脉动阵列的神经网络加速方法、装置、计算机 设备及存储介质,能够较佳地解决步长不为1的卷积计算会浪费脉动阵列计算 和调度资源的问题。
第一方面,本申请提供了一种基于脉动阵列的神经网络加速方法,所述方 法包括:
获取卷积滤波器的卷积参数,所述卷积参数包括卷积步长和所述卷积滤波 器的尺寸;
若所述卷积步长不为1且所述卷积滤波器的尺寸大于1×1,根据预设的滤 波器分割规则从所述卷积滤波器分割出若干子滤波器,各所述子滤波器的尺寸 小于所述卷积滤波器的尺寸;
获取待卷积特征图并根据预设的特征图分割规则从所述待卷积特征图分割 出若干特征子图,所述若干特征子图与所述若干子滤波器一一对应;
基于脉动阵列,根据各所述子滤波器对各自对应的特征子图进行卷积计算, 卷积计算的步长为1;
将各所述子滤波器对应的卷积计算结果进行叠加,并将叠加的结果作为所 述卷积滤波器对所述待卷积特征图卷积计算的结果进行输出。
第二方面,本申请提供了一种基于脉动阵列的神经网络加速装置,所述装 置包括:
卷积参数获取模块,用于获取卷积滤波器的卷积参数,所述卷积参数包括 卷积步长和所述卷积滤波器的尺寸;
滤波器分割模块,用于若所述卷积步长不为1且所述卷积滤波器的尺寸大 于1×1,根据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器, 各所述子滤波器的尺寸小于所述卷积滤波器的尺寸;
特征图分割模块,用于获取待卷积特征图并根据预设的特征图分割规则从 所述待卷积特征图分割出若干特征子图,所述若干特征子图与所述若干子滤波 器一一对应;
卷积模块,用于基于脉动阵列,根据各所述子滤波器对各自对应的特征子 图进行卷积计算,卷积计算的步长为1;
叠加模块,用于将各所述子滤波器对应的卷积计算结果进行叠加,并将叠 加的结果作为所述卷积滤波器对所述待卷积特征图卷积计算的结果进行输出。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括存储器和 处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机 程序并在执行所述计算机程序时实现上述的基于脉动阵列的神经网络加速方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储 介质存储有计算机程序,若所述计算机程序被处理器执行,实现上述的基于脉 动阵列的神经网络加速方法。
本申请公开了一种基于脉动阵列的神经网络加速方法、装置、设备及存储 介质,通过在卷积步长不为1时根据预设的滤波器分割规则从卷积滤波器分割 出若干子滤波器,以及根据预设的特征图分割规则从待卷积特征图分割出若干 特征子图实现可以以卷积步长为1执行卷积计算,各子滤波器对应的卷积计算 结果进行叠加后的叠加结果与根据原卷积滤波器对待卷积特征图执行的卷积步 长不为1的卷积计算结果相同,即分割操作前后的两种卷积计算是等价的;但 是由于分割操作后卷积步长为1,可以更充分的利用脉动阵列的计算能力。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需 要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些 实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可 以根据这些附图获得其他的附图。
图1为本申请一实施例的基于脉动阵列的神经网络加速方法的流程示意图;
图2为本申请另一实施例的基于脉动阵列的神经网络加速方法的流程示意 图;
图3为卷积步长为2且卷积滤波器尺寸为2×2时分割卷积滤波器的示意图;
图4为卷积步长为2且卷积滤波器尺寸为2×2时分割待卷积特征图的示意 图;
图5为图1中分割待卷积特征图一实施方式的子流程示意图;
图6为分割补零后的待卷积特征图的示意图;
图7为脉动阵列的结构示意图;
图8为脉动阵列进行卷积计算的示意图;
图9为图1中基于脉动阵列进行卷积计算的子流程示意图;
图10为本申请再一实施例的基于脉动阵列的神经网络加速方法的流程示意 图;
图11为卷积步长为2且卷积滤波器尺寸为3×3时分割卷积滤波器的示意 图;
图12为卷积步长为2且卷积滤波器尺寸为3×3时分割卷积滤波器的子流 程示意图;
图13为卷积步长为2且卷积滤波器尺寸为3×3时分割待卷积特征图的示 意图;
图14为本申请又一实施例的基于脉动阵列的神经网络加速方法的流程示意 图;
图15为卷积步长为3且卷积滤波器尺寸为3×3时分割卷积滤波器的示意 图;
图16为卷积步长为3且卷积滤波器尺寸为3×3时分割待卷积特征图的子 流程示意图;
图17为卷积步长为3且卷积滤波器尺寸为3×3时分割待卷积特征图的示 意图;
图18为根据神经网络加速方法对深度卷积神经网络下采样的拓扑结构进行 等价变换的示意图;
图19为本申请实施例的基于脉动阵列的神经网络加速装置的结构示意图;
图20为本申请另一实施例的基于脉动阵列的神经网络加速装置的结构示意 图;
图21为本申请一实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部 的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤, 也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部 分合并,因此实际执行的顺序有可能根据实际情况改变。另外,虽然在装置示 意图中进行了功能模块的划分,但是在某些情况下,可以以不同于装置示意图 中的模块划分。
本申请的实施例提供了一种基于脉动阵列的神经网络加速方法、装置、设 备及存储介质。其中,该基于脉动阵列的神经网络加速方法可以应用于终端或 服务器中,以实现加速基于脉动阵列的神经网络的训练或推理。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下, 下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请的实施例提供的一种基于脉动阵列的神经网络加 速方法的流程示意图。
如图1所示,基于脉动阵列的神经网络加速方法包括以下步骤:
步骤S110、获取卷积滤波器的卷积参数。
其中,所述卷积参数包括卷积步长和所述卷积滤波器的尺寸。
滤波器filter,又称内核kernel、特征检测器(feature detector),在输入的图像或特征图上滑动滤波器并计算点乘即为卷积操作,卷积操作的输出的矩阵叫 做卷积特征(Convolved Feature)、激活图(Activation Map)或者特征图(Feature Map)。
示例性的,在神经网络中的神经元进行卷积操作前,先获取预先存储的或 者初始化的卷积滤波器的卷积参数。
在本实施例中,卷积参数包括卷积步长stride和所述卷积滤波器的尺寸,即 卷积滤波器的高度h和宽度w;在另一些实施例中,卷积参数还包括输入通道 数和/或输出通道数;其中输入通道数in depth是由待卷积特征图的通道数所决 定的,输出通道数outdepth等于卷积滤波器的个数,可以决定卷积结束后输出 特征图的通道数。
基于脉动阵列的神经网络加速方法可以用于输入通道数等于1或大于1的 场景,也可用于输出通道数等于1或大于1的场景。
步骤S120、若所述卷积步长不为1且所述卷积滤波器的尺寸大于1×1,根 据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器。
其中,各所述子滤波器的尺寸小于所述卷积滤波器的尺寸。
一些深度学习加速器例如FPGA,专用NPU等在卷积部分通常会用脉动阵 列的结构实现,但是这种结构对于卷积步长不等于1的情况非常不友好;本实 施例将尺寸大于1×1卷积滤波器分割为若干子滤波器,以使得各子滤波器分别 以等于1的卷积步长执行卷积操作,从而充分利用脉动阵列结构的性能。
在一些实施例中,如图2和图3所示,步骤S120若所述卷积步长不为1且 所述卷积滤波器的尺寸大于1×1,根据预设的滤波器分割规则从所述卷积滤波 器分割出若干子滤波器,具体包括:
步骤S121、若所述卷积步长为2且所述卷积滤波器的尺寸为2×2,从所述 卷积滤波器分割出4个子滤波器,各所述子滤波器的尺寸为1×1。
如图3所示,某卷积操作对应的卷积参数为[6 6 2 2],即输入通道数in depth 为6,输出通道数out depth等于6,6个卷积滤波器Kernel Tenseor的尺寸均为2 ×2。
如图3所示,将每个2×2的卷积滤波器分别分割为4个1×1的子滤波器。 以第一个卷积滤波器分割的4个子滤波器为例,其中第一个子滤波器包括所述 卷积滤波器奇数行奇数列的权值w1,第二个子滤波器包括所述卷积滤波器奇数 行偶数列的权值w2,第三个子滤波器包括所述卷积滤波器偶数行奇数列的权值 w3,第四个子滤波器包括所述卷积滤波器偶数行偶数列的权值w4。
具体的,将卷积滤波器第一行第一列的权值分配给第一个1×1的子滤波器, 将卷积滤波器第一行第二列的权值分配给第二个1×1的子滤波器,将卷积滤波 器第二行第一列的权值分配给第三个1×1的子滤波器,将卷积滤波器第二行第 二列的权值分配给第四个1×1的子滤波器。
步骤S130、获取待卷积特征图并根据预设的特征图分割规则从所述待卷积 特征图分割出若干特征子图。
其中,所述若干特征子图与所述若干子滤波器一一对应。
示例性的,待卷积特征图的通道数可以等于1或大于1,待卷积特征图的通 道数可以决定相应卷积滤波器卷积参数中的输入通道数。
在一些实施例中,如图2和图4所示,若所述卷积步长为2且所述卷积滤 波器的尺寸为2×2,步骤S130获取待卷积特征图并根据预设的特征图分割规则 从所述待卷积特征图分割出若干特征子图,具体包括:
步骤S1311、将所述待卷积特征图奇数行奇数列的数值分配至第一个特征子 图的相应位置。
步骤S1312、将所述待卷积特征图奇数行偶数列的数值分配至第二个特征子 图的相应位置。
步骤S1313、将所述待卷积特征图偶数行奇数列的数值分配至第三个特征子 图的相应位置。
步骤S1314、将所述待卷积特征图偶数行偶数列的数值分配至第四个特征子 图的相应位置。
示例性的,待卷积特征图中同一行的数值在各特征子图中也位于同一行, 待卷积特征图中同一列的数值在各特征子图中也位于同一列。
如图4所示,获取到的卷积特征图input Tensor是[1 6 4 4]的卷积特征图, 该待卷积特征图的通道数为6,宽和高均为4。根据预设的分割特征从所述待卷 积特征图分割出了4个特征子图。
在一些实施例中,如图5所示,步骤S130获取待卷积特征图并根据预设的 特征图分割规则从所述待卷积特征图分割出若干特征子图具体包括:
步骤S131、获取待卷积特征图。
示例性的,获取的卷积特征图如图6所示。
步骤S132、若获取的待卷积特征图的长或宽不是所述卷积步长的整数倍, 对所述待卷积特征图的预设位置进行补零以使补零后的待卷积特征图的长或宽 是所述卷积步长的整数倍。
在本实施例中,获取的卷积特征图的长、宽均为3,示例性的在该卷积特征 图的右侧和下方补零padding,使得补零后的待卷积特征图的长、宽为4。
步骤S133、根据预设的特征图分割规则从补零后的待卷积特征图分割出若 干特征子图。
如图6所示,根据上述步骤S1311-步骤S1314从补零后的待卷积特征图分 割出了4个特征子图。
在一些实施例中,待卷积特征图的结构为NCHW,如[1 6 4 4],N代表数 量,C代表通道数channel,H代表高度,W代表宽度;因此实例数batchsize=1, 通道数channel=6,待卷积特征图的高度H=4,待卷积特征图的宽度W=4时, 即待卷积张量的数量为1,有6个通道,各通道均为一个待卷积特征图。可以根 据先分割、卷积同一数量编号下不同通道的待卷积特征图,然后分割、卷积下 一数量编号下不同通道的待卷积特征图。
步骤S140、基于脉动阵列,根据各所述子滤波器对各自对应的特征子图进 行卷积计算,卷积计算的步长为1。
脉动阵列(Systolic Array)核心概念就是让数据在运算单元的阵列中进行流动,减少访存的次数,并且使得结构更加规整,布线更加统一,提高频率。
在一些实施例中,如图7所示,脉动阵列Systolic Array包括L×L个处理 单元PE,所述脉动阵列连接于权值寄存器filter buffer、输入寄存器in buffer和 输出寄存器outbuffer。每行处理单元PE的左侧、每列处理单元PE的上侧都设 有先进先出寄存器FIFO。滤波器的权值通过先进先出寄存器FIFO存储并传输 给同一行的所有处理单元PE,第一行和第一列的处理单元PE接收来自输入寄 存器中待卷积特征图的数据,并且第一行和第一列的处理单元PE均向各自右下 角的处理单元PE传输来自待卷积特征图的数据。这样的设计最大化了数据的复 用。
示例性的,如图8所示,脉动阵列根据一个3×3滤波器W对一个5×5的 特征图X进行二维卷积。
假设滤波器W和特征图X有以下形式:
其中,wi和xj分别代表滤波器W和特征图X的某一行数据,则最后一行的 三个处理单元PE输出三行卷积结果:
其中*表示一维卷积计算。
在一些实施例中,如图9所示,步骤S140基于脉动阵列,根据各所述子滤 波器对各自对应的特征子图进行卷积计算,具体包括:
步骤S141、将所述子滤波器的权值加载至连接于所述脉动阵列的权值寄存 器中。
示例性的,将子滤波器的权值加载至权值寄存器filter buffer中,子滤波器 的权值通过先进先出寄存器FIFO存储并传输给同一行的处理单元PE。
步骤S142、将所述子滤波器对应的特征子图加载至连接于所述脉动阵列的 输入寄存器中。
示例性的,将与子滤波器对应的特征子图加载至输入寄存器in buffer中, 脉动阵列第一行和第一列的处理单元PE接收来自输入寄存器in buffer中特征子 图的数据。
步骤S143、获取所述脉动阵列卷积计算后的输出结果。
示例性的,脉动阵列第一行和第一列的处理单元PE均向各自右下角的处理 单元PE传输来自特征子图的数据;最后一行的处理单元PE输出所述子滤波器 对对应的特征子图进行卷积计算,卷积步长为1的卷积结果。
如图3所示,第一个子滤波器的权值为w1,对图4中与其对应的第一个特 征子图进行卷积计算;第二个子滤波器的权值为w2,对第二个特征子图进行卷 积计算;第三个子滤波器的权值为w3,对第三个特征子图进行卷积计算;第四 个子滤波器的权值为w4,对第四个特征子图进行卷积计算。第一至第四个子滤 波器对应的卷积计算的结果如下:
步骤S150、将各所述子滤波器对应的卷积计算结果进行叠加,并将叠加的 结果作为所述卷积滤波器对所述待卷积特征图卷积计算的结果进行输出。
示例性的,将4个子滤波器对应的卷积计算结果进行叠加,得到:
如果直接根据图3左侧的卷积滤波器对图4左侧的卷积特征图以卷积步长 为2进行卷积计算,卷积计算的结果为:
因此,本实施例的基于脉动阵列的神经网络加速方法,通过在卷积步长不 为1时根据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器,以 及根据预设的特征图分割规则从所述待卷积特征图分割出若干特征子图实现可 以以卷积步长为1执行卷积计算,各子滤波器对应的卷积计算结果进行叠加后 的叠加结果与根据原卷积滤波器对待卷积特征图执行的卷积步长不为1的卷积 计算结果相同,即分割操作前后的两种卷积计算是等价的;因此叠加的结果可 以作为所述卷积滤波器对所述待卷积特征图卷积计算的结果进行输出,以进行 后续的处理如再一次卷积、池化、分类等;但是由于分割操作后卷积步长为1, 可以更充分的利用脉动阵列的计算能力。
示例性的,如图10和图11所示,步骤S120若所述卷积步长不为1且所述 卷积滤波器的尺寸大于1×1,根据预设的滤波器分割规则从所述卷积滤波器分 割出若干子滤波器,具体包括:
步骤S122、若所述卷积步长为2且所述卷积滤波器的尺寸为3×3,从所述 卷积滤波器分割出4个子滤波器,各所述子滤波器的尺寸为2×2。
其中第一个子滤波器包括所述卷积滤波器奇数行奇数列的权值,第二个子 滤波器包括所述卷积滤波器奇数行偶数列的权值,第三个子滤波器包括所述卷 积滤波器偶数行奇数列的权值,第四个子滤波器包括所述卷积滤波器偶数行偶 数列的权值。
在一些实施例中,卷积滤波器kernel(filter)的尺寸无法整除卷积步长(stride), 可以通过在卷积滤波器的预设位置进行补零以使补零后的卷积滤波器的长或宽 是所述卷积步长的整数倍。在本实施例中,卷积滤波器的尺寸为3×3,卷积步 长为2,卷积滤波器的尺寸无法整除卷积步长,可以通过补零操作以使补零后的 卷积滤波器的长或宽是所述卷积步长的整数倍,从而使卷积滤波器可以根据预 设的滤波器分割规则分割出若干子滤波器。
具体的,如图11和图12所示,所述若所述卷积步长为2且所述卷积滤波 器的尺寸为3×3,从所述卷积滤波器分割出4个子滤波器,各所述子滤波器的 尺寸为2×2,具体包括:
步骤S11、将所述卷积滤波器奇数行奇数列的权值分配至第一个子滤波器。
步骤S12、将所述卷积滤波器奇数行偶数列的权值分配至第二个子滤波器的 第一列,并以0填充所述第二个子滤波器的第二列。
步骤S13、将所述卷积滤波器偶数行奇数列的权值分配至第三个子滤波器的 第一行,并以0填充所述第三个子滤波器的第二行。
步骤S14、将所述卷积滤波器偶数行偶数列的权值分配至第四个子滤波器的 第一行第一列,并以0填充所述第四个子滤波器的其余位置。
在本实施例中,如图10和图13所示,若所述卷积步长为2且所述卷积滤 波器的尺寸为3×3,步骤S130获取待卷积特征图并根据预设的特征图分割规则 从所述待卷积特征图分割出若干特征子图,具体包括:
步骤S1321、将所述待卷积特征图奇数行奇数列的数值分配至第一个特征子 图的相应位置。
步骤S1322、将所述待卷积特征图奇数行偶数列的数值分配至第二个特征子 图的相应位置。
步骤S1323、将所述待卷积特征图偶数行奇数列的数值分配至第三个特征子 图的相应位置。
步骤S1324、将所述待卷积特征图偶数行偶数列的数值分配至第四个特征子 图的相应位置。
卷积步长为2且所述卷积滤波器的尺寸为3×3时,根据预设的特征图分割 规则从所述待卷积特征图分割出4个特征子图;如果待卷积特征图的通道数为1, 则分割后的通道数为4。
在一些实施例中,如图14和图15所示,步骤S120若所述卷积步长不为1 且所述卷积滤波器的尺寸大于1×1,根据预设的滤波器分割规则从所述卷积滤 波器分割出若干子滤波器,具体包括:
步骤S123、若所述卷积步长为3且所述卷积滤波器的尺寸为3×3,从所述 卷积滤波器分割出9个子滤波器,各所述子滤波器的尺寸为1×1且分别包括所 述卷积滤波器9个权值中的一个。
示例性的,将卷积滤波器第一行第一列的权值分配给第一个1×1的子滤波 器,将卷积滤波器第一行第二列的权值分配给第二个1×1的子滤波器,将卷积 滤波器第一行第三列的权值分配给第三个1×1的子滤波器,将卷积滤波器第二 行第一列的权值分配给第四个1×1的子滤波器,将卷积滤波器第二行第二列的 权值分配给第五个1×1的子滤波器,以此类推。
在本实施例中,如图16和图17所示,若所述卷积步长为3且所述卷积滤 波器的尺寸为3×3,步骤S130获取待卷积特征图并根据预设的特征图分割规则 从所述待卷积特征图分割出若干特征子图,具体包括:
步骤S1331、将所述待卷积特征图第3n+1行第3n+1列的数值分配至第一 个特征子图的相应位置。其中n为自然数。
步骤S1332、将所述待卷积特征图第3n+1行第3n+2列的数值分配至第二 个特征子图的相应位置。
步骤S1333、将所述待卷积特征图第3n+1行第3n+3列的数值分配至第三 个特征子图的相应位置。
步骤S1334、将所述待卷积特征图第3n+2行第3n+1列的数值分配至第四 个特征子图的相应位置。
步骤S1335、将所述待卷积特征图第3n+2行第3n+2列的数值分配至第五 个特征子图的相应位置。
步骤S1336、将所述待卷积特征图第3n+2行第3n+3列的数值分配至第六 个特征子图的相应位置。
步骤S1337、将所述待卷积特征图第3n+3行第3n+1列的数值分配至第七 个特征子图的相应位置。
步骤S1338、将所述待卷积特征图第3n+3行第3n+2列的数值分配至第八 个特征子图的相应位置。
步骤S1339、将所述待卷积特征图第3n+3行第3n+3列的数值分配至第九 个特征子图的相应位置。
示例性的,如图17所示,获取到的待卷积特征图的长宽均为8,不是所述 卷积步长,即3的整数倍,则对所述待卷积特征图的预设位置进行补零以使补 零后的待卷积特征图的长或宽是所述卷积步长的整数倍;然后根据预设的特征 图分割规则从补零后的待卷积特征图分割出9个特征子图。
本申请的基于脉动阵列的神经网络加速方法通过在卷积步长不为1时根据 预设的滤波器分割规则从卷积滤波器分割出若干子滤波器,以及根据预设的特 征图分割规则从待卷积特征图分割出若干特征子图实现可以以卷积步长为1执 行卷积计算。可以很好的与一些特殊的专用深度网络加速器例如FPGA,NPU 等底层都会采用的脉动阵列(SystolicArray)的结构适配,可以节省计算资源, 而且这种分割方法本身就是一种特殊的计算逻辑,可以集成进入各种深度学习 的框架中。本申请提供的分割变换方法,并不影响深度网络本身的前传和后传 路径,而且因为节省了计算资源,实际上提升了训练和推理的速度。
在一些实施例中,如图18所示为根据本申请的基于脉动阵列的神经网络加 速方法对传统的深度卷积神经网络ResNet50的下采样的拓扑结构进行分割变换 的示意图;箭头左侧为传统的深度卷积神经网络ResNet50的下采样的拓扑结构 部分的简化模型,箭头左侧为经过分割变换等价变换后的计算拓扑结构。
相较于传统的深度卷积神经网络的计算图结构,经过分割变换等价变换后 的计算拓扑结构如下的优势:
1.省去了传统ResNet50在左侧的两个1×1的映射卷积,减少计算资源。
2.传统ResNet50右侧的残差分量部分,可以转换为直接恒等映射((IdentityMapping),有利于残差的传播。
本申请的基于脉动阵列的神经网络加速方法可以应用在很多网络模型中, 例如densNet,或者shakeshake网络等等,只要存于在下采样部分的网络,都可 以采用本申请提供的神经网络加速方法做变换后,再进行计算训练等。
请参阅图19,图19是本申请一实施例提供的基于脉动阵列的神经网络加速 装置的结构示意图,该基于脉动阵列的神经网络加速装置可以配置于服务器中, 用于执行前述的基于脉动阵列的神经网络加速方法。
如图19所示,该基于脉动阵列的神经网络加速装置,包括:
卷积参数获取模块110,用于获取卷积滤波器的卷积参数,所述卷积参数包 括卷积步长和所述卷积滤波器的尺寸。
滤波器分割模块120,用于若所述卷积步长不为1且所述卷积滤波器的尺寸 大于1×1,根据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器, 各所述子滤波器的尺寸小于所述卷积滤波器的尺寸。
特征图分割模块130,用于获取待卷积特征图并根据预设的特征图分割规则 从所述待卷积特征图分割出若干特征子图,所述若干特征子图与所述若干子滤 波器一一对应。
卷积模块140,用于基于脉动阵列,根据各所述子滤波器对各自对应的特征 子图进行卷积计算,卷积计算的步长为1。
叠加模块150,用于将各所述子滤波器对应的卷积计算结果进行叠加,并将 叠加的结果作为所述卷积滤波器对所述待卷积特征图卷积计算的结果进行输出。
在一些实施例中,如图20所示,特征图分割模块130包括:
特征图获取子模块131,用于获取待卷积特征图。
补零子模块132,用于若获取的待卷积特征图的长或宽不是所述卷积步长的 整数倍,对所述待卷积特征图的预设位置进行补零以使补零后的待卷积特征图 的长或宽是所述卷积步长的整数倍。
特征图分割子模块133,用于根据预设的特征图分割规则从补零后的待卷积 特征图分割出若干特征子图。
在一些实施例中,如图20所示,卷积模块140包括:
权值加载子模块141,用于将所述子滤波器的权值加载至连接于所述脉动阵 列的权值寄存器中;
子图加载子模块142,用于将所述子滤波器对应的特征子图加载至连接于所 述脉动阵列的输入寄存器中。
输出子模块143,用于获取所述脉动阵列卷积计算后的输出结果。
在一些实施例中,如图20所示,滤波器分割模块120包括第一滤波器分割 子模块121,用于若所述卷积步长为2且所述卷积滤波器的尺寸为2×2,从所 述卷积滤波器分割出4个子滤波器,各所述子滤波器的尺寸为1×1;其中第一 个子滤波器包括所述卷积滤波器奇数行奇数列的权值,第二个子滤波器包括所 述卷积滤波器奇数行偶数列的权值,第三个子滤波器包括所述卷积滤波器偶数 行奇数列的权值,第四个子滤波器包括所述卷积滤波器偶数行偶数列的权值。
特征图分割模块130包括第一特征图分割子模块1301,用于若所述卷积步 长为2且所述卷积滤波器的尺寸为2×2,将所述待卷积特征图奇数行奇数列的 数值分配至第一个特征子图的相应位置,将所述待卷积特征图奇数行偶数列的 数值分配至第二个特征子图的相应位置,将所述待卷积特征图偶数行奇数列的 数值分配至第三个特征子图的相应位置,将所述待卷积特征图偶数行偶数列的 数值分配至第四个特征子图的相应位置。
在一些实施例中,如图20所示,滤波器分割模块120包括第二滤波器分割 子模块122,用于若所述卷积步长为2且所述卷积滤波器的尺寸为3×3,从所 述卷积滤波器分割出4个子滤波器,各所述子滤波器的尺寸为2×2;其中第一 个子滤波器包括所述卷积滤波器奇数行奇数列的权值,第二个子滤波器包括所 述卷积滤波器奇数行偶数列的权值,第三个子滤波器包括所述卷积滤波器偶数 行奇数列的权值,第四个子滤波器包括所述卷积滤波器偶数行偶数列的权值。
特征图分割模块130包括第二特征图分割子模块1302,用于若所述卷积步 长为2且所述卷积滤波器的尺寸为3×3,将所述待卷积特征图奇数行奇数列的 数值分配至第一个特征子图的相应位置,将所述待卷积特征图奇数行偶数列的 数值分配至第二个特征子图的相应位置,将所述待卷积特征图偶数行奇数列的 数值分配至第三个特征子图的相应位置,将所述待卷积特征图偶数行偶数列的 数值分配至第四个特征子图的相应位置。
在一些实施例中,如图20所示,滤波器分割模块120包括第三滤波器分割 子模块123,用于若所述卷积步长为3且所述卷积滤波器的尺寸为3×3,从所 述卷积滤波器分割出9个子滤波器,各所述子滤波器的尺寸为1×1且分别包括 所述卷积滤波器9个权值中的一个。
特征图分割模块130包括第三特征图分割子模块1303,用于若所述卷积步 长为3且所述卷积滤波器的尺寸为3×3,将所述待卷积特征图第3n+1行第3n+1 列的数值分配至第一个特征子图的相应位置,将所述待卷积特征图第3n+1行第 3n+2列的数值分配至第二个特征子图的相应位置,将所述待卷积特征图第3n+1 行第3n+3列的数值分配至第三个特征子图的相应位置,将所述待卷积特征图第 3n+2行第3n+1列的数值分配至第四个特征子图的相应位置,将所述待卷积特征 图第3n+2行第3n+2列的数值分配至第五个特征子图的相应位置,将所述待卷 积特征图第3n+2行第3n+3列的数值分配至第六个特征子图的相应位置,将所 述待卷积特征图第3n+3行第3n+1列的数值分配至第七个特征子图的相应位置,将所述待卷积特征图第3n+3行第3n+2列的数值分配至第八个特征子图的相应 位置,将所述待卷积特征图第3n+3行第3n+3列的数值分配至第九个特征子图 的相应位置,其中n为自然数。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便 和简洁,上述描述的装置和各模块、单元的具体工作过程,可以参考前述方法 实施例中的对应过程,在此不再赘述。
本申请的方法、装置可用于众多通用或专用的计算系统环境或配置中。例 如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处 理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、 小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
示例性的,上述的方法、装置可以实现为一种计算机程序的形式,该计算 机程序可以在如图21所示的计算机设备上运行。
请参阅图21,图21是本申请实施例提供的一种计算机设备的结构示意图。 该计算机设备可以是服务器或终端。
参阅图21,该计算机设备包括通过系统总线连接的处理器、存储器和网络 接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序 指令,该程序指令被执行时,可使得处理器执行任意一种基于脉动阵列的神经 网络加速方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机 程序被处理器执行时,可使得处理器执行任意一种基于脉动阵列的神经网络加 速方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可 以理解,该计算机设备的结构,仅仅是与本申请方案相关的部分结构的框图, 并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备 可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的 部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编 程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、 分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处 理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程 序,以实现前述基于脉动阵列的神经网络加速方法的步骤。
示例性的,所述处理器用于运行存储在存储器中的计算机程序,以实现如 下步骤:
获取卷积滤波器的卷积参数,所述卷积参数包括卷积步长和所述卷积滤波 器的尺寸;
若所述卷积步长不为1且所述卷积滤波器的尺寸大于1×1,根据预设的滤 波器分割规则从所述卷积滤波器分割出若干子滤波器,各所述子滤波器的尺寸 小于所述卷积滤波器的尺寸;
获取待卷积特征图并根据预设的特征图分割规则从所述待卷积特征图分割 出若干特征子图,所述若干特征子图与所述若干子滤波器一一对应;
基于脉动阵列,根据各所述子滤波器对各自对应的特征子图进行卷积计算, 卷积计算的步长为1;
将各所述子滤波器对应的卷积计算结果进行叠加,并将叠加的结果作为所 述卷积滤波器对所述待卷积特征图卷积计算的结果进行输出。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本 申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申 请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式 体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、 光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器, 或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法, 如:
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序, 所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请 实施例提供的任一项基于脉动阵列的神经网络加速方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内 部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也 可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式 硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD) 卡,闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到 各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。 因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于脉动阵列的神经网络加速方法,其特征在于,包括:
获取卷积滤波器的卷积参数,所述卷积参数包括卷积步长和所述卷积滤波器的尺寸;
若所述卷积步长不为1且所述卷积滤波器的尺寸大于1×1,根据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器,各所述子滤波器的尺寸小于所述卷积滤波器的尺寸;
获取待卷积特征图并根据预设的特征图分割规则从所述待卷积特征图分割出若干特征子图,所述若干特征子图与所述若干子滤波器一一对应;
基于脉动阵列,根据各所述子滤波器对各自对应的特征子图进行卷积计算,卷积计算的步长为1;
将各所述子滤波器对应的卷积计算结果进行叠加,并将叠加的结果作为所述卷积滤波器对所述待卷积特征图卷积计算的结果进行输出。
2.如权利要求1所述的神经网络加速方法,其特征在于,所述获取待卷积特征图并根据预设的特征图分割规则从所述待卷积特征图分割出若干特征子图,具体包括:
获取待卷积特征图;
若获取的待卷积特征图的长或宽不是所述卷积步长的整数倍,对所述待卷积特征图的预设位置进行补零以使补零后的待卷积特征图的长或宽是所述卷积步长的整数倍;
根据预设的特征图分割规则从补零后的待卷积特征图分割出若干特征子图。
3.如权利要求2所述的神经网络加速方法,其特征在于,所述若所述卷积步长不为1且所述卷积滤波器的尺寸大于1,根据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器,具体包括:
若所述卷积步长为2且所述卷积滤波器的尺寸为2×2,从所述卷积滤波器分割出4个子滤波器,各所述子滤波器的尺寸为1×1;其中第一个子滤波器包括所述卷积滤波器奇数行奇数列的权值,第二个子滤波器包括所述卷积滤波器奇数行偶数列的权值,第三个子滤波器包括所述卷积滤波器偶数行奇数列的权值,第四个子滤波器包括所述卷积滤波器偶数行偶数列的权值;
若所述卷积步长为2且所述卷积滤波器的尺寸为2×2,所述获取待卷积特征图并根据预设的特征图分割规则从所述待卷积特征图分割出若干特征子图,具体包括:
将所述待卷积特征图奇数行奇数列的数值分配至第一个特征子图的相应位置,将所述待卷积特征图奇数行偶数列的数值分配至第二个特征子图的相应位置,将所述待卷积特征图偶数行奇数列的数值分配至第三个特征子图的相应位置,将所述待卷积特征图偶数行偶数列的数值分配至第四个特征子图的相应位置。
4.如权利要求2所述的神经网络加速方法,其特征在于,所述若所述卷积步长不为1且所述卷积滤波器的尺寸大于1,根据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器,具体包括:
若所述卷积步长为2且所述卷积滤波器的尺寸为3×3,从所述卷积滤波器分割出4个子滤波器,各所述子滤波器的尺寸为2×2;其中第一个子滤波器包括所述卷积滤波器奇数行奇数列的权值,第二个子滤波器包括所述卷积滤波器奇数行偶数列的权值,第三个子滤波器包括所述卷积滤波器偶数行奇数列的权值,第四个子滤波器包括所述卷积滤波器偶数行偶数列的权值;
若所述卷积步长为2且所述卷积滤波器的尺寸为3×3,所述获取待卷积特征图并根据预设的特征图分割规则从所述待卷积特征图分割出若干特征子图,具体包括:
将所述待卷积特征图奇数行奇数列的数值分配至第一个特征子图的相应位置,将所述待卷积特征图奇数行偶数列的数值分配至第二个特征子图的相应位置,将所述待卷积特征图偶数行奇数列的数值分配至第三个特征子图的相应位置,将所述待卷积特征图偶数行偶数列的数值分配至第四个特征子图的相应位置。
5.如权利要求4所述的神经网络加速方法,其特征在于,所述若所述卷积步长为2且所述卷积滤波器的尺寸为3×3,从所述卷积滤波器分割出4个子滤波器,各所述子滤波器的尺寸为2×2,具体包括:
将所述卷积滤波器奇数行奇数列的权值分配至第一个子滤波器;
将所述卷积滤波器奇数行偶数列的权值分配至第二个子滤波器的第一列,并以0填充所述第二个子滤波器的第二列;
将所述卷积滤波器偶数行奇数列的权值分配至第三个子滤波器的第一行,并以0填充所述第三个子滤波器的第二行;
将所述卷积滤波器偶数行偶数列的权值分配至第四个子滤波器的第一行第一列,并以0填充所述第四个子滤波器的其余位置。
6.如权利要求2所述的神经网络加速方法,其特征在于,所述若所述卷积步长不为1且所述卷积滤波器的尺寸大于1,根据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器,具体包括:
若所述卷积步长为3且所述卷积滤波器的尺寸为3×3,从所述卷积滤波器分割出9个子滤波器,各所述子滤波器的尺寸为1×1且分别包括所述卷积滤波器9个权值中的一个;
若所述卷积步长为3且所述卷积滤波器的尺寸为3×3,所述获取待卷积特征图并根据预设的特征图分割规则从所述待卷积特征图分割出若干特征子图,具体包括:
将所述待卷积特征图第3n+1行第3n+1列的数值分配至第一个特征子图的相应位置,将所述待卷积特征图第3n+1行第3n+2列的数值分配至第二个特征子图的相应位置,将所述待卷积特征图第3n+1行第3n+3列的数值分配至第三个特征子图的相应位置,将所述待卷积特征图第3n+2行第3n+1列的数值分配至第四个特征子图的相应位置,将所述待卷积特征图第3n+2行第3n+2列的数值分配至第五个特征子图的相应位置,将所述待卷积特征图第3n+2行第3n+3列的数值分配至第六个特征子图的相应位置,将所述待卷积特征图第3n+3行第3n+1列的数值分配至第七个特征子图的相应位置,将所述待卷积特征图第3n+3行第3n+2列的数值分配至第八个特征子图的相应位置,将所述待卷积特征图第3n+3行第3n+3列的数值分配至第九个特征子图的相应位置,其中n为自然数。
7.如权利要求1-6中任一项所述的神经网络加速方法,其特征在于:所述基于脉动阵列,根据各所述子滤波器对各自对应的特征子图进行卷积计算,具体包括:
将所述子滤波器的权值加载至连接于所述脉动阵列的权值寄存器中;
将所述子滤波器对应的特征子图加载至连接于所述脉动阵列的输入寄存器中;
获取所述脉动阵列卷积计算后的输出结果。
8.一种基于脉动阵列的神经网络加速装置,其特征在于,包括:
卷积参数获取模块,用于获取卷积滤波器的卷积参数,所述卷积参数包括卷积步长和所述卷积滤波器的尺寸;
滤波器分割模块,用于若所述卷积步长不为1且所述卷积滤波器的尺寸大于1×1,根据预设的滤波器分割规则从所述卷积滤波器分割出若干子滤波器,各所述子滤波器的尺寸小于所述卷积滤波器的尺寸;
特征图分割模块,用于获取待卷积特征图并根据预设的特征图分割规则从所述待卷积特征图分割出若干特征子图,所述若干特征子图与所述若干子滤波器一一对应;
卷积模块,用于基于脉动阵列,根据各所述子滤波器对各自对应的特征子图进行卷积计算,卷积计算的步长为1;
叠加模块,用于将各所述子滤波器对应的卷积计算结果进行叠加,并将叠加的结果作为所述卷积滤波器对所述待卷积特征图卷积计算的结果进行输出。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1-7中任一项所述的基于脉动阵列的神经网络加速方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:若所述计算机程序被处理器执行,实现如权利要求1-7中任一项所述的基于脉动阵列的神经网络加速方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910268881.8A CN110135556A (zh) | 2019-04-04 | 2019-04-04 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
PCT/CN2019/103137 WO2020199476A1 (zh) | 2019-04-04 | 2019-08-28 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910268881.8A CN110135556A (zh) | 2019-04-04 | 2019-04-04 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110135556A true CN110135556A (zh) | 2019-08-16 |
Family
ID=67569234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910268881.8A Pending CN110135556A (zh) | 2019-04-04 | 2019-04-04 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110135556A (zh) |
WO (1) | WO2020199476A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826710A (zh) * | 2019-10-18 | 2020-02-21 | 南京大学 | 基于横向脉动阵列的rnn前向传播模型的硬件加速实现系统及方法 |
WO2020199476A1 (zh) * | 2019-04-04 | 2020-10-08 | 平安科技(深圳)有限公司 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
CN112766474A (zh) * | 2019-11-04 | 2021-05-07 | 北京地平线机器人技术研发有限公司 | 用于实现卷积运算的方法、装置、介质以及电子设备 |
CN112837208A (zh) * | 2019-11-22 | 2021-05-25 | 百度(美国)有限责任公司 | 改进ai引擎mac利用率的数据格式变换方法 |
WO2021114904A1 (zh) * | 2019-12-09 | 2021-06-17 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN113870273A (zh) * | 2021-12-02 | 2021-12-31 | 之江实验室 | 一种基于脉动阵列的神经网络加速器特征图分割方法 |
WO2022160703A1 (zh) * | 2021-01-29 | 2022-08-04 | 成都商汤科技有限公司 | 池化方法、芯片、设备和存储介质 |
CN116167425A (zh) * | 2023-04-26 | 2023-05-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
CN113033761B (zh) * | 2019-12-09 | 2024-05-14 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107564025A (zh) * | 2017-08-09 | 2018-01-09 | 浙江大学 | 一种基于深度神经网络的电力设备红外图像语义分割方法 |
CN108491926A (zh) * | 2018-03-05 | 2018-09-04 | 东南大学 | 一种基于对数量化的低比特高效深度卷积神经网络硬件加速设计方法、模块及系统 |
CN108875904A (zh) * | 2018-04-04 | 2018-11-23 | 北京迈格威科技有限公司 | 图像处理方法、图像处理装置和计算机可读存储介质 |
CN108875908A (zh) * | 2017-05-16 | 2018-11-23 | 三星电子株式会社 | 优化的神经网络输入步长方法及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268931B (zh) * | 2016-12-30 | 2022-10-25 | 华为技术有限公司 | 数据处理的方法、装置和系统 |
KR102442055B1 (ko) * | 2017-09-26 | 2022-09-13 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
CN107885700B (zh) * | 2017-12-29 | 2021-05-14 | 中国人民解放军国防科技大学 | 一种大规模矩阵卷积的多核实现方法 |
CN109934339B (zh) * | 2019-03-06 | 2023-05-16 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN110135556A (zh) * | 2019-04-04 | 2019-08-16 | 平安科技(深圳)有限公司 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
-
2019
- 2019-04-04 CN CN201910268881.8A patent/CN110135556A/zh active Pending
- 2019-08-28 WO PCT/CN2019/103137 patent/WO2020199476A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875908A (zh) * | 2017-05-16 | 2018-11-23 | 三星电子株式会社 | 优化的神经网络输入步长方法及设备 |
CN107564025A (zh) * | 2017-08-09 | 2018-01-09 | 浙江大学 | 一种基于深度神经网络的电力设备红外图像语义分割方法 |
CN108491926A (zh) * | 2018-03-05 | 2018-09-04 | 东南大学 | 一种基于对数量化的低比特高效深度卷积神经网络硬件加速设计方法、模块及系统 |
CN108875904A (zh) * | 2018-04-04 | 2018-11-23 | 北京迈格威科技有限公司 | 图像处理方法、图像处理装置和计算机可读存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020199476A1 (zh) * | 2019-04-04 | 2020-10-08 | 平安科技(深圳)有限公司 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
CN110826710A (zh) * | 2019-10-18 | 2020-02-21 | 南京大学 | 基于横向脉动阵列的rnn前向传播模型的硬件加速实现系统及方法 |
CN112766474B (zh) * | 2019-11-04 | 2024-03-22 | 北京地平线机器人技术研发有限公司 | 用于实现卷积运算的方法、装置、介质以及电子设备 |
CN112766474A (zh) * | 2019-11-04 | 2021-05-07 | 北京地平线机器人技术研发有限公司 | 用于实现卷积运算的方法、装置、介质以及电子设备 |
CN112837208A (zh) * | 2019-11-22 | 2021-05-25 | 百度(美国)有限责任公司 | 改进ai引擎mac利用率的数据格式变换方法 |
WO2021114904A1 (zh) * | 2019-12-09 | 2021-06-17 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN113033761A (zh) * | 2019-12-09 | 2021-06-25 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN113033761B (zh) * | 2019-12-09 | 2024-05-14 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
WO2022160703A1 (zh) * | 2021-01-29 | 2022-08-04 | 成都商汤科技有限公司 | 池化方法、芯片、设备和存储介质 |
CN113870273A (zh) * | 2021-12-02 | 2021-12-31 | 之江实验室 | 一种基于脉动阵列的神经网络加速器特征图分割方法 |
CN113870273B (zh) * | 2021-12-02 | 2022-03-25 | 之江实验室 | 一种基于脉动阵列的神经网络加速器特征图分割方法 |
CN116167425B (zh) * | 2023-04-26 | 2023-08-04 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
CN116167425A (zh) * | 2023-04-26 | 2023-05-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020199476A1 (zh) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110135556A (zh) | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 | |
KR102414583B1 (ko) | 머신 러닝을 수행하는 전자 장치 및 머신 러닝 수행 방법 | |
US11734006B2 (en) | Deep vision processor | |
CN105930902B (zh) | 一种神经网络的处理方法、系统 | |
CN106875013B (zh) | 用于多核优化循环神经网络的系统和方法 | |
CN110046700A (zh) | 深度神经网络的卷积层的硬件实现 | |
CN110050267A (zh) | 用于数据管理的系统和方法 | |
CN109375951A (zh) | 一种用于执行全连接层神经网络正向运算的装置和方法 | |
JP6927320B2 (ja) | 推論装置、畳み込み演算実行方法及びプログラム | |
CN108776833B (zh) | 一种数据处理方法、系统及计算机可读存储介质 | |
EP3869413A1 (en) | Pooling unit for deep learning acceleration background | |
US11238347B2 (en) | Data distribution in an array of neural network cores | |
CN114661480A (zh) | 深度学习任务资源分配方法和系统 | |
O'Leary et al. | Assignment and scheduling in parallel matrix factorization | |
Markidis et al. | Idle waves in high-performance computing | |
CN114358237A (zh) | 多核硬件中神经网络的实现方式 | |
KR102167211B1 (ko) | 합성곱 계층의 선택적 데이터 처리 방법 및 이를 이용한 뉴럴 프로세서 | |
Jordans et al. | Instruction-set architecture exploration strategies for deeply clustered vliw asips | |
CN114595811A (zh) | 用于执行深度学习操作的方法和设备 | |
CN113283593B (zh) | 一种卷积运算协处理器及基于该处理器的快速卷积方法 | |
US20230023545A1 (en) | Methods and systems for deep learning chip design generation | |
US20230332945A1 (en) | Method for calculating global illumination of three-dimensional space, apparatus, device, and storage medium | |
Hamilton | An Introduction to Parallel Programming | |
CN115328440A (zh) | 一种基于2d脉动阵列的通用稀疏矩阵乘法实现方法及装置 | |
Sousa et al. | Parallel image processing for transputers based systems |
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 |