CN111523642B - 用于卷积运算的数据重用方法、运算方法及装置、芯片 - Google Patents

用于卷积运算的数据重用方法、运算方法及装置、芯片 Download PDF

Info

Publication number
CN111523642B
CN111523642B CN202010279132.8A CN202010279132A CN111523642B CN 111523642 B CN111523642 B CN 111523642B CN 202010279132 A CN202010279132 A CN 202010279132A CN 111523642 B CN111523642 B CN 111523642B
Authority
CN
China
Prior art keywords
data
candidate
tile
cost function
convolution operation
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.)
Active
Application number
CN202010279132.8A
Other languages
English (en)
Other versions
CN111523642A (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.)
Xingchen Technology Co ltd
Original Assignee
Xingchen 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 Xingchen Technology Co ltd filed Critical Xingchen Technology Co ltd
Priority to CN202010279132.8A priority Critical patent/CN111523642B/zh
Publication of CN111523642A publication Critical patent/CN111523642A/zh
Priority to TW109139562A priority patent/TWI775210B/zh
Priority to US17/209,279 priority patent/US20210350230A1/en
Application granted granted Critical
Publication of CN111523642B publication Critical patent/CN111523642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

本发明提供一种用于卷积运算的数据重用方法、运算方法及装置、芯片。数据重用方法包括:确定执行卷积运算时的限制条件;根据限制条件,确定每个数据对应的每个维度上的划分尺寸;根据划分尺寸,将每个数据对应的每个维度进行划分,获得每个数据对应的每个维度的候选子图块集合;将每个维度的候选子图块集合中的每一个候选子图块,与其余维度的候选子图块集合中的每一个候选子图块进行组合,获得每个数据的候选图块集合。将每个候选图块集合分别输入至预设的代价函数,并选取代价函数的最小输出值对应的候选图块作为目标图块,并将目标图块作为数据的后续重用划分方式。可以使得数据进出片上存储器的次数最少,重用性最高,提高卷积运算效率。

Description

用于卷积运算的数据重用方法、运算方法及装置、芯片
技术领域
本发明属于数据运算技术领域,具体涉及一种用于卷积运算的数据重用方法、一种用于卷积运算的数据重用装置、一种卷积运算方法、一种卷积运算装置以及一种运算芯片。
背景技术
深度学习(Deep learning)是开展人工智能(Artificial intelligence,AI)的重要应用技术之一,其广泛应用于计算机视觉、语音识别等领域。其中卷积神经网络(Convolutional Neural Network,CNN)则是近年来引起重视的一种深度学习高效识别技术,它通过直接输入原始图像或数据,与多个特征滤波器(filter)进行若干层的卷积运算及矢量运算,从而在图像和语音识别方面产生高准确性结果。其中滤波器的规模可由1×1、3×3的小区块规模到5×5、7×7甚至是11×11的大规模卷积运算区块,因此卷积运算也是一种很耗费效能的运算。
为了追求分类准确度,CNN模型深度越来越深,模型复杂度也越来越高,如深度残差网络(ResNet)其层数已经多达152层。在某些真实的应用场景如移动或者嵌入式设备,如此大而复杂的模型面临着内存不足、响应延迟等问题,例如自动驾驶汽车的行人检测系统如果响应速度慢则会发生可怕的结果,因此大规模的CNN难以被应用,研究小而高效的CNN模型越来越成为CNN的发展趋势,例如Google提出的一种小巧而高效的CNN模型MobileNet,其在保持模型性能的前提下降低了模型大小,同时提升模型速度。
CNN卷积神经网络因其卓越性能目前被普遍应用于各种人工智能设备中,包括cloud、mobile设备。在某些设备,特别是mobile设备中,存储和计算资源是比较少的。在磁盘上内存上同时存储CNN算法的所有输入数据,权重数据和输出数据通常是不可能的,将高效的CNN算法移植到嵌入式硬件加速器中的一个难题是如何将完整的CNN任务划分为几个小部分,以便可以最大程度地提高数据复用率并提高硬件执行效率。如何利用较少的存储和计算资源提高神经网络的执行速度显得尤为重要。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一,提供一种用于卷积运算的数据重用方法、一种用于卷积运算的数据重用装置、一种卷积运算方法、一种卷积运算装置、一种运算芯片、一种电子设备以及一种计算机可读存储介质。
本发明的一个方面提供一种用于卷积运算的数据重用方法,包括:
确定执行卷积运算时的限制条件;
根据所述限制条件,确定每个所述数据对应的每个维度上的划分尺寸;
根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合;
将每个所述维度的所述候选子图块集合中的每一个候选子图块,与其余所述维度的候选子图块集合中的每一个候选子图块进行组合,获得每个所述数据的候选图块集合;
将每个所述候选图块集合分别输入至预设的代价函数,并选取所述代价函数的最小输出值对应的候选图块作为目标图块,并将所述目标图块作为所述数据的后续重用划分方式。
在一些可选地实施方式中,所述限制条件包括并行通道数量以及每个数据在片上存储器所分配的内存块数量。
在一些可选地实施方式中,所述将每个所述候选图块集合分别输入至预设的代价函数,包括:
根据每个所述数据所分配的所述内存块数量,从每个所述候选图块集合中剔除无效的候选图块,获得有效候选图块集合;
将每个所述有效候选图块集合分别输入至所述代价函数。
在一些可选地实施方式中,所述将每个所述有效候选图块集合分别输入至所述代价函数,包括:
根据卷积运算的维度的先后顺序,确定所述有效候选图块集合中每个有效候选图块的有效候选图块组合,获得每个所述数据的有效候选图块组合集合;
将每个所述有效候选图块组合集合分别输入至所述代价函数。
在一些可选地实施方式中,所述根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合,包括:
根据所述划分尺寸,对输出数据对应的输出宽度、输出高度和输出通道数量三个维度进行划分、以及,对权重数据对应的输出宽度、输出高度、输入通道数量和输出通道数量四个维度进行划分,获得所述候选子图块集合。
本发明的另一个方面,提供一种用于卷积运算的数据重用装置,包括:
一个确定模块,用于确定执行卷积运算时的限制条件;
一个计算模块,用于根据所述限制条件,确定每个所述数据对应的每个维度上的划分尺寸;
一个划分模块,用于根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合;
一个组合模块,用于将每个所述维度的所述候选子图块集合中的每一个候选子图块,与其余所述维度的候选子图块集合中的每一个候选子图块进行组合,以获得每个所述数据的候选图块集合;
一个选取模块,用于将每个所述候选图块集合分别输入至预设的代价函数,并选取所述代价函数的最小输出值对应的候选图块作为目标图块,并将所述目标图块作为所述数据的后续重用划分方式。
在一些可选地实施方式中,所述限制条件包括并行通道数量以及每个数据在片上存储器所分配的内存块数量。
在一些可选地实施方式中,所述选取模块包括一个剔除单元和一个输入单元,所述将每个所述候选图块集合分别输入至预设的代价函数,包括:
所述剔除单元,用于根据每个所述数据所分配的所述内存块数量,从每个所述候选图块集合中剔除无效的候选图块,获得有效候选图块集合;
所述输入单元,用于将每个所述有效候选图块集合分别输入至所述代价函数。
在一些可选地实施方式中,所述选取模块还包括一个组合单元,所述将每个所述有效候选图块集合分别输入至所述代价函数,包括:
所述组合单元,用于根据卷积运算的维度的先后顺序,确定所述有效候选图块集合中每个有效候选图块的有效候选图块组合,获得每个所述数据的有效候选图块组合集合;
所述输入单元,还用于将每个所述有效候选图块组合集合分别输入至所述代价函数。
在一些可选地实施方式中,所述划分模块,具体用于:
根据所述划分尺寸,对输出数据对应的输出宽度、输出高度和输出通道数量三个维度进行划分、以及,对权重数据对应的输出宽度、输出高度、输入通道数量和输出通道数量四个维度进行划分,获得所述候选子图块集合。
本发明的另一个方面,提供一种卷积运算方法,采用前文记载的所述的数据重用方法。
本发明的另一个方面,提供一种卷积运算装置,采用前文记载的所述的数据重用装置。
本发明的另一个方面,提供一种运算芯片,包括前文记载的所述的数据重用装置,或,包括前文记载的所述的卷积运算装置。
本发明的另一个方面,提供一种电子设备,包括:
一个或多个处理器;
一个存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的数据重用方法或前文记载的所述的卷积运算方法。
本发明的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的数据重用方法或前文记载的所述的卷积运算方法。
本发明实施例的数据重用方法及装置、卷积运算方法及装置。首先获取确定执行卷积运算时的限制条件,其次,根据该限制条件获得每个维度的划分尺寸,之后,根据划分尺寸进行划分,获得每个维度的候选子图块集合,再之后,将每个维度的候选子图块与其余维度的候选子图块进行组合获得候选图块集合,最后,将候选图块集合输入至代价函数,选取最小值对应的候选图块为目标图块,以此决定数据后续重用划分方式。在执行卷积运算过程中,可以使得数据进出片上存储器的次数最少,每个数据的重用性或复用率最高,提高卷积运算效率,节省卷积运算时间。
附图说明
图1为本发明第一实施例的一种电子设备的组成示意框图;
图2为本发明第二实施例的一种数据重用方法的流程图;
图3为本发明第三实施例的一种数据重用装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
首先,参照图1来描述用于实现本发明实施例的数据重用装置、卷积运算装置、数据重用方法及卷积运算方法的示例电子设备。
如图1所示,电子设备200包括一个或多个处理器210、一个或多个存储装置220、一个或多个输入装置230、一个或多个输出装置240等,这些组件通过总线系统250和/或其他形式的连接机构互连。应当注意,图1所示的电子设备的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。
处理器210可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备200中的其他组件以执行期望的功能。
存储装置220可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如,所述应用程序使用和/或产生的各种数据等。
输入装置230可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
输出装置240可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
其次,对本发明下文中所提及的一些英文简称进行说明:
KB:权重数据;
IB:输入图像数据;
AB:累加数据;
OB:输出数据,是AB数据的截位;
Di:输入通道数量;
Do:输出信道数量;
simd di:输入并行通道数量;
simd do:输出并行通道数量;
IB包括三个维度,分别为宽度维度Win,高度维度Hin,深度维度Di;
KB包括四个维度,分别为宽度维度FW,高度维度Fh,深度维度Di和Do;
AB/OB包括三个维度,分别为宽度维度Wout,高度维度Hout,深度维度Do。
下面,将参考图2描述根据本发明实施例的用于卷积运算的数据重用方法。
如图2所示,一种用于卷积运算的数据重用方法S100,包括:
S110、确定执行卷积运算时的限制条件。
具体地,在本步骤中,在执行卷积运算时,根据硬件的不同卷积模式,抽取出硬件限制条件。示例性的,不同的底层卷积模式,对IB在片上存储器所分配的内存块(Memory)数量有所限制、AB或OB在片上存储器所分配的Memory数量有所限制,如其中一个卷积模式,对IB分配Memory数量为512个,对AB或OB分配Memory数量为1024个等等。此外,不同的底层卷积模式,对并行通道数量的限制也并不相同,例如,其中一个卷积模式,其simd di并行通道数量为16,simd do并行通道数量为16等等。当然,除了上述所列举的一些限制条件以外,本领域技术人员还可以根据实际需要,选择其他一些具体地限制条件,本实施例对此并不限制。
S120、根据所述限制条件,确定每个所述数据对应的每个维度上的划分尺寸。
具体地,在本步骤中,假设其中一个硬件的卷积模式所对应的限制条件为
Figure BDA0002445894870000071
在这种限制条件下,Di或Do维度上的划分尺寸为di*do=16k*16l。另外,在宽度W和高度H这两个维度上的划分尺寸并没有要求。示例性的,原始的任务为计算IB=Win*Hin*Di,KB=Fw*Fh*Di*Do,OB=Wout*Hout*Do。在一个限制条件为
Figure BDA0002445894870000081
下,ib=win*hin*16k,kb=Fw*Fh*16k*16l,ob=wout*hout*16l,其中,k和l为大于等于1的整数,ib为IB的划分尺寸,kb为KB的划分尺寸,ob为OB的划分尺寸。
S130、根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合。
具体地,在本步骤中,根据di,do的限制条件,穷举出各个维度上所有可用的候选子图块,获得每个数据对应的每个所述维度上的候选子图块集合。以IB和OB为例,这两个数据具有三个维度,在宽度和高度这两个维度上的划分尺寸并没有限制,此时,可以根据每一个可能的划分尺寸对IB和OB对应的宽度维度和高度维度进行划分,获得对应宽度维度和高度维度的候选子图块,在深度这个维度上,需要考虑di,do的限制条件,例如,di限制为16,则划分尺寸只能为16的倍数,比如16、32、64等进行划分,从而在深度这个维度上获得对应的候选子图块。对于KB,与IB和OB的划分方式相类似,在此不作赘述。根据IB、KB和OB对应的每个维度上所穷举出的候选子图块,获得所需要的候选子图块集合。
S140、将每个所述维度的所述候选子图块集合中的每一个候选子图块,与其余所述维度的候选子图块集合中的每一个候选子图块进行组合,获得每个所述数据的候选图块集合。
具体地,在本步骤中,每个维度可以产生一个循环,以便穷尽每个维度上的候选图块。例如,步骤S130中得到了每个数据在对应的每个维度上的候选子图块集合,在该步骤S140中,需要将每个维度上的候选子图块集合中的每个候选子图块与该数据在其余维度上的候选子图块集合中的每个候选子图块进行组合,获得每个所述数据的候选图块集合。示例性的,以IB为例,假设在步骤S130里面得到其宽度维度的候选子图块集合用向量表示为W=(W1、W2…Wn),高度维度的候选子图块集合用向量表示为H=(H1、H2…Hn),深度维度的候选子图块集合用向量表示为D=(D1、D2…Dn),则在步骤S140中,是将向量W中的每一个元素与向量H和向量D中的每一个元素进行组合,获得IB的候选图块集合。其余数据如KB和OB可以依次类推解释。
S150、将每个所述候选图块集合分别输入至预设的代价函数,并选取所述代价函数的最小输出值对应的候选图块作为目标图块,并将所述目标图块作为所述数据的后续重用划分方式。
鉴于以下事实,片上存储器是有限的,并且往返于DDR,往返片上存储器的存储器带宽受到限制,因此我们将传输数据量的大小视为代价指标。如果反复读取的数据负载最小,则该解决方案被认为是更好的解决方案。换言之,最大数据复用性得以实现。在之前步骤中,计算的总的数据加载量的方法是,计算内部循环数据加载量,乘以在外循环数的存取次数。进一步说,这种分割处理方式综合考虑IB,KB,AB和OB,因此,所有四种存储的传输代价函数会被累计。因此,在步骤中,所谓的代价函数,可以衡量用DMA搬运的次数越少越好,即进出片上存储器的次数少,即搬进去的每个数据的重用性或复用率较高。对于每个候选图块集合,将其输入到代价函数中,得到一些代价值,衡量值最小的代价值即为最优解,也即该代价值对应的候选图块为目标图块。至于代价函数的具体类型,本领域技术人员可以根据实际需要进行选择。应当理解的是,此处应当将各个数据(如IB、KB、OB和AB等)对应的候选图块集合同时输入至代价函数中,这样,在代价函数取最小值时,表明该最小值所对应的数据划分方式最佳,数据重用率最高。
本实施例的数据重用方法,首先获取确定执行卷积运算时的限制条件,其次,根据该限制条件获得每个维度的划分尺寸,之后,根据划分尺寸进行划分,获得每个维度的候选子图块集合,再之后,将每个维度的候选子图块与其余维度的候选子图块进行组合获得候选图块集合,最后,将候选图块集合输入至代价函数,选取最小值对应的候选图块为目标图块,以此决定数据的后续重用划分方式。因此,本实施例的数据重用方法,在执行卷积运算过程中,可以使得数据进出片上存储器的次数最少,每个数据的重用性或复用率最高,提高卷积运算效率,节省卷积运算时间。
在一些可选地实施方式中,所述将每个所述候选图块集合分别输入至预设的代价函数,包括:
根据每个所述数据所分配的所述内存块数量,从每个所述候选图块集合中剔除无效的候选图块,获得有效候选图块集合。将每个所述有效候选图块集合分别输入至所述代价函数。
本实施例的数据重用方法,可以根据内存块数量,将所获得的候选图块集合中剔除放不下的无效候选图块,从而获得有效候选图块集合,这样,可以提高数据重用方法的效率,并且能够确保最终的最优解满足内存块数量的限制。
在一些可选地实施方式中,所述将每个所述有效候选图块集合分别输入至所述代价函数,包括:
根据卷积运算的维度的先后顺序,确定所述有效候选图块集合中每个有效候选图块的有效候选图块组合,获得每个所述数据的有效候选图块组合集合。将每个所述有效候选图块组合集合分别输入至所述代价函数。
示例性的,每个数据所获得的有效候选图块集合中,每个有效候选图块根据卷积运算的维度的先后顺序,可能有多种组合方式,如(Di,Do,H,W)、(Di,H,W,Do),或(W,H,Di,Do),但并不局限于这几种组合方式,获得每个数据的有效候选图块组合集合。计算各种具体IB/KB/AB/OB/VB的片上存储器的代价函数的代价值,找出代价值最小的并且有效的片上存储器的内存分配配置(memory configuration),此处记录最小代价值下的组合方式(loop order),以及片上存储器的内存分配配置。
在一些可选地实施方式中,所述根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合,包括:
根据所述划分尺寸,对输出数据对应的输出宽度、输出高度和输出通道数量三个维度进行划分、以及,对权重数据对应的输出宽度、输出高度、输入通道数量和输出通道数量四个维度进行划分,获得所述候选子图块集合。
此外,为了缩小搜索空间,我们有以下观察结果:
WH上的分区可探索权重的数据利用率,即内核将在内核内存(KB)中重用WH/wh次,为了最大程度地重用内核系数,内核内存应包含wh中使用的所有元素,即最小内存要求为di*do*F^2。
Di上的分区会探索输出数据的重复利用率,即输出内存将在输出内存(OB)中重用Di/di次,为了最大程度地重用输出存储,OB应该包含所有需要重用的输出数据,即最小内存要求是wh*do。
Do上的分区会探索输入内存的复用率,即输入数据将在输入内存(IB)中重用Do/do次,为了最大程度地重用输入内存,IB应该包含所有正在使用的输入元素,即最小内存要求是(w+F-1)*(H+F-1)*di。
本发明的另一个方面,如图3所示,提供一种用于卷积运算的数据重用装置100,该数据重用装置100可以应用于前文记载的数据重用方法,具体相关内容可以参考前文记载,在此不作赘述。数据重用装置100包括:
一个确定模块110,用于确定执行卷积运算时的限制条件。
一个计算模块120,用于根据所述限制条件,确定每个所述数据对应的每个维度上的划分尺寸。
一个划分模块130,用于根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合。
一个组合模块140,用于将每个所述维度的所述候选子图块集合中的每一个候选子图块,与其余所述维度的候选子图块集合中的每一个候选子图块进行组合,以获得每个所述数据的候选图块集合。
一个选取模块150,用于将每个所述候选图块集合分别输入至预设的代价函数,并选取所述代价函数的最小输出值对应的候选图块作为目标图块,并将所述目标图块作为所述数据的后续重用划分方式。
本实施例的数据重用装置,首先获取确定执行卷积运算时的限制条件,其次,根据该限制条件获得每个维度的划分尺寸,之后,根据划分尺寸进行划分,获得每个维度的候选子图块集合,再之后,将每个维度的候选子图块与其余维度的候选子图块进行组合获得候选图块集合,最后,将候选图块集合输入至代价函数,选取最小值对应的候选图块为目标图块,以此决定数据后续重用划分方式。因此,本实施例的数据重用装置,在执行卷积运算过程中,可以使得数据进出片上存储器的次数最少,每个数据的重用性或复用率最高,提高卷积运算效率,节省卷积运算时间。
在一些可选地实施方式中,所述限制条件包括并行通道数量以及每个数据在片上存储器所分配的内存块数量。
在一些可选地实施方式中,所述选取模块150包括一个剔除单元151和一个输入单元152,所述将每个所述候选图块集合分别输入至预设的代价函数,包括:
所述剔除单元151,用于根据每个所述数据所分配的所述内存块数量,从每个所述候选图块集合中剔除无效的候选图块,获得有效候选图块集合。
所述输入单元152,用于将每个所述有效候选图块集合分别输入至所述代价函数。
本实施例的数据重用装置,可以根据内存块数量,将所获得的候选图块集合中剔除放不下的无效候选图块,从而获得有效候选图块集合,这样,可以提高数据重用方法的效率,并且能够确保最终的最优解满足内存块数量的限制。
在一些可选地实施方式中,所述选取模块150还包括一个组合单元153,所述将每个所述有效候选图块集合分别输入至所述代价函数,包括:
所述组合单元153,用于根据卷积运算的维度的先后顺序,确定所述有效候选图块集合中每个有效候选图块的有效候选图块组合,获得每个所述数据的有效候选图块组合集合;
所述输入单元152,还用于将每个所述有效候选图块组合集合分别输入至所述代价函数。
在一些可选地实施方式中,所述划分模块130,具体用于根据所述划分尺寸,对输出数据对应的输出宽度、输出高度和输出通道数量三个维度进行划分、以及,对权重数据对应的输出宽度、输出高度、输入通道数量和输出通道数量四个维度进行划分,获得所述候选子图块集合。
本发明的另一个方面,提供一种卷积运算方法,采用前文记载的所述的数据重用方法。
本实施例的卷积运算方法,采用前文记载的数据重用方法,可以使得数据进出片上存储器的次数最少,每个数据的重用性或复用率最高,提高卷积运算效率,节省卷积运算时间。
本发明的另一个方面,提供一种卷积运算装置,采用前文记载的所述的数据重用装置。
本实施例的卷积运算装置,采用前文记载的数据重用装置,可以使得数据进出片上存储器的次数最少,每个数据的重用性或复用率最高,提高卷积运算效率,节省卷积运算时间。
本发明的另一个方面,提供一种运算芯片包括前文记载的所述的数据重用装置,或,包括前文记载的所述的卷积运算装置。
本发明的另一个方面,提供一种电子设备,包括:
一个或多个处理器;
一个存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的数据重用方法或前文记载的所述的卷积运算方法。
本发明的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的数据重用方法或前文记载的所述的卷积运算方
其中,计算机可读介质可以是本发明的装置、设备、系统中所包含的,也可以是单独存在。
其中,计算机可读存储介质可是任何包含或存储程序的有形介质,其可以是电、磁、光、电磁、红外线、半导体的系统、装置、设备,更具体的例子包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、光纤、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或它们任意合适的组合。
其中,计算机可读存储介质也可包括在基带中或作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,其具体的例子包括但不限于电磁信号、光信号,或它们任意合适的组合。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (13)

1.一种用于卷积运算的数据重用方法,其特征在于,包括:
确定执行卷积运算时的限制条件;其中,所述限制条件包括并行通道数量以及每个数据在片上存储器所分配的内存块数量;
根据所述限制条件,确定每个所述数据对应的每个维度上的划分尺寸;
根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合;
将每个所述维度的所述候选子图块集合中的每一个候选子图块,与其余所述维度的候选子图块集合中的每一个候选子图块进行组合,获得每个所述数据的候选图块集合;
将每个所述候选图块集合分别输入至预设的代价函数,并选取所述代价函数的最小输出值对应的候选图块作为目标图块,并将所述目标图块作为所述数据的后续重用划分方式;其中,所述代价函数用于衡量DMA搬运次数。
2.根据权利要求1所述的数据重用方法,其特征在于,所述将每个所述候选图块集合分别输入至预设的代价函数,包括:
根据每个所述数据所分配的所述内存块数量,从每个所述候选图块集合中剔除无效的候选图块,获得有效候选图块集合;
将每个所述有效候选图块集合分别输入至所述代价函数。
3.根据权利要求2所述的数据重用方法,其特征在于,所述将每个所述有效候选图块集合分别输入至所述代价函数,包括:
根据卷积运算的维度的先后顺序,确定所述有效候选图块集合中每个有效候选图块的有效候选图块组合,获得每个所述数据的有效候选图块组合集合;
将每个所述有效候选图块组合集合分别输入至所述代价函数。
4.根据权利要求1~3任一项所述的数据重用方法,其特征在于,所述根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合,包括:
根据所述划分尺寸,对输出数据对应的输出宽度、输出高度和输出通道数量三个维度进行划分、以及,对权重数据对应的输出宽度、输出高度、输入通道数量和输出通道数量四个维度进行划分,获得所述候选子图块集合。
5.一种用于卷积运算的数据重用装置,其特征在于,包括:
一个确定模块,用于确定执行卷积运算时的限制条件;其中,所述限制条件包括并行通道数量以及每个数据在片上存储器所分配的内存块数量;
一个计算模块,用于根据所述限制条件,确定每个所述数据对应的每个维度上的划分尺寸;
一个划分模块,用于根据所述划分尺寸,将每个所述数据对应的每个所述维度进行划分,获得每个所述数据对应的每个所述维度的候选子图块集合;
一个组合模块,用于将每个所述维度的所述候选子图块集合中的每一个候选子图块,与其余所述维度的候选子图块集合中的每一个候选子图块进行组合,以获得每个所述数据的候选图块集合;
一个选取模块,用于将每个所述候选图块集合分别输入至预设的代价函数,并选取所述代价函数的最小输出值对应的候选图块作为目标图块,并将所述目标图块作为所述数据的后续重用划分方式;其中,所述代价函数用于衡量DMA搬运次数。
6.根据权利要求5所述的数据重用装置,其特征在于,所述选取模块包括一个剔除单元和一个输入单元,所述将每个所述候选图块集合分别输入至预设的代价函数,包括:
所述剔除单元,用于根据每个所述数据所分配的所述内存块数量,从每个所述候选图块集合中剔除无效的候选图块,获得有效候选图块集合;
所述输入单元,用于将每个所述有效候选图块集合分别输入至所述代价函数。
7.根据权利要求6所述的数据重用装置,其特征在于,所述选取模块还包括一个组合单元,所述将每个所述有效候选图块集合分别输入至所述代价函数,包括:
所述组合单元,用于根据卷积运算的维度的先后顺序,确定所述有效候选图块集合中每个有效候选图块的有效候选图块组合,获得每个所述数据的有效候选图块组合集合;
所述输入单元,还用于将每个所述有效候选图块组合集合分别输入至所述代价函数。
8.根据权利要求5~7任一项所述的数据重用装置,其特征在于,所述划分模块具体用于:
根据所述划分尺寸,对输出数据对应的输出宽度、输出高度和输出通道数量三个维度进行划分、以及,对权重数据对应的输出宽度、输出高度、输入通道数量和输出通道数量四个维度进行划分,获得所述候选子图块集合。
9.一种卷积运算方法,其特征在于,采用权利要求1~4任一项所述的数据重用方法。
10.一种卷积运算装置,其特征在于,采用权利要求5~8任一项所述的数据重用装置。
11.一种运算芯片,其特征在于,包括权利要求5~8任一项所述的数据重用装置,或,包括权利要求10所述的卷积运算装置。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据权利要求1~4任一项所述的数据重用方法或权利要求9所述的卷积运算方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时能实现根据权利要求1~4任一项所述的数据重用方法或权利要求9所述的卷积运算方法。
CN202010279132.8A 2020-04-10 2020-04-10 用于卷积运算的数据重用方法、运算方法及装置、芯片 Active CN111523642B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010279132.8A CN111523642B (zh) 2020-04-10 2020-04-10 用于卷积运算的数据重用方法、运算方法及装置、芯片
TW109139562A TWI775210B (zh) 2020-04-10 2020-11-12 用於卷積運算的資料劃分方法及處理器
US17/209,279 US20210350230A1 (en) 2020-04-10 2021-03-23 Data dividing method and processor for convolution operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010279132.8A CN111523642B (zh) 2020-04-10 2020-04-10 用于卷积运算的数据重用方法、运算方法及装置、芯片

Publications (2)

Publication Number Publication Date
CN111523642A CN111523642A (zh) 2020-08-11
CN111523642B true CN111523642B (zh) 2023-03-28

Family

ID=71901551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010279132.8A Active CN111523642B (zh) 2020-04-10 2020-04-10 用于卷积运算的数据重用方法、运算方法及装置、芯片

Country Status (3)

Country Link
US (1) US20210350230A1 (zh)
CN (1) CN111523642B (zh)
TW (1) TWI775210B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115221101B (zh) * 2021-04-16 2023-12-19 中科寒武纪科技股份有限公司 用于优化片上系统的矩阵乘操作的方法和相关产品
CN113254867B (zh) * 2021-06-28 2021-10-29 中科弘云科技(北京)有限公司 一种自动配置模板生成方法、装置、服务器及存储介质
US20230350678A1 (en) * 2022-04-28 2023-11-02 Qualcomm Incorporated Instruction Set Architecture for Neural Network Quantization and Packing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统
CN108305318A (zh) * 2017-01-12 2018-07-20 想象技术有限公司 图形处理单元和使用渲染空间的图块集合的成本指示来控制渲染复杂度的方法
CN110050267A (zh) * 2016-12-09 2019-07-23 北京地平线信息技术有限公司 用于数据管理的系统和方法
CN110827390A (zh) * 2018-08-10 2020-02-21 辉达公司 处理无序不透明和α光线/图元交点的方法
CN110929860A (zh) * 2019-11-07 2020-03-27 深圳云天励飞技术有限公司 一种卷积加速运算方法、装置、存储介质及终端设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8146066B2 (en) * 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US11182668B2 (en) * 2017-11-06 2021-11-23 Imagination Technologies Limited Neural network architecture using convolution engine filter weight buffers
CN107886163A (zh) * 2017-12-01 2018-04-06 广东工业大学 基于agn及cnn的单目标优化问题寻优方法及装置
US11436483B2 (en) * 2018-01-17 2022-09-06 Mediatek Inc. Neural network engine with tile-based execution
US20220222806A1 (en) * 2019-05-22 2022-07-14 Applied Materials Israel Ltd. Machine learning-based classification of defects in a semiconductor specimen

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统
CN110050267A (zh) * 2016-12-09 2019-07-23 北京地平线信息技术有限公司 用于数据管理的系统和方法
CN108305318A (zh) * 2017-01-12 2018-07-20 想象技术有限公司 图形处理单元和使用渲染空间的图块集合的成本指示来控制渲染复杂度的方法
CN110827390A (zh) * 2018-08-10 2020-02-21 辉达公司 处理无序不透明和α光线/图元交点的方法
CN110929860A (zh) * 2019-11-07 2020-03-27 深圳云天励飞技术有限公司 一种卷积加速运算方法、装置、存储介质及终端设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Human motion data editing based on a convolutional automatic encoder and manifold learning;Dongsheng Zhou;《Entertainment Computing》;20190402;全文 *

Also Published As

Publication number Publication date
TW202138999A (zh) 2021-10-16
CN111523642A (zh) 2020-08-11
TWI775210B (zh) 2022-08-21
US20210350230A1 (en) 2021-11-11

Similar Documents

Publication Publication Date Title
US11907830B2 (en) Neural network architecture using control logic determining convolution operation sequence
CN111523642B (zh) 用于卷积运算的数据重用方法、运算方法及装置、芯片
WO2021057720A1 (zh) 神经网络模型处理方法、装置、计算机设备及存储介质
JP2023075156A (ja) ニューラルネットワークを使用した集積回路フロアプランの生成
CN111667051A (zh) 适用边缘设备的神经网络加速器及神经网络加速计算方法
Pestana et al. A full featured configurable accelerator for object detection with YOLO
CN114026569A (zh) 使用脉动阵列的扩张卷积
US20220147795A1 (en) Neural network tiling method, prediction method, and related apparatus
KR20190036317A (ko) 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법
CN112163601A (zh) 图像分类方法、系统、计算机设备及存储介质
CN111465943A (zh) 芯片上计算网络
US11842220B2 (en) Parallelization method and apparatus with processing of neural network model for manycore system
CN113065997B (zh) 一种图像处理方法、神经网络的训练方法以及相关设备
CN113313247B (zh) 基于数据流架构的稀疏神经网络的运算方法
CN112906865B (zh) 神经网络架构搜索方法、装置、电子设备及存储介质
CN111028360B (zh) 一种3d图像处理中数据读写方法及系统、存储介质及终端
CN112799599A (zh) 一种数据存储方法、计算核、芯片和电子设备
CN113554657A (zh) 基于注意力机制及卷积神经网络的超像素分割方法及系统
JP7226696B2 (ja) 機械学習方法、機械学習システム及び非一時的コンピュータ可読記憶媒体
CN111291876B (zh) 运算装置、运算方法和运算芯片
US20230185761A1 (en) Reconfigurable computing chip
CN114138484A (zh) 资源分配方法、装置以及介质
CN111324793A (zh) 对存储感兴趣区域的数据的操作进行控制的方法和装置
CN116755714B (zh) 深度神经网络模型的运行方法、装置、设备和存储介质
US11983128B1 (en) Multidimensional and multiblock tensorized direct memory access descriptors

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
CB02 Change of applicant information

Address after: 361005 1501, zone a, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province

Applicant after: Xingchen Technology Co.,Ltd.

Address before: 361005 1501, zone a, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province

Applicant before: Xiamen Xingchen Technology Co.,Ltd.

Address after: 361005 1501, zone a, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province

Applicant after: Xiamen Xingchen Technology Co.,Ltd.

Address before: 361005 1501, zone a, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province

Applicant before: Xiamen Xingchen Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant