CN112116071A - 神经网络计算方法、装置、可读存储介质以及电子设备 - Google Patents

神经网络计算方法、装置、可读存储介质以及电子设备 Download PDF

Info

Publication number
CN112116071A
CN112116071A CN202010931842.4A CN202010931842A CN112116071A CN 112116071 A CN112116071 A CN 112116071A CN 202010931842 A CN202010931842 A CN 202010931842A CN 112116071 A CN112116071 A CN 112116071A
Authority
CN
China
Prior art keywords
feature map
size
convolution
next layer
feature
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
Application number
CN202010931842.4A
Other languages
English (en)
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.)
Horizon Shanghai Artificial Intelligence Technology Co Ltd
Original Assignee
Horizon Shanghai Artificial Intelligence Technology Co Ltd
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 Horizon Shanghai Artificial Intelligence Technology Co Ltd filed Critical Horizon Shanghai Artificial Intelligence Technology Co Ltd
Priority to CN202010931842.4A priority Critical patent/CN112116071A/zh
Publication of CN112116071A publication Critical patent/CN112116071A/zh
Priority to US17/468,136 priority patent/US20220076097A1/en
Pending legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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

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)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Analysis (AREA)

Abstract

公开了一种神经网络计算方法,包括:在对神经网络的下一层进行卷积计算之前,确定处理器对所述神经网络的当前层进行计算时得到的第一特征图的尺寸;依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序;基于所述卷积计算顺序,执行下一层的卷积计算指令。本公开的示例性实施例通过省去第一特征图的存储和第二特征图的载入过程,减少层间的特征图数据访问开销,减少计算单元的闲置时间。

Description

神经网络计算方法、装置、可读存储介质以及电子设备
技术领域
本公开涉及神经网络计算领域,尤其涉及一种神经网络计算方法、装置、可读存储介质以及电子设备。
背景技术
深度神经网络专用加速器被设计用来高效的处理深度神经网络推理,它们通常被嵌入到设备的片上处理器系统(SoC)中。为了节省芯片面积开销和功耗,通常包含了片上缓存系统和规模较大的乘加阵列(MAC)。片上缓存的速度非常快但大小通常有限,无法缓存所有的特征图和权重数据。神经网络层的计算通常被拆分为若干小型的计算子任务,特征图也同时被切片为若干小的特征图,小到可以被片上缓存完全装下的程度。原始的特征图通常被存储在了空间较大但速度较慢的片外内存(DDR)中。在每个计算周期开始的时候,特征图的一部分首先被载入到片上缓存中,再进行计算,最后被保存回片外内存中,在对片外内存的数据进行读写时,计算单元是闲置的。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种神经网络计算方法、装置、可读存储介质以及电子设备;能够减少神经网络层间消耗,提高计算效率。
根据本公开的一个方面,提供了一种神经网络计算方法,包括:
在对神经网络的下一层进行卷积计算之前,确定处理器对所述神经网络的当前层进行计算时得到的第一特征图的尺寸;
依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序;
基于所述卷积计算顺序,执行下一层的卷积计算指令。
根据本公开的第二个方面,提供了一种神经网络计算装置,包括:
数据获取模块,用于在对神经网络的下一层进行卷积计算时,确定处理器对所述神经网络的当前层进行计算得到的第一特征图的尺寸;
任务排序模块,用于依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序;
计算执行模块,用于基于所述卷积计算顺序,执行下一层的卷积计算指令。
根据本公开的第三个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一所述的减少神经网络层间时延的方法。
根据本公开的第四个方面,提供了一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一所述的减少神经网络层间时延的方法。
本公开提供的四个技术方案,在对神经网络下一层进行卷积计算时,依据当前层输出的第一特征图尺寸和下一层所支持卷积的第二特征图尺寸,将下一层的卷积顺序进行调整,在下一层开始进行卷积计算时,首先获取片上缓存当前存储的特征图进行计算,从而,节省了下一层计算开始时从片外内存向片上缓存搬运特征图的步骤,能够节省计算时间,减少层间的特征图数据访问开销。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开所适用的场景图或者系统图。
图2是本公开一示例性实施例提供的神经网络计算方法的流程示意图。
图3是本公开另一示例性实施例提供的神经网络计算方法的第一特征图大于第二特征图时流程示意图。
图4是本公开另一示例性实施例提供的神经网络计算方法的第一特征图划分的示意图。
图5是本公开另一示例性实施例提供的神经网络计算方法的第一特征图小于第二特征图时流程示意图。
图6是本公开另一示例性实施例提供的神经网络计算方法的第一特征图与第二特征图合并的示意图。
图7是本公开另一示例性实施例提供的神经网络计算方法的第一特征图缩小尺寸的流程示意图。
图8是本公开另一示例性实施例提供的神经网络计算方法的第一特征图增大尺寸的流程示意图。
图9是本公开另一示例性实施例提供的神经网络计算方法的后续排序流程示意图。
图10a是现有技术中层间的特征图存储和载入的示意图。
图10b是申请另一示例性实施例提供的神经网络计算方法中第一特征图大于第二特征图时层间的特征图存储和载入的示意图。
图10c是申请另一示例性实施例提供的神经网络计算方法中第一特征图小于第二特征图时层间的特征图存储和载入的示意图。
图10d是申请另一示例性实施例提供的神经网络计算方法中第一特征图等于第二特征图时层间的特征图存储和载入的示意图。
图11是本公开一示例性实施例提供的神经网络计算装置的流程示意图。
图12是本公开另一示例性实施例提供的神经网络计算装置的任务排序模块示意图。
图13是本公开另一示例性实施例提供的神经网络计算装置的任务排序模块示意图。
图14是本公开另一示例性实施例提供的神经网络计算装置的任务排序模块示意图。
图15是本公开另一示例性实施例提供的神经网络计算装置的数据获取模块示意图。
图16是本公开另一示例性实施例提供的神经网络计算装置的数据获取模块示意图。
图17是本公开另一示例性实施例提供的神经网络计算装置的示意图。
图18是本公开另一示例性实施例提供的神经网络计算装置的示意图。
图19是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
申请概述
如上所述,由于对片外内存进行读写时会导致计算单元闲置,会造成资源浪费,因此,部分技术方案将计算模块和数据搬运模块功能进行分隔,在计算模块计算当前子任务时,数据搬运模块可以同步缓存下一子任务的数据,深度神经网络层内部的小型计算任务之间可以实现计算和数据搬运的交叠执行,但是,以上提到的拆分和优化方法目前的缺点是,只考虑了层内子任务的优化,层与层之间是互相独立的。在计算极深的深度神经网络时,计算的瓶颈可能在于层与层之间特征图数据访问开销无法被优化。
本公开中,是基于上述的问题,对神经网络下一层的卷积顺序进行调整,通过调整卷积顺序,使下一层在开始计算时,首先从片上缓存单元获取神经网络当前层输出的特征图,从而,减少层间的特征图数据访问开销。
具体来说,由于神经网络当前层输出的特征图可能与下一层所支持卷积的特征图的尺寸并不相同,因此,需要依据两者的尺寸对下一层的卷积顺序确定下一层的卷积顺序。
这样,能够使神经网络下一层在开始计算时从片上缓存获取特征图,而非从片外内存中获取特征图,从而能够减少层间的特征图数据访问开销,避免计算资源的闲置和浪费。
示例性系统
如图1所示是一种示例性的系统,如图中所示,由于片上缓存的存储量有限,并不能保存全部的原始特征图,L0层的原始特征图101在水平方向和竖直方向各分割一次,形成四个特征图,四个特征图依据从左到右从上到下的方式,分别为特征图1011,特征图1012,特征图1013和特征图1014;在计算过程中,依据从左到右,从上到下顺序依次载入和计算。以1011的计算过程为例,将特征图1011从片外内存104载入到片上缓存单元中的特征预留空间105,将卷积核102载入到片上缓存单元中的权重预留空间106。乘加阵列将特征预留空间中特征图1011与权重预留空间中的卷积核进行乘加计算后生成计算后的L1层的特征图1031,并存储在输出预留空间107内,最后再将输出预留空间内的特征图搬运至片外内存中。当对四个特征图全部计算完成后,将形成L1层的原始特征图103,此时L1层的原始特征图包含了四个特征图,即特征图1031,特征图1032,特征图1033和特征图1034。
示例性方法
图2是本公开一示例性实施例提供的神经网络计算方法,本实施例可应用在电子设备上,如图2所示,包括如下步骤:
步骤201,在对神经网络的下一层进行卷积计算时,确定处理器对所述神经网络的当前层进行计算得到的第一特征图的尺寸;
第一特征图尺寸是指在当前层进行计算后输出的特征图尺寸,在一些实施例中,第一特征图的尺寸是指图1中从输出预留空间中输出的特征图的尺寸。
步骤202,依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序;
第二特征图尺寸是指神经网络下一层进行卷积时所支持的输入尺寸,在一些实施例中,第二特征图是指L1层的原始特征图进行分割后的每一个特征图的尺寸。
步骤203,基于所述卷积计算顺序,执行下一层的卷积计算指令。
计算顺序是指对划分后的特征图进行卷积的顺序,在一些实施例中,可以将上述L0层作为神经网络前一层,将L1层作为神经网络下一层,神经网络下一层的卷积计算顺序可以首先计算神经网络前一层完成计算后存储在存储预留空间中的第一特征图,由于此时第一特征图还存储在片上缓存单元的存储预留空间中,尚未存储至片外内存中,因此,神经网络当前层的处理过程中,不需要将该第一特征图搬运至片外内存中,神经网络下一层的处理过程中,也不需要将该第一特征图由片外内存中搬运至片上缓存单元中,从而能够节省层间的特征图数据访问开销,减少计算单元的闲置时间。
如图3所示,在上述图2所示实施例的基础上,步骤202可包括如下步骤:
步骤2021,当所述第一特征图的尺寸大于所述第二特征图的尺寸时,基于所述第一特征图的尺寸,将所述第一特征图划分为第一子特征图和第二子特征图,其中,所述第一子特征图的尺寸与所述第二特征图尺寸相等;
在一些实施例中,第一特征图的尺寸大于第二特征图的尺寸,例如,第一特征图为5*5的特征图,而第二特征图为3*3的特征图;此时,由于神经网络下一层不支持5*5的特征图,需要将该第一特征图进行划分。在一些实施例中,划分结果如图4所示,第一特征图为5*5的特征图,此时,对第一特征图进行划分,将第一特征图划分为第一子特征图401和第二子特征图402,其中,第一子特征图401为3*3的特征图,而第二特征图则为其余的两行和两列形成的特征图。在一些实施例中,为了便于下一层其他的第二特征图计算,可以选择将第一子特征图401右侧边缘为第一特征图的右侧边缘,第一子特征图401的下侧边缘为第一特征图的下侧边缘。
步骤2022,将所述第一子特征图作为下一层卷积的计算类型的所述第二特征图,并将所述第二子特征图存储至片外内存单元中。
在一些实施例中,将第一子特征图保存在片上缓存单元中,将第二子特征图保存至片外内存中,以便于第二子特征图参与后续的特征图划分过程。第一子特征图此时保存在片上缓存单元,将第一子特征图作为第二特征图开始下一层的卷积,使得前一层神经网络的处理过程中省去了第一子特征图搬运至片外内存的过程和下一层神经网络的处理过程中省去了将第一子特征图由片外内存搬运至片上缓存单元的过程,从而,节省了在层间访问数据的开销,减少了计算单元闲置的时间。图10a和图10b为本公开示例性实施例与现有技术中执行过程的对比图,在现有技术中,如图10a所示,在神经网络前一层的卷积计算全部完成后,将输出的第一特征图全部保存到片外内存中,下一层开始计算时,从片外内存中载入下一层的卷积核,即载入下一层的权重,载入下一层的第二特征图至片上缓存单元,然后再开始计算。这种计算方式中,前一层最后一个卷积子任务的特征图保存至片外内存的过程以及下一层第一卷积子任务在从片外内存中载入第二特征图的过程中,计算单元是闲置的。而本公开的示例性实施例中则是采用计算完成后存储在片上缓存单元的第一子特征图直接作为第二特征图开始下一层第一个卷积子任务的计算,省去了第一子特征图的存储和载入的过程,减少了第一子特征图从片上缓存单元存储至片外内存和第二特征图从片外内存载入至片上缓存单元的特征图数据访问开销。
如图5所示,在上述图2所示实施例的基础上,步骤202可包括如下步骤:
步骤2023,当所述第一特征图的尺寸小于所述第二特征图的尺寸时,由片外内存载入与所述第一特征图相邻区域的第三特征图;
在一些实施例中,第一特征图的尺寸小于第二特征图的尺寸,例如,如图6所示,第一特征图的尺寸为5*5,第二特征图为6*6,此时,前一层输出的第一特征图的尺寸不满足下一层所支持卷积的第二特征图的卷积尺寸,需要从片外内存中载入第三特征图,第三特征图为在第一特征图尺寸上方的一行和左侧的一行。
步骤2024,基于所述第一特征图和所述第三特征图,确定下一层卷积的计算类型的所述第二特征图。
在一些实施例中,从片外内存载入第三特征图后,将第三特征图的数据与第一特征图的数据合并,从而形成符合卷积条件的第二特征图,例如,从片外内存中载入与第一特征图上边缘相邻的至少一行和左边缘相邻的至少一列作为第三特征图,采用第三特征图对第一特征图的上侧和左侧进行填充,从而形成第二特征图。示例性的,如图6所示,采用5*5的第一特征图601,从片外内存中载入在第一特征图601上侧的一行和左侧的一行后作为第三特征图602,将第三特征图602和第一特征图601进行合并后即形成了6*6的第二特征图,此时符合下一层卷积的条件,即可采用该图进行卷积。图10a和图10c为现有技术与本公开示例性实施例的执行过程的对比图,与上述步骤2022类似,本专利申请中同样省去了第一特征图601从片上缓存单元搬运至片外内存和从片外内存搬运至片上缓存单元的过程,从而能够减少层间特征图数据访问的开销,减少了计算单元的闲置时间。
在上述图2所示实施例的基础上,步骤202可包括如下步骤:
步骤2025,当所述第一特征图的尺寸等于所述第二特征图的尺寸时,将所述第一特征图作为下一层卷积的计算类型的第二特征图。
在一些实施例中,第一特征图与第二特征图的尺寸相等,在该情况下,第一特征图即满足下一层的卷积条件,因此,直接将第一特征图作为第二特征图进行卷积。此时,前一层的卷积完成后输出的第一特征图不需要保存至片外内存中,下一层在卷积开始时,也就不需要进行第二特征图的载入,从而,节省了层间的特征图数据访问开销,提高的计算效率。本公开的示例性实施例与现有技术的执行过程对比参见图10a和图10d。
在上述图2所示的实施例的基础上,如图7所示,步骤201可包括如下的步骤:
步骤2011,当所述第一特征图的尺寸大于所述第二特征图时,基于所述第二特征图尺寸,将所述第一特征图的尺寸缩小至与所述第二特征图相同的尺寸;
在一些实施例中,第一特征图的尺寸大于第二特征图的尺寸,例如,第一特征图默认为5*5的特征图,而第二特征图为3*3的特征图;此时,由于神经网络下一层不支持5*5的特征图,除了采用上述的步骤2021的方式外,还可以采用本步骤中的方式,即,在划分当前层的第一特征图之前,首先查询下一层计算所支持的第二特征图的尺寸,例如前述的3*3的特征图尺寸,如果当前层的卷积计算除支持默认的5*5的特征图外还支持3*3的特征图,则可以将3*3的特征图作为当前层的第一特征图。
步骤2012,依据缩小后的第一特征图尺寸,对当前层的原始特征图进行划分。
在一些实施例中,采用上述的方式减小了第一特征图尺寸,在减小后,对原始特征图进行划分,此时,划分后的第一特征图与第二特征图尺寸相同,可以采用上述的步骤2025的方法对特征图的卷积顺序进行排序。本步骤中,由于将第一特征图减小至于第二特征图相同的尺寸,因此,省去了第二子特征图存入片外内存的过程,可以进一步减少层间的特征图数据访问开销,能够减少计算单元的闲置时间。
在上述图2所示的实施例的基础上,如图8所示,步骤201可包括如下的步骤:
步骤2013,当所述第一特征图的尺寸小于所述第二特征图时,基于所述第二特征图尺寸,将所述第一特征图的尺寸增大至与所述第二特征图相同的尺寸;
在一些实施例中,第一特征图的尺寸小于第二特征图的尺寸,例如,第一特征图的尺寸默认为5*5,第二特征图为6*6,此时,前一层输出的第一特征图的尺寸不满足下一层所支持卷积的第二特征图的卷积尺寸,除了采用上述的步骤2023的处理方式外,还可以还可以采用本步骤中的方式,即,在划分当前层的第一特征图之前,首先查询下一层计算所支持的第二特征图的尺寸,例如前述的6*6的特征图尺寸,如果当前层的卷积计算除支持默认的5*5的特征图外还支持6*6的特征图,则可以将6*6的特征图作为当前层的第一特征图。
步骤2014,依据增大后的第一特征图尺寸,对当前层的原始特征图进行划分。
在一些实施例中,采用上述的方式增大了第一特征图尺寸,在增大后,对原始特征图进行划分,此时,划分后的第一特征图与第二特征图尺寸相同,可以采用上述的步骤2025的方法对特征图的卷积顺序进行排序。本步骤中,由于将第一特征图增大至于第二特征图相同的尺寸,因此,省去了第三特征图从片外内存的载入过程,可以进一步减少层间的特征图数据访问开销,能够减少计算单元的闲置时间。
在上述图2所示实施例的基础上,步骤201之后可包括如下步骤:
步骤2010,将所述第一特征图保存在所述片上缓存单元中。
在一些实施例中,由于卷积计算过程中需要使第一特征图保存在片上缓存单元中,而原始的特征图和输出的特征图会被保存在片外内存中。为了使第一特征图保存在片上缓存单元中,执行将第一特征图保存在片上缓存单元的指令,避免第一特征图被保存至片外内存中。
如图9所示,在上述图2所示实施例的基础上,还可以进一步包括如下步骤:
步骤204,获取当前需要进行卷积计算的第二特征图在下一层各第二特征图中的排序数;
在一些实施例中,为了减少层间访问开销,第一特征图是指的当前层中最后执行的一个卷积子任务所输出的第一特征图,而第二特征图指的是下一层中第一个执行的一个卷积子任务所输入的第二特征图。排序数是指在下一层中该第二特征图对应第几个卷积子任务的输入。
步骤205,基于所述特征图的排序数,确定所述下一层中后续需要进行卷积计算的第二特征图的卷积计算顺序。
在一些实施例中,L0层的子任务的执行顺序为顺序执行,即按照多个特征图由左向右,由上向下的顺序执行,此时,L0层执行至最后一个子任务时,需要对位于右下角的特征图进行卷积,卷积完成后输出最后一个子任务的第一特征图。L1层的此时第一个执行的子任务则是将右下角的第一特征图作为第二特征图进行卷积,当第一个子任务执行完成后,后续的子任务可以依据由右向左,由下向上的方式逆序执行卷积,也可以按照随机顺序执行卷积。
在上述的示例性实施例中,无论后续的卷积计算顺序如何,只要前一层的最后一个卷积计算子任务的输出的第一特征图,经过分割或者填充作为下一层第一个卷积计算子任务的第二特征图,或者直接作为下一层第一个卷积计算的子任务的第二特征图,都能够省去计算对于第一特征图的存储和载入过程,能够减少计算单元的闲置时间。例如,仍以图1中的计算为例,在当前层计算时,卷积顺序是按照特征图1011,1012,1013和1014的卷积顺序进行卷积的,输出的顺序则为1031,1032,1033和1034的顺序进行输出的,在下一层进行计算时,则有三种可选的计算顺序,第一种是以与当前层相反的顺序进行计算,在计算时,采用1034,1033,1032和1031的顺序进行计算,第二种是将1034首先进行计算,其他的特征图仍然按照原输出顺序进行计算,即整体的计算顺序为1034,1031,1032和1033;第三种是将1034首先进行计算,其他的特征图可以以随机的顺序进行计算。实际上,无论哪种计算顺序,都需要将当前层计算1014时输出的特征图1034首先进行计算,这是由于在1034是当前层最后存储至输出预留空间107的特征图,此时,可以针对该特征图继续进行计算,省去了将该特征图存储至片外内存,再从片外内存载入到片上缓存的过程,从而能够节省特征图的数据访问开销,减少计算单元的闲置时间。而其他的特征图,则已经被存储至了片外内存中,例如,特征图1033,在1014的卷积计算过程中,已经从片上缓存的输出预留空间107存储至了片外内存,从而为1034的存储留出足够的空间。基于上述的几种计算顺序,需要在计算的过程中获取当前特征图的排序数,以便于对后续的卷积计算顺序进行排序。例如,在采用第一种方式进行卷积计算时,当前卷积的特征图为1033,排序数为第二,即可计算后续需要计算的特征图为1032。
示例性装置
图11是本公开一示例性实施例提供的神经网络计算装置,本实施例可应用在电子设备上,如图11所示,包括如下模块:
数据获取模块901,用于在对神经网络的下一层进行卷积计算时,确定处理器对所述神经网络的当前层进行计算得到的第一特征图的尺寸;
第一特征图尺寸是指在当前层进行计算后输出的特征图尺寸,在一些实施例中,第一特征图的尺寸是指图1中从输出预留空间中输出的特征图的尺寸。
任务排序模块902,用于依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序;
第二特征图尺寸是指神经网络下一层进行卷积时所支持的输入尺寸,在一些实施例中,第二特征图是指L1层的原始特征图进行分割后的每一个特征图的尺寸。
计算执行模块903,用于基于所述卷积计算顺序,执行下一层的卷积计算指令。
计算顺序是指对划分后的特征图进行卷积的顺序,在一些实施例中,可以将上述L0层作为神经网络前一层,将L1层作为神经网络下一层,神经网络下一层的卷积计算顺序可以首先计算神经网络前一层完成计算后存储在存储预留空间中的第一特征图,由于此时第一特征图还存储在片上缓存单元的存储预留空间中,尚未存储至片外内存中,因此,神经网络当前层的处理过程中,不需要将该第一特征图搬运至片外内存中,神经网络下一层的处理过程中,也不需要将该第一特征图由片外内存中搬运至片上缓存单元中,从而能够节省层间的特征图数据访问开销,减少计算单元的闲置时间。
如图12所示,在上述图11所示实施例的基础上,任务排序模块902可包括如下单元:
分割单元9021,用于当所述第一特征图的尺寸大于所述第二特征图的尺寸时,基于所述第一特征图的尺寸,将所述第一特征图划分为第一子特征图和第二子特征图,其中,所述第一子特征图的尺寸与所述第二特征图尺寸相等;
在一些实施例中,第一特征图的尺寸大于第二特征图的尺寸,例如,第一特征图为5*5的特征图,而第二特征图为3*3的特征图;此时,由于神经网络下一层不支持5*5的特征图,需要将该第一特征图进行划分。在一些实施例中,划分结果如图4所示,第一特征图为5*5的特征图,此时,对第一特征图进行划分,将第一特征图划分为第一子特征图401和第二子特征图402,其中,第一子特征图401为3*3的特征图,而第二特征图则为其余的两行和两列形成的特征图。在一些实施例中,为了便于下一层其他的第二特征图计算,可以选择将第一子特征图401右侧边缘为第一特征图的右侧边缘,第一子特征图401的下侧边缘为第一特征图的下侧边缘。
传送单元9022,用于将所述第一子特征图作为下一层卷积的计算类型的所述第二特征图,并将所述第二子特征图存储至片外内存单元中。
在一些实施例中,将第一子特征图保存在片上缓存单元中,将第二子特征图保存至片外内存中,以便于第二子特征图参与后续的特征图划分过程。第一子特征图此时保存在片上缓存单元,将第一子特征图作为第二特征图开始下一层的卷积,使得前一层神经网络的处理过程中省去了第一子特征图搬运至片外内存的过程和下一层神经网络的处理过程中省去了将第一子特征图由片外内存搬运至片上缓存单元的过程,从而,节省了在层间访问数据的开销,减少了计算单元闲置的时间。图10a和图10b为本公开示例性实施例与现有技术中执行过程的对比图,在现有技术中,如图10a所示,在神经网络前一层的卷积计算全部完成后,将输出的第一特征图全部保存到片外内存中,下一层开始计算时,从片外内存中载入下一层的卷积核,即载入下一层的权重,载入下一层的第二特征图至片上缓存单元,然后再开始计算。这种计算方式中,前一层最后一个卷积子任务的特征图保存至片外内存的过程以及下一层第一卷积子任务在从片外内存中载入第二特征图的过程中,计算单元是闲置的。而本公开的示例性实施例中则是采用计算完成后存储在片上缓存单元的第一子特征图直接作为第二特征图开始下一层第一个卷积子任务的计算,省去了第一子特征图的存储和载入的过程,减少特征图数据访问的开销。
如图13所示,在上述图11所示实施例的基础上,任务排序模块902可包括如下单元:
载入单元9023,用于当所述第一特征图的尺寸小于所述第二特征图的尺寸时,由片外内存载入与所述第一特征图相邻区域的第三特征图;
在一些实施例中,第一特征图的尺寸小于第二特征图的尺寸,例如,如图6所示,第一特征图的尺寸为5*5,第二特征图为6*6,此时,前一层输出的第一特征图的尺寸不满足下一层所支持卷积的第二特征图的卷积尺寸,需要从片外内存中载入第三特征图,第三特征图为在第一特征图尺寸上方的一行和左侧的一行。
合成单元9024,用于基于所述第一特征图和所述第三特征图,确定下一层卷积的计算类型的所述第二特征图。
在一些实施例中,从片外内存中载入第三特征图后,将第三特征图的数据与第一特征图的数据合并,从而形成符合卷积条件的第二特征图,例如,如图6所示,采用5*5的第一特征图601,载入在第一特征图601上侧的一行和左侧的一行后作为第三特征图602,将第三特征和第一特征图601进行合并后即形成了6*6的第二特征图,此时符合下一层卷积的条件,即可采用该图进行卷积。图10a和图10c为现有技术与本公开示例性实施例的执行过程的对比图,与上述步骤2022类似,本专利申请中同样省去了第一特征图601从片上缓存单元搬运至片外内存和从片外内存搬运至片上缓存单元的过程,从而减少了层间的数据开销,减少了计算单元的闲置时间。
如图14所示,在上述图11所示实施例的基础上,任务排序模块902可包括如下单元:
转换单元9025,用于当所述第一特征图的尺寸等于所述第二特征图的尺寸时,将所述第一特征图作为下一层卷积的计算类型的第二特征图。
在一些实施例中,第一特征图与第二特征图的尺寸相等,在该情况下,第一特征图即满足下一层的卷积条件,因此,直接将第一特征图作为第二特征图进行卷积。此时,前一层的卷积完成后输出的第一特征图不需要保存至片外内存中,下一层在卷积开始时,也就不需要进行第二特征图的载入,从而,节省了层间的特征图数据访问开销,提高的计算效率。本公开的示例性实施例与现有技术的执行过程对比参见图10a和图10d。
在上述图11所示的实施例的基础上,如图15所示,数据获取模块901可包括如下的单元:
尺寸缩小单元9011,用于当所述第一特征图的尺寸大于所述第二特征图时,基于所述第二特征图尺寸,将所述第一特征图的尺寸缩小至与所述第二特征图相同的尺寸;
在一些实施例中,第一特征图的尺寸大于第二特征图的尺寸,例如,第一特征图默认为5*5的特征图,而第二特征图为3*3的特征图;此时,由于神经网络下一层不支持5*5的特征图,除了采用上述的分割单元9021的方式外,还可以采用模块的方式,即,在划分当前层的第一特征图之前,首先查询下一层计算所支持的第二特征图的尺寸,例如前述的3*3的特征图尺寸,如果当前层的卷积计算除支持默认的5*5的特征图外还支持3*3的特征图,则可以将3*3的特征图作为当前层的第一特征图。
第一划分单元9012,依据缩小后的第一特征图尺寸,对当前层的原始特征图进行划分。
在一些实施例中,采用上述的方式减小了第一特征图尺寸,在减小后,对原始特征图进行划分,此时,划分后的第一特征图与第二特征图尺寸相同,可以采用上述的转换单元9025对特征图的卷积顺序进行排序。由于将第一特征图减小至于第二特征图相同的尺寸,因此,省去了第二子特征图存入片外内存的过程,可以进一步减少层间的特征图数据访问开销,能够减少计算单元的闲置时间。
在上述图11所示的实施例的基础上,如图16所示,数据获取模块901可包括如下的单元:
尺寸增加单元9013,用于当所述第一特征图的尺寸小于所述第二特征图时,基于所述第二特征图尺寸,将所述第一特征图的尺寸增大至与所述第二特征图相同的尺寸;
在一些实施例中,第一特征图的尺寸小于第二特征图的尺寸,例如,第一特征图的尺寸默认为5*5,第二特征图为6*6,此时,前一层输出的第一特征图的尺寸不满足下一层所支持卷积的第二特征图的卷积尺寸,除了采用上述的载入单元9023的处理方式外,还可以还可以采用模块9013的处理方式,即,在划分当前层的第一特征图之前,首先查询下一层计算所支持的第二特征图的尺寸,例如前述的6*6的特征图尺寸,如果当前层的卷积计算除支持默认的5*5的特征图外还支持6*6的特征图,则可以将6*6的特征图作为当前层的第一特征图。
第二划分单元9014,依据增大后的第一特征图尺寸,对当前层的原始特征图进行划分。
在一些实施例中,采用上述的方式增大了第一特征图尺寸,在增大后,对原始特征图进行划分,此时,划分后的第一特征图与第二特征图尺寸相同,可以采用上述的转换单元9025的方法对特征图的卷积顺序进行排序。由于将第一特征图增大至于第二特征图相同的尺寸,因此,省去了第三特征图从片外内存的载入过程,可以进一步减少层间的特征图数据访问开销,能够减少计算单元的闲置时间。
如图17所示,在上述图11所示实施例的基础上,神经网络计算装置还可包括如下模块:
存储控制模块904,用于将所述第一特征图保存在所述片上缓存单元中。
在一些实施例中,由于卷积计算过程中需要使第一特征图保存在片上缓存单元中,而原始的特征图和输出的特征图会被保存在片外内存中。为了使第一特征图保存在片上缓存单元中,执行将第一特征图保存在片上缓存单元的指令,避免第一特征图被保存至片外内存中。
如图18所示,在上述图2所示实施例的基础上,还可以进一步包括如下模块:
顺序获取模块905,用于获取当前需要进行卷积计算的第二特征图在下一层各第二特征图中的排序数;
在一些实施例中,为了减少层间访问开销,第一特征图是指的当前层中最后执行的一个卷积子任务所输出的第一特征图,而第二特征图指的是下一层中第一个执行的一个卷积子任务所输入的第二特征图。排序数是指在下一层中该第二特征图对应第几个卷积子任务的输入。
顺序调整模块906,用于基于所述特征图的排序数,确定所述下一层中后续需要进行卷积计算的第二特征图的卷积计算顺序。
在一些实施例中,L0层的子任务的执行顺序为顺序执行,即按照多个特征图由左向右,由上向下的顺序执行,此时,L0层执行至最后一个子任务时,需要对位于右下角的特征图进行卷积,卷积完成后输出最后一个子任务的第一特征图。L1层的此时第一个执行的子任务则是将右下角的第一特征图作为第二特征图进行卷积,当第一个子任务执行完成后,后续的子任务可以依据由右向左,由下向上的方式逆序执行卷积,也可以按照随机顺序执行卷积。
在上述的示例性实施例中,无论后续的卷积计算顺序如何,只要前一层的最后一个卷积计算子任务的输出的第一特征图,经过分割或者填充作为下一层第一个卷积计算子任务的第二特征图,或者直接作为下一层第一个卷积计算的子任务的第二特征图,都能够省去计算对于第一特征图的存储和载入过程,能够减少计算单元的闲置时间。例如,仍以图1中的计算为例,在当前层计算时,卷积顺序是按照特征图1011,1012,1013和1014的卷积顺序进行卷积的,输出的顺序则为1031,1032,1033和1034的顺序进行输出的,在下一层进行计算时,则有三种可选的计算顺序,第一种是以与当前层相反的顺序进行计算,在计算时,采用1034,1033,1032和1031的顺序进行计算,第二种是将1034首先进行计算,其他的特征图仍然按照原输出顺序进行计算,即整体的计算顺序为1034,1031,1032和1033;第三种是将1034首先进行计算,其他的特征图可以以随机的顺序进行计算。实际上,无论哪种计算顺序,都需要将当前层计算1014时输出的特征图1034首先进行计算,这是由于在1034是当前层最后存储至输出预留空间107的特征图,此时,可以针对该特征图继续进行计算,省去了将该特征图存储至片外内存,再从片外内存载入到片上缓存的过程,从而能够节省特征图的数据访问开销,减少计算单元的闲置时间。而其他的特征图,则已经被存储至了片外内存中,例如,特征图1033,在1014的卷积计算过程中,已经从片上缓存的输出预留空间107存储至了片外内存,从而为1034的存储留出足够的空间。基于上述的几种计算顺序,需要在计算的过程中获取当前特征图的排序数,以便于对后续的卷积计算顺序进行排序。例如,在采用第一种方式进行卷积计算时,当前卷积的特征图为1033,排序数为第二,即可计算后续需要计算的特征图为1032。
示例性电子设备
下面,参考图19来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图19图示了根据本公开实施例的电子设备的框图。
如图19所示,电子设备11包括一个或多个处理器111和存储器112。
处理器111可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备11中的其他组件以执行期望的功能。
存储器112可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本公开的各个实施例的神经网络计算方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备11还可以包括:输入装置113和输出装置114,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备或第二设备时,该输入装置113可以是上述摄像头,可以获取实施图像。在该电子设备是单机设备时,可以采用设备中存储的图像。
此外,该输入设备113还可以包括例如键盘、鼠标等等。
该输出装置114可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备114可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图19中仅示出了该电子设备11中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备11还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的神经网络计算方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的神经网络计算方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种神经网络计算方法,包括:
在对神经网络的下一层进行卷积计算之前,确定处理器对所述神经网络的当前层进行计算时得到的第一特征图的尺寸;
依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序;
基于所述卷积计算顺序,执行下一层的卷积计算指令。
2.根据权利要求1所述的方法,其中,所述依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序包括:
当所述第一特征图的尺寸大于所述第二特征图的尺寸时,基于所述第一特征图的尺寸,将所述第一特征图划分为第一子特征图和第二子特征图,其中,所述第一子特征图的尺寸与所述第二特征图尺寸相等;
将所述第一子特征图作为下一层卷积的计算类型的所述第二特征图,并将所述第二子特征图存储至片外内存单元中。
3.根据权利要求1所述的方法,其中,所述依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序包括:
当所述第一特征图的尺寸小于所述第二特征图的尺寸时,由片外内存载入与所述第一特征图相邻区域的第三特征图;
基于所述第一特征图和所述第三特征图,确定下一层卷积的计算类型的所述第二特征图。
4.根据权利要求1所述的方法,其中,所述在对神经网络的下一层进行卷积计算之前,确定处理器对所述神经网络的当前层进行计算时得到的第一特征图的尺寸包括:
当所述第一特征图的尺寸大于所述第二特征图时,基于所述第二特征图尺寸,将所述第一特征图的尺寸缩小至与所述第二特征图相同的尺寸;
依据缩小后的第一特征图尺寸,对当前层的原始特征图进行划分。
5.根据权利要求1所述的方法,其中,所述在对神经网络的下一层进行卷积计算之前,确定处理器对所述神经网络的当前层进行计算时得到的第一特征图的尺寸包括:
当所述第一特征图的尺寸小于所述第二特征图时,基于所述第二特征图尺寸,将所述第一特征图的尺寸增大至与所述第二特征图相同的尺寸;
依据增大后的第一特征图尺寸,对当前层的原始特征图进行划分。
6.根据权利要求1所述的方法,其中,所述依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序包括:
当所述第一特征图的尺寸等于所述第二特征图的尺寸时,将所述第一特征图作为下一层卷积的计算类型的第二特征图。
7.根据权利要求1所述的方法,其中,所述方法进一步还包括:
获取当前需要进行卷积计算的第二特征图在下一层各第二特征图中的排序数;
基于所述特征图的排序数,确定所述下一层中后续需要进行卷积计算的第二特征图的卷积计算顺序。
8.一种神经网络计算装置,包括:
数据获取模块,用于在对神经网络的下一层进行卷积计算时,确定处理器对所述神经网络的当前层进行计算得到的第一特征图的尺寸;
任务排序模块,用于依据所述第一特征图的尺寸与下一层所支持卷积的第二特征图的尺寸,确定所述下一层的卷积计算顺序;
计算执行模块,用于基于所述卷积计算顺序,执行下一层的卷积计算指令。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一所述的减少神经网络层间时延的方法。
10.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7任一所述的减少神经网络层间时延的方法。
CN202010931842.4A 2020-09-07 2020-09-07 神经网络计算方法、装置、可读存储介质以及电子设备 Pending CN112116071A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010931842.4A CN112116071A (zh) 2020-09-07 2020-09-07 神经网络计算方法、装置、可读存储介质以及电子设备
US17/468,136 US20220076097A1 (en) 2020-09-07 2021-09-07 Neural network computation method, device, readable storage media and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010931842.4A CN112116071A (zh) 2020-09-07 2020-09-07 神经网络计算方法、装置、可读存储介质以及电子设备

Publications (1)

Publication Number Publication Date
CN112116071A true CN112116071A (zh) 2020-12-22

Family

ID=73803297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010931842.4A Pending CN112116071A (zh) 2020-09-07 2020-09-07 神经网络计算方法、装置、可读存储介质以及电子设备

Country Status (2)

Country Link
US (1) US20220076097A1 (zh)
CN (1) CN112116071A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022218373A1 (zh) * 2021-04-16 2022-10-20 中科寒武纪科技股份有限公司 用于优化片上系统的卷积运算操作的方法和相关产品

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7402623B2 (ja) * 2019-06-17 2023-12-21 キヤノン株式会社 フィルタ処理装置及びその制御方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107437110A (zh) * 2017-07-11 2017-12-05 中国科学院自动化研究所 卷积神经网络的分块卷积优化方法及装置
WO2018158293A1 (en) * 2017-02-28 2018-09-07 Frobas Gmbh Allocation of computational units in object classification
CN109086879A (zh) * 2018-07-05 2018-12-25 东南大学 一种基于fpga的稠密连接神经网络的实现方法
CN109325589A (zh) * 2017-07-31 2019-02-12 华为技术有限公司 卷积计算方法及装置
CN109656623A (zh) * 2019-03-13 2019-04-19 北京地平线机器人技术研发有限公司 执行卷积运算操作的方法及装置、生成指令的方法及装置
US20190164037A1 (en) * 2017-11-29 2019-05-30 Electronics And Telecommunications Research Institute Apparatus for processing convolutional neural network using systolic array and method thereof
CN110046702A (zh) * 2018-01-17 2019-07-23 联发科技股份有限公司 神经网络计算加速器及其执行的方法
US20190303762A1 (en) * 2018-03-30 2019-10-03 Xilinx, Inc. Methods of optimization of computational graphs of neural networks
CN110443357A (zh) * 2019-08-07 2019-11-12 上海燧原智能科技有限公司 卷积神经网络计算优化方法、装置、计算机设备及介质
CN110569970A (zh) * 2019-09-12 2019-12-13 合肥工业大学 一种应用于卷积神经网络中硬件加速器的数据传输方法
CN111179175A (zh) * 2019-12-27 2020-05-19 深圳力维智联技术有限公司 基于卷积神经网络的图像处理方法、装置及存储介质
CN111191778A (zh) * 2019-12-31 2020-05-22 深圳云天励飞技术有限公司 深度学习网络处理方法、装置与编译器

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018158293A1 (en) * 2017-02-28 2018-09-07 Frobas Gmbh Allocation of computational units in object classification
CN107437110A (zh) * 2017-07-11 2017-12-05 中国科学院自动化研究所 卷积神经网络的分块卷积优化方法及装置
CN109325589A (zh) * 2017-07-31 2019-02-12 华为技术有限公司 卷积计算方法及装置
US20190164037A1 (en) * 2017-11-29 2019-05-30 Electronics And Telecommunications Research Institute Apparatus for processing convolutional neural network using systolic array and method thereof
CN110046702A (zh) * 2018-01-17 2019-07-23 联发科技股份有限公司 神经网络计算加速器及其执行的方法
US20190303762A1 (en) * 2018-03-30 2019-10-03 Xilinx, Inc. Methods of optimization of computational graphs of neural networks
CN109086879A (zh) * 2018-07-05 2018-12-25 东南大学 一种基于fpga的稠密连接神经网络的实现方法
CN109656623A (zh) * 2019-03-13 2019-04-19 北京地平线机器人技术研发有限公司 执行卷积运算操作的方法及装置、生成指令的方法及装置
CN110443357A (zh) * 2019-08-07 2019-11-12 上海燧原智能科技有限公司 卷积神经网络计算优化方法、装置、计算机设备及介质
CN110569970A (zh) * 2019-09-12 2019-12-13 合肥工业大学 一种应用于卷积神经网络中硬件加速器的数据传输方法
CN111179175A (zh) * 2019-12-27 2020-05-19 深圳力维智联技术有限公司 基于卷积神经网络的图像处理方法、装置及存储介质
CN111191778A (zh) * 2019-12-31 2020-05-22 深圳云天励飞技术有限公司 深度学习网络处理方法、装置与编译器

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
WENQUAN DU 等: "Optimizing of Convolutional Neural Network Accelerator", 《GREEN ELECTRONICS》, 27 March 2018 (2018-03-27), pages 1 - 20 *
YUFEI MA 等: "Optimizing the Convolution Operation to Accelerate Deep Neural Networks on FPGA", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION SYSTEMS》, vol. 26, no. 07, 31 July 2018 (2018-07-31), pages 1354 - 1367, XP011686179, DOI: 10.1109/TVLSI.2018.2815603 *
俞铸峰: "轻量化卷积神经网络加速器研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 2020, 15 February 2020 (2020-02-15), pages 137 - 55 *
宫磊: "可重构平台上面向卷积神经网络的异构多核加速方法研究", 《中国博士学位论文全文数据库信息科技辑》, no. 2019, 15 August 2019 (2019-08-15), pages 138 - 41 *
王杰杰: "卷积神经网络加速与优化方法的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2020, 15 June 2020 (2020-06-15), pages 135 - 391 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022218373A1 (zh) * 2021-04-16 2022-10-20 中科寒武纪科技股份有限公司 用于优化片上系统的卷积运算操作的方法和相关产品

Also Published As

Publication number Publication date
US20220076097A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
US11157592B2 (en) Hardware implementation of convolutional layer of deep neural network
US10691996B2 (en) Hardware accelerator for compressed LSTM
CN109919311B (zh) 生成指令序列的方法、执行神经网络运算的方法和装置
US10394929B2 (en) Adaptive execution engine for convolution computing systems
JP7329533B2 (ja) 演算を加速するための方法および加速器装置
US20230014783A1 (en) Processing for multiple input data sets
JP2019109896A (ja) ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス
JP2019109895A (ja) ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス
CN110415157B (zh) 一种矩阵乘法的计算方法及装置
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
US10755169B2 (en) Hybrid non-uniform convolution transform engine for deep learning applications
CN112116071A (zh) 神经网络计算方法、装置、可读存储介质以及电子设备
US10402196B2 (en) Multi-dimensional sliding window operation for a vector processor, including dividing a filter into a plurality of patterns for selecting data elements from a plurality of input registers and performing calculations in parallel using groups of the data elements and coefficients
CN111832718A (zh) 芯片架构
CN113673701A (zh) 神经网络模型的运行方法、可读介质和电子设备
US11610128B2 (en) Neural network training under memory restraint
US20210192336A1 (en) Processing unit and method for computing a convolution using a hardware-implemented spiral algorithm
CN111125628A (zh) 人工智能处理器处理二维数据矩阵的方法和设备
EP3940541A1 (en) A computer-implemented data processing method, micro-controller system and computer program product
US11645072B2 (en) Semiconductor device
CN116090518A (zh) 基于脉动运算阵列的特征图处理方法、装置以及存储介质
CN111143766A (zh) 人工智能处理器处理二维复数矩阵的方法和设备
CN111124995A (zh) 通过人工智能处理器处理一维复数数组的方法和设备
US11636569B1 (en) Matrix transpose hardware acceleration
US20220414183A1 (en) Winograd convolution operation method, apparatus, and device, and storage medium

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