CN113159295B - 基于硬件加速器的张量处理方法和系统 - Google Patents
基于硬件加速器的张量处理方法和系统 Download PDFInfo
- Publication number
- CN113159295B CN113159295B CN202110458267.5A CN202110458267A CN113159295B CN 113159295 B CN113159295 B CN 113159295B CN 202110458267 A CN202110458267 A CN 202110458267A CN 113159295 B CN113159295 B CN 113159295B
- Authority
- CN
- China
- Prior art keywords
- input
- tensor
- area
- region
- input area
- 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
Links
Images
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
-
- 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/08—Learning methods
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)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本申请提供基于硬件加速器的张量处理方法和系统,该方法包括:确定待处理的张量中第一输入区域的起始边界坐标;基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;以及通过所述硬件加速器对所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域。本申请对张量的处理能够突破硬件限制,且计算量小、处理速度快;并且,本申请能尽可能减少对大尺寸张量的切分,最大化计算资源和带宽的利用率。
Description
技术领域
本申请涉及计算机信息处理领域,尤其涉及基于硬件加速器的张量处理技术。
背景技术
近几年来,计算机系统处理能力取得了巨大发展。在某些情况下(例如处理深度学习神经网络时),会涉及二维或更高维张量的卷积计算。以二维张量为例,在实际计算时,二维张量的某些参数有时可能会超出硬件加速器的相关限制,例如张量的高度或宽度可能超出加速器的相应限制,或者加速器对片上内存、可用的计算资源等可能会进行限制。这些限制都制约了对大尺寸张量的处理。
发明内容
本申请的一个目的是提供一种基于硬件加速器的张量处理方法和张量处理系统。
根据本申请的一个方面,本申请提供了一种基于硬件加速器的张量处理方法。在一些实施例中,该方法包括以下步骤:
确定待处理的张量中第一输入区域的起始边界坐标;
基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;以及,
通过所述硬件加速器对所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域。
根据本申请的另一个方面,本申请提供了一种张量处理系统,其中,该系统至少包括:
输入区域确定装置,用于确定待处理的张量中的输入区域,其中所述输入区域确定装置被配置为:
确定待处理的张量中第一输入区域的起始边界坐标;以及
基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;
该系统还包括区域处理装置,用于获得所述第一输入区域对应的第一输出区域,其中所述区域处理装置被配置为:
通过所述硬件加速器对所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域。
根据本申请的另一个方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时能够实现上述方法的操作。
根据本申请的另一个方面,本申请还提供了一种电子设备,该电子设备包括一个或多个处理器,还包括用于存储可执行指令的存储器,所述一个或多个处理器被配置为经由所述可执行指令来实现上述方法的操作。
本申请针对大尺寸张量中的部分输入区域进行处理,具体而言,该部分输入区域是根据硬件加速器的相关参数信息而确定的;在对该部分输入区域进行相应处理后,该部分输入区域所对应的输出区域即可用于后续处理,例如拼合为对原大尺寸张量进行处理后所对应的输出区域。虽然目前广泛应用的切分卷积核的处理方式也能解决上述问题,但是这种处理方式需要相应切分输入张量,即对应卷积核的每一块,先得到对应整个卷积核的部分和,最后还需要进一步将部分和进行累加,因此增加了较多的硬件资源消耗。与现有技术相比,一方面,本申请对张量的处理能够突破硬件方面的限制,且计算量小,处理速度快;另一方面,基于本申请,一次处理的部分区域的大小是根据硬件加速器的处理能力而确定的,能尽可能减少对大尺寸张量的切分,因此上述处理方式又可以最大化计算资源和带宽的利用率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请一个实施例中张量处理方法的流程图;
图2a至图2d分别是不同情形下第一输入区域在原张量中的位置示意;
图3a至图3d分别是不同情形下输入张量对应的输出张量,以及第一输入区域对应的第一输出区域在该输出张量中的分布情况示意;
图4a至图4c分别示出同一张量中不同输入区域的切分过程;
图5a至图5d分别示出卷积处理的不同情形。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为了使本技术领域的人员更好地理解本申请的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请提供的张量处理方法,适用于通过硬件加速器对张量、尤其是大尺寸张量进行处理,例如对张量计算卷积,该处理方法对最大池化和平均池化也同样适用。以计算张量的卷积为例,硬件加速器通常有各种限制,例如片上内存的物理限制、其他计算资源的限制,以及这些限制导致的对输入张量的高度及宽度的限制等。在计算资源有限的情况下,现有技术常采用切分卷积核的处理方式来突破上述限制,但是切分卷积核的处理方式需要相应切分输入张量,即对应卷积核的每一块,先得到对应整个卷积核的部分和,最后还需要进一步将部分和进行累加,增加了较多的硬件资源消耗。而本方案并不基于切分卷积核技术,而是根据硬件的相关参数确定大尺寸张量的分块,再对分块分别进行处理,与切分卷积核的方式相比省去了上述求取部分和、累加部分和的硬件资源消耗,并且同样能够在硬件资源的限制下处理大尺寸张量,且具有计算量小、处理速度快的优点。此外,从原张量中划分出的各个部分区域的大小是根据硬件加速器的处理能力而确定的,因此该处理方式能尽可能减少对大尺寸张量的切分,从而该处理方式可以最大化计算资源和带宽的利用率。
下面将以一种张量处理设备为例,详细描述本申请的各个具体实施方式。
参图1所示,本申请提供了一种基于硬件加速器的张量处理方法。该方法包括步骤S100、步骤S200和步骤S300。
其中,在步骤S100中,张量处理设备确定待处理的张量中第一输入区域的起始边界坐标;在步骤S200中,张量处理设备基于硬件加速器的工作参数信息(例如其对一次输入的张量的高度/宽度的限制),确定所述第一输入区域的终点边界坐标;随后,在步骤S300中,张量处理设备通过前述硬件加速器对读入该硬件加速器的第一输入区域执行预定处理(例如对该区域计算卷积),以获得第一输入区域所对应的第一输出区域。在一些实施例中,该第一输出区域用于与其他输入区域所对应的输出区域拼合为原张量对应的输出张量。
为便于理解,在此以原待处理的张量为二维张量为例,对本申请的各个实施例进行说明。参考图2a示出的待处理的二维张量,其中,上述第一输入区域的起始边界坐标和终点边界坐标均为行坐标(即原张量被划分为在高度方向上分布的若干个区域,此时各个输入区域的起始边界和终点边界分别为各自的上下边界,每个输入区域的高度受硬件加速器对输入张量高度的限制),或者第一输入区域的起始边界坐标和终点边界坐标均为列坐标(即原二维张量被划分为在宽度方向上分布的若干个区域,此时各个输入区域的起始边界和终点边界分别为各自的左右边界,每个输入区域的宽度受硬件加速器对输入张量宽度的限制)。当然,本领域的技术人员应能理解,下述说明仅为举例,而非对本申请具体实施方式的限定。具体地,在原待处理的张量为三维张量的情形下,上述第一输入区域的起始边界坐标和终点边界坐标均为长、宽或高坐标;待处理张量为更高维度时以此类推,不再赘述。
在此,待处理的张量在一些实施例中为大尺寸张量,例如该张量的尺寸或处理该张量所需的硬件资源超出了当前硬件加速器限制。第一输入区域则是从该待处理的张量中划出的一部分(即该第一输入区域为原待处理的张量的一部分)。
其中,对于原待处理张量为二维张量的情形,非限制性地,该第一输入区域与待处理二维张量所覆盖的区域均为矩形区域,并且该第一输入区域在不同的实施例中可以是以下各种情形之一:
a1)宽度与原待处理的二维张量一致,而高度小于原待处理的二维张量;
a2)高度与原待处理的二维张量一致,而宽度小于原待处理的二维张量;
a3)高度与宽度均小于原待处理的二维张量。
而对于原待处理张量为三维张量的情形,非限制性地,该第一输入区域与待处理三维张量所覆盖的区域均为矩体区域,并且该第一端输入区域在不同的实施例中可以是以下各种情形之一:
b1)宽度、长度与原待处理的三维张量一致,而高度小于原待处理的三维张量;
b2)高度、长度与原待处理的三维张量一致,而宽度小于原待处理的三维张量;
b3)高度、宽度与原待处理的三维张量一致,而长度小于原待处理的三维张量;
b4)高度、宽度与长度中至少两个小于原待处理的三维张量。
输入张量具有更高维度的情形与上述类似,本领域技术人员无需经过创造性劳动即可类比上述举例,为简便起见,不再展开举例。
当然,本领域的技术人员应当知晓,以上列举的各种情形仅为举例,旨在说明上述第一输入区域为待处理张量的一部分,而非对本申请具体实施方式的任何限定;其他现有的或者今后可能出现的对原待处理的张量的划分方式,如能适用于本申请,也包含在本申请的保护范围内,并以引用的方式包含于此。
下面接着以待处理张量为二维张量的情形加以说明。上述第一输入区域的起始边界坐标根据实际情况的不同,可能存在若干不同的确定方式。为简便起见,以下针对上面提到的情形a1),即分块宽度与原二维张量一致、而高度小于原二维张量的情形展开。须知,其他情形如a2)、a3),实施方式与之相同或大体相同,本领域的技术人员应能根据实际情况进行相应的调整,并且调整后的实施方式也涵盖在本申请的保护范围内。作为示例,待处理的原二维张量被划分为两个区域。图2a至图2d分别给出不同情形下第一输入区域在原二维张量中的位置示意,其中为保证相邻的输入区域产生相邻的输出区域,相邻的输入区域之间应有重叠部分。图3a、图3b、图3c和图3d则分别对应于图2a、图2b、图2c和图2d,示出待处理的二维张量对应的输出张量,以及第一输入区域对应的第一输出区域在该输出张量中的分布情况。
在一些实施例中,上述第一输入区域的起始边界坐标,是基于其他输入区域对应的输出区域的终点边界坐标而确定的。由于每个输出区域的边界位置和大小与相应的输入区域的边界位置和大小相对应,通过该方式,可以采用在硬件加速器所允许的范围内尽可能大的输入区域,可以充分利用硬件加速器的处理能力,并减少所需划分输入区域的数量以加快处理。对照图2b和图3b,在上述步骤S100中,张量处理设备基于对待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标,确定所述张量中第一输入区域的起始边界坐标。其中,图2b中的方块作为待处理张量中第一输入区域、第二输入区域的交叠部分的示意,该交叠部分经过处理,在输出张量中亦已相应示出。
其中,如上所述,每个输出区域的边界位置和大小与相应的输入区域的边界位置和大小相对应,即,实际对相应的第二输入区域进行相关处理(例如计算卷积),对于获取第二输出区域的终点边界坐标并不是必要的。实际上,上述第二输出区域的起始边界坐标和终点边界坐标是根据第二输入区域的起始边界坐标和终点边界坐标预先确定的。换言之,在对待处理的张量的任何部分进行实际的计算或变换之前,其输入区域的划分即可完成。因此,整个待处理的张量的各个输入区域的边界确定后,即可将各个输入区域分别读入不同的硬件加速器并行处理,而无需依次完成当前的输入区域的处理后方可确定下一输入区域并进行处理,故该处理方式能极大地提高张量、尤其是大尺寸张量的处理效率。
在一些实施例中,张量需要按照特定的格式输入硬件加速器。因此,划分得到的输入区域在由硬件加速器进行处理(例如计算卷积)之前,需要经过一些预处理。例如,二维张量需要在高度方向和/或宽度方向上以8为单位从存储单元中读入加速器(三维张量则需要在高度方向和/或宽度方向和/或长度方向上以8为单位从存储单元中读入加速器),并以同样的格式写入存储单元。这时,除了各个输入区域的高度是8的倍数外,相邻输入区域之间的重叠部分也必须是8的倍数。由于相邻输入区域产生的相邻的输出区域的高度通常不是8的倍数且存在重叠,因此相邻输出区域需要经过适当的裁剪,使得裁剪后的输出区域高度为8的倍数,且不存在重叠,以使各输入区域对应的输出区域能无缝且无重叠地拼接在一起。
相应地,在上述步骤S100中,张量处理设备以待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标为基准,向所述第二输入区域方向扩充所述第一输入区域,从而确定所述张量中第一输入区域的起始边界坐标。用于扩充第一输入区域的部分亦是从原待处理的张量中相应部分。以图2d和图3d所示情形为例,图2d左侧的实心方块表示第一输入区域中与第二输入区域的重叠部分,左侧的空心方块表示经过预处理(扩充)后第一输入区域中被扩充的部分;图3d左侧的小方块表示第一输出区域与第二输出区域的重叠部分。其中,如图2d所示,第一输入区域在高度方向上被扩充了一部分,即第一输入区域在从第二输入区域的终点边界向第二区域内部的方向进行了扩充,以完成第一输入区域的顶端对齐。在此,“顶端对齐”指的是,硬件加速器从存储单元读入该第一输入区域后,通过向读入的第一输入区域的顶端(例如,在高度方向上向第二输入区域)进行扩充,使该第一输入区域起始边界坐标为硬件加速器的预设区域高度(例如上面提到的8)的整数倍(硬件加速器按前述预设区域高度读入第一输入区域)。通过这种方式,使每次读入硬件加速器的区域的高度均为前述预设区域高度(例如8)的整数倍,以提升读取效率,使得相应的多个输出能够无缝和无重叠地拼接,避免出错。其中,在一些实施例中,输入区域被执行卷积操作而获得相应的输出区域,具体而言,卷积核(kernel)在二维输入数据上逐步“扫描”,输入区域经卷积核“扫描”而完成卷积操作后获得相应的输出区域,卷积核“滑动”的同时,计算权重矩阵和扫描所得的数据矩阵的乘积,然后把结果汇总成一个输出值。
参考图5a,将对原待处理的二维张量进行卷积处理。通常情况下,卷积核按行(当然也可按列)沿着待处理张量“滑动”(图中以向右的实线箭头示意)以执行卷积运算;当前行“滑动”计算完成后,卷积核进行一定量的偏移(图中以向下的宽箭头示意),并执行前述“滑动”卷积计算,直至整个待处理张量全部计算完成。卷积核每次的偏移量在一些实施例中又称为“步长(Stride)”,在卷积过程中,通过设置的步长来压缩一部分信息,或者使输出的尺寸小于输入的尺寸。在附图5a示出的情形中,步长设置为3(与卷积核高度/宽度相同)以提高处理速度,此时原待处理张量相当于被划分为A1部分、A2部分、A3部分、A4部分……进行处理,每一部分的宽度都相当于卷积核的高度/宽度。
其中对于上述情况而言,为了使后续按照一定步长对输入区域进行卷积处理而获得的输出值是有效的,在一些实施例中,还需进一步扩充第一输入区域,用于扩充的部分从原待处理张量中当前第一输入区域前部读入。具体来说,在很多情形下(包括一般情形及上面提到的需要执行“顶端对齐”的情形),当前第一输入区域的起始位置可能与原待处理的张量中原定的起始位置不一致,例如该起始位置不是图5a中A2、A3、A4等各部分的起始位置,而是处于这些部分中间的某处。这将导致将原待处理张量分成若干块再分别处理的处理时,相较于直接处理原待处理张量而言发生了“错位”(例如对张量执行步长不为1的卷积处理),进而对张量处理的结果也不再一致,即便将各部分处理后再拼合相应的输出,拼合后的输出也是无效的。
举例而言,参考附图5b,仍以卷积运算为基础进行说明,其中卷积核尺寸为3*3且步长为3。若直接处理待处理张量而不先切分,则卷积核应先后“扫描”A1部分(图中坐标0至坐标3)、A2部分(图中坐标4至坐标6)、A3部分(图中坐标7至坐标9)、A4部分(图中坐标10至坐标12)……而进行切分后,如上所述,第一输入区域在向上扩充后,其起始边界坐标为硬件加速器的预设原子区域高度(例如上面提到的8)的整数倍(假设坐标为8)。若直接由此开始执行卷积操作,则卷积核实际扫描区域的坐标为8至10,与原定扫描的A3部分错开,从而输出是无效的。为了继续采用上述切分原待处理张量的方式以降低系统需求、提升处理效率且避免出错,一种实现方式是,如图5b所示,以0值(或其他固定/可变值)填充第一输入区域(以带斜线的浅色部分方格示出),使已读入硬件加速器的第一输入区域的起始边界的位置能让填充后的输出与原定输出一致(以保证最终输出的正确性),实际即如图5c所示处理,卷积核对第一输入区域进行第一次“扫描”时,被“扫描”的部分既包括第一输入区域的起始部分,又包括上述填充的部分。换言之,在步骤S300中,张量处理设备通过所述硬件加速器将读入所述硬件加速器的所述第一输入区域的起始部分填充至对齐预定处理(例如,计算卷积)的步长的整数倍,并对填充后的第一输入区域执行所述预定处理,以获得所述第一输入区域所对应的第一输出区域。其中,将第一输入区域的起始部分填充至对齐预定处理(例如,计算卷积)的步长的整数倍,指的是填充后的第一输入区域的起始位置,在待处理的张量的投影(参考图5d)位置为该预定处理(例如,计算卷积)的步长的整数倍(例如图5d中的坐标位置6)。可选地,所述第一输入区域被填充的宽度小于所述步长,以减少对原待处理张量整体上的分块数量,充分利用硬件加速器的计算能力。
在将第一输入区域进行如上所述的扩充(可选地还有填充)后,第一输入区域经过相应处理(例如计算卷积)后所得的输出区域将与前一输出区域有部分重叠,若直接拼合当前输出区域与前一输出区域将出错;此外,若对读入硬件加速器的第一输入区域进行了填充,填充部分对应的输出为无效输出。因此第一输入区域所对应的输出区域尚需经过剪裁,去除不需要部分后,才可获得对应于由原张量划分而获得的输入区域所对应的有效输出区域。在此为方便起见,将对第一输入区域处理所得的对应的剪裁前的区域称为第一待剪裁区域。其中,在一些实施例中,上述步骤S300包括子步骤S310和子步骤S320(均未示出)。在子步骤S310中,张量处理设备通过硬件加速器对读入该硬件加速器的第一输入区域执行预定处理(例如,计算卷积并获得相应的输出结果),以获得第一输入区域所对应的第一待剪裁区域;随后在子步骤S320中,张量处理设备剪裁第一输入区域中的扩充区域在第一待剪裁区域中所对应的部分(对应于第一输入区域的起始部分,以图2c所示为例对应于“临时的”第一输出区域的上部标示出的需要剪裁的部分,去除该部分后方得到最终的第一输出区域),以获得所述第一输入区域所对应的第一输出区域。特别地,若对读入硬件加速器的第一输入区域进行了填充,在子步骤S320中,张量处理设备剪裁第一输入区域中的扩充区域及填充区域在第一待剪裁区域中所对应的部分(对应于第一输入区域的起始部分)。
当然,除了事先向第一输入区域的起始部分进行扩充/填充填充、并将上述第一输入区域对应的第一待剪裁区域的起始部分(对应于图3d中第一输出区域上部)进行剪裁之外,在一些实施例中,需要将第一待剪裁区域的终点部分进行剪裁,以便与其他输出区域进行拼合。例如,在对划分出的第一输入区域进行相关处理(如计算卷积)前,向其终点部分(对应于图2c中第一输入区域下部)进行扩充,相应地,经过处理(如计算卷积)得到的待剪裁区域对应的第一待剪裁区域的终点部分(对应于图3c中第一输出区域下部)需要进行剪裁。具体而言,上述步骤S300包括子步骤S330和子步骤S340(均未示出),其中,一些实施例可选地同时采用该子步骤S330、子步骤S340与上述子步骤S310、子步骤S320。在子步骤S330中,张量处理设备通过所述硬件加速器对读入该硬件加速器的第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一待剪裁区域;随后在子步骤S340中,张量处理设备剪裁所述第一待剪裁区域以确定所述第一输入区域所对应的第一输出区域的终点边界坐标,以获得所述第一输入区域所对应的第一输出区域,其中所述第一输出区域的宽度(相对于第一输出区域的长度而言,在图3a~图3d所示的情形下对应于竖直方向)为预设宽度的整数倍。在一些情形下,还需要从第一输出区域底部进行剪裁,以使第一输出区域的宽度为预设宽度的整数倍,同时也能从第一输出区域中去除与其他待与其拼合的输出区域的重合部分,提升后续的拼合效率。在此,预设宽度在一些实施例中指的是上面提到的硬件加速器的预设区域高度(例如8)。从而,将输出区域的宽度设置为前述预设宽度的整数倍,有利于提升硬件加速器的处理效率,并获得准确的拼合结果。
应当理解的是,以上所述的对第一输入区域的扩充操作,以及对第一待剪裁区域的剪裁操作,可以对同一第一输入区域(及对应的待剪裁区域)执行。具体而言,在一些实施例中,在上述步骤S100中,张量处理设备以待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标为基准,向所述第二输入区域方向扩充所述第一输入区域,从而确定所述张量中第一输入区域的起始边界坐标。而在上述子步骤S340中,张量处理设备剪裁所述第一输入区域中的扩充区域在所述第一待剪裁区域中所对应的部分,并确定所述第一输入区域所对应的第一输出区域的终点边界坐标,以获得所述第一输入区域所对应的第一输出区域,其中所述第一输出区域的宽度(相对于第一输出区域的长度而言,在图3a~图3d所示的情形下对应于竖直方向)为所述预设宽度的整数倍。在此,预设宽度在一些实施例中指的是上面提到的硬件加速器的预设区域高度(例如8)。如上所述,当第一输出区域的终点边界坐标确定后,其他输入区域(例如将其称为第三输入区域)的起点边界可根据该终点边界坐标而确定;第三输入区域对应的输出区域(例如将其称为第三输出区域)后续可选地用于与第一输出区域进行拼合而获得更大的输出区域。由此可见,若第一输入区域非起点区域(起始边界与待处理的张量的一个边界重合),经过上述步骤S100和子步骤S340后获得的第一输出区域即可用于与两个相邻的输出区域进行拼合,且由于各输入区域在确定各自的边界后独立(各输入区域对应的输出区域无需以其他输入区域/输出区域为输入),相应地各输出区域可通过并行处理获得,因此总体上对待处理的张量的处理效率大大提升了。
如上所述,相邻的两个输入区域之间应有重叠部分,该重叠部分在两个输入区域被输入硬件加速器后分别运算处理后获得的输出也是重叠的。为了确保输出结果正确,对于两个输入区域对应的两个输出区域,应从一个输出区域中剔除重叠的输出部分。出于效率考虑,在一些实施例中,在当前输入块(第一输入区域)和下一输入块(其他输入区域,其中第一输入区域的底端和下一输入块的顶端有部分重叠)中,对当前输出块(第一输出区域)进行底端对齐,具体而言是对第一输出区域的底端进行剪裁,以使第一输出区域的终点边界坐标值为前述预设宽度(例如,8)的整数倍。其中,对第一输出区域的底端进行剪裁,还能从第一输出区域中去除与其他待与其拼合的输出区域的重合部分,提升后续的拼合效率。
仍需说明的是,从待处理的张量中获得一个输入区域之前,以及对输入区域进行处理以获得相应的输出区域之前,事先对其他输入区域进行处理并获得相应的输出区域并不是必要的。如上所述,对各个输入区域的处理(例如,计算卷积)在一些实施例中可以并行以大量缩短整体的处理时间。在一些实施例中,上述子步骤S340又包含子步骤S341、子步骤S342和子步骤S343(均未示出)。其中在子步骤S341中张量处理设备剪裁所述第一输入区域中的扩充区域在所述第一待剪裁区域中所对应的部分,以确定剪裁后第一输出区域的起始边界坐标;而在子步骤S342中张量处理设备确定所述第一输入区域所对应的第一输出区域的终点边界坐标,其中所述第一输出区域的宽度为所述预设宽度的整数倍。
具体而言,在一些实施例中,在步骤S100中,张量处理设备先确定所述第一输入区域的扩充量,其中该扩充量满足条件:扩充后的第一输入区域经预定处理(例如,计算卷积)所得的第一待剪裁区域在去除所述第一输入区域中扩充区域对应的部分后,剩余部分的宽度为所述预设宽度的整数倍。此时,在对第一待剪裁区域的起始部分进行剪裁后,其对应的第一输出区域的终点边界坐标亦随之而确定。其中对于计算卷积而言,卷积前后的区域大小关系是确定的,例如在一个具体实施例中,大小为3*3的区域在计算卷积后所得的区域大小为1*1,因此对于一个确定的卷积计算而言,若计算卷积后的区域尺寸已知,则卷积前的区域(例如上述第一输入区域)的区域尺寸也可唯一确定。例如,以输入硬件加速器的输入块的高度设置为8的倍数为例,若输入张量高度为128,最大允许输入的张量高度为64的卷积,如上所述,为保证相邻的输入区域产生相邻的输出区域,保证将原待处理的张量进行切分处理后输出结果仍然正确,相邻的输入区域之间应有重叠部分,故至少需要将输入块切分为3块(输入区域)。随后,在子步骤S343中,张量处理设备根据剪裁后第一输出区域的起始边界坐标和第一输出区域的终点边界坐标,确定和读取第一输出区域,可选地该第一输出区域用于与其他输出区域进行拼合,以获得待处理的张量经相应处理(例如,计算卷积)后的输出结果。由此,切分后的每个输入区域无需依赖对其他输入区域的处理结果即可确定,而每个输入区域在确定后可分别读入不同的硬件加速器并行处理(例如计算卷积),而无需等待前序区域处理完成,因此系统的处理效率大大提高。
其中如上所述,对于一个确定的卷积计算而言,若计算卷积后的区域尺寸已知,则卷积前的区域(例如上述第一输入区域)的区域尺寸也可唯一确定。因此,在一些实施例中,张量处理设备相应地在步骤S100中以待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标为基准,基于预设宽度,向所述第二输入区域方向扩充所述第一输入区域,从而确定所述张量中第一输入区域的起始边界坐标,其中所述第一输入区域的起始边界坐标相对于所述张量的起始边界坐标的距离为所述预设宽度的整数倍。从而,在典型状况下(例如第一输入区域将不包含待处理的张量的终点区域),若第一输入区域的终点边界坐标同样确定为前述预设宽度的整数倍,则整个第一输入区域的宽度(在图2a~图2d的情况下,第一输入区域的宽度实际为图示第一输入区域的高度)即为前述预设宽度的整数倍,便于后续输入硬件加速器进行处理,省去了繁杂的运算,结合对各个输入区域的并行处理,系统的处理效率大大提升。
在对待处理的张量进行横向或纵向划分的情形下,一个输入区域的起始边界坐标和终点边界坐标用于确定该输入区域的范围,即起始边界坐标和终点边界坐标之间的区域为该输入区域。在张量被划分了若干次后,其剩余未经划分的部分,有可能超过硬件加速器的处理限制,也可能未超过硬件加速器的处理限制,这两种情形的处理方式可能会有不同。其中,在剩余部分较多、尺寸超过硬件加速器一次能处理的限制时,需要进一步将剩余部分进行划分。此时需要对剩余部分是否需要划分进行判断。
在此以判断当前剩余部分是否超过加速器处理限制为例进行说明。在一些实施例中,在上述步骤S200中,张量处理设备响应于检测到所述第一输入区域为非终点区域,基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标。其中,前述非终点区域指的是当前待划分出的第一输入区域并非待处理的张量的最后一个区域,亦即,原待处理的张量当前尚未划分的部分的尺寸仍超过硬件加速器的处理限制。一种检测方式是,基于硬件加速器的工作参数信息(例如对输入张量高度的限制、片上内存数量等),将待处理的张量中未划分部分的高度与硬件加速器的预设处理高度(例如该硬件加速器能够处理的张量的最大高度)进行比较,若未划分部分的高度大于该预设处理高度,则判定第一输入区域为非终点区域;否则,判定第一输入区域为终点区域。此外,如前所述,若考虑到相邻的输入区域之间应有重叠部分,则应将待处理的张量中未划分部分的高度加上预设的重叠部分高度而获得高度之和后,与硬件加速器的预设处理高度进行比较,若前述高度之和大于该预设处理高度,则判定第一输入区域为非终点区域;否则,判定第一输入区域为终点区域。
而若未划分部分的高度不足前述预设处理高度,则未划分的部分不必再次划分,而是整体作为第一输入区域或者其一部分。此时,第一输入区域为终点区域。相应地,在一些实施例中,上述方法还包括步骤S400(未示出)。在该步骤S400中,张量处理设备响应于检测到所述第一输入区域为终点区域,将所述张量的终点边界坐标确定为所述第一输入区域的终点边界坐标。
可选地,在一些实施例中,上述方法还包括步骤S500(未示出)。在该步骤S500中,张量处理设备基于所述第一输出区域拼合所述张量的输出张量。结合上述各实施例中对原大尺寸张量的切分处理,本方案根据硬件的相关参数确定大尺寸张量的分块,再对分块分别进行处理,具有计算量小、处理速度快的优点。并且,从原张量中划分出的各个部分区域的大小是根据硬件加速器的处理能力而确定的,因此该处理方式能尽可能减少对大尺寸张量的切分,从而该处理方式可以最大化计算资源和带宽的利用率。
为了进一步说明以便于理解,以下以待处理的张量是高度为128的二维张量、卷积核尺寸为3*3、卷积步长参数为1的卷积为例,结合图示说明具体操作过程。其中,硬件加速器最大允许输入的张量高度为64。如上所述,该待处理的二维张量至少需要切分为3块并分别处理。图4a、图4b和图4c分别示出第一、第二和第三个输入区域的切分过程。
其中,对于一个输入区域而言(为方便对照,下称第一输入区域),首先,根据前一输入区域所对应的前一输出区域的终点边界坐标,确定当前输入区域(即第一输入区域)的起始边界坐标。具体而言,需执行以下步骤:
1)根据前一输出块(即前一输出区域)的底端坐标(即终边界点坐标)确定当前输出块(即第一输入区域所对应的第一输出区域)的顶端坐标(即起始边界坐标);
2)确定当前输出块(即第一输出区域)的顶端坐标(即起始边界坐标)对应的输入区域(即第一输入区域)的顶端坐标(即起始边界坐标)。
随后,根据需要在高度方向上对第一输入区域向上扩充,即执行以下步骤:
3)执行顶端对齐,将第一输入区域的高度扩充至能被预设宽度(本例中为8)整除(若原高度能被整除则不必再扩充),向上对齐后,当前输出块会多出若干无效行,这些无效行在后续步骤中需要裁剪掉;
4)对于卷积计算而言,若切分边界与卷积计算的步长无法对齐,则需要在当前输入块的顶端填充若干行(例如以0值或其他值进行填充);填充后,当前输出块中会多出一个无效行,该无效行在后续步骤中需要裁剪掉;
5)经过上述对齐和填充后,确定当前输入块(第一输入区域)经过卷积运算后的当前输出块(第一输出区域)的顶端坐标(起始边界坐标);
6)确定当前输出块(第一输出区域)顶端需要裁剪掉的行数,其为当前输出块(第一输出区域)在对齐前后的起始边界坐标之差;
7)确定当前输入块(第一输入区域)的底端坐标(终点边界坐标)并进行底端对齐。
以上详述了本申请的各个实施例。须知,本申请的各个实施例并不排斥对划分出的各个部分(例如上述第一输入区域)进一步划分,例如将上述第一输入区域被横向地进一步划分为若干块(以图2a~图2d所示为基准)。
根据本申请的另一方面,本申请还提供一种张量处理系统,其中,所述系统至少包括:
输入区域确定装置,用于确定待处理的张量中一输入区域,其中所述输入区域确定装置被配置为:
确定待处理的张量中第一输入区域的起始边界坐标;以及
基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;
区域处理装置,用于获得所述第一输入区域对应的第一输出区域,其中所述区域处理装置被配置为:
通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (13)
1.一种基于硬件加速器的张量处理方法,其中,该方法包括:
基于对待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标,以待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标为基准,向所述第二输入区域方向扩充第一输入区域,从而确定所述张量中第一输入区域的起始边界坐标;
基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;
通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域。
2.根据权利要求1所述的方法,其中,所述通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域,包括:
通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一待剪裁区域;
剪裁所述第一输入区域中的扩充区域在所述第一待剪裁区域中所对应的部分,以获得所述第一输入区域所对应的第一输出区域。
3.一种基于硬件加速器的张量处理方法,其中,该方法包括:
基于对待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标,确定所述张量中第一输入区域的起始边界坐标;
基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;
通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一待剪裁区域;
剪裁所述第一待剪裁区域以确定所述第一输入区域所对应的第一输出区域的终点边界坐标,以获得所述第一输入区域所对应的第一输出区域,其中所述第一输出区域的宽度为预设宽度的整数倍。
4.根据权利要求3所述的方法,其中,所述确定待处理的张量中第一输入区域的起始边界坐标,包括:
以待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标为基准,向所述第二输入区域方向扩充所述第一输入区域,从而确定所述张量中第一输入区域的起始边界坐标;
所述剪裁所述第一待剪裁区域以确定所述第一输入区域所对应的第一输出区域的终点边界坐标,以获得所述第一输入区域所对应的第一输出区域的步骤,包括:
剪裁所述第一输入区域中的扩充区域在所述第一待剪裁区域中所对应的部分,并确定所述第一输入区域所对应的第一输出区域的终点边界坐标,以获得所述第一输入区域所对应的第一输出区域。
5.一种基于硬件加速器的张量处理方法,其中,该方法包括:
基于对待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标,以待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标为基准,基于预设宽度,向所述第二输入区域方向扩充第一输入区域,从而确定所述张量中第一输入区域的起始边界坐标,其中所述第一输入区域的起始边界坐标相对于所述张量的起始边界坐标的距离为所述预设宽度的整数倍;
基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;
通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域。
6.根据权利要求1至5中任一项所述的方法,其中,所述基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标包括:
响应于检测到所述第一输入区域为非终点区域,基于所述硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标。
7.根据权利要求6所述的方法,其中,所述方法还包括:
响应于检测到所述第一输入区域为终点区域,将所述张量的终点边界坐标确定为所述第一输入区域的终点边界坐标。
8.根据权利要求1、权利要求3和权利要求5中任一项所述的方法,其中,所述方法还包括:
基于所述第一输出区域拼合所述张量的输出张量。
9.一种张量处理系统,其中,所述系统至少包括:
输入区域确定装置,用于确定待处理的张量中一输入区域,其中所述输入区域确定装置被配置为:
基于对待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标,以待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标为基准,向所述第二输入区域方向扩充第一输入区域,从而确定所述张量中第一输入区域的起始边界坐标;以及
基于硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;
区域处理装置,用于获得所述第一输入区域对应的第一输出区域,其中所述区域处理装置被配置为:
通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域。
10.一种张量处理系统,其中,所述系统至少包括:
输入区域确定装置,用于确定待处理的张量中一输入区域,其中所述输入区域确定装置被配置为:
基于对待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标,确定所述张量中第一输入区域的起始边界坐标;以及
基于硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;
区域处理装置,用于获得所述第一输入区域对应的第一输出区域,其中所述区域处理装置被配置为:
通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一待剪裁区域;以及
剪裁所述第一待剪裁区域以确定所述第一输入区域所对应的第一输出区域的终点边界坐标,以获得所述第一输入区域所对应的第一输出区域,其中所述第一输出区域的宽度为预设宽度的整数倍。
11.一种张量处理系统,其中,所述系统至少包括:
输入区域确定装置,用于确定待处理的张量中一输入区域,其中所述输入区域确定装置被配置为:
基于对待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标,以待处理的张量中第二输入区域处理所得的第二输出区域的终点边界坐标为基准,基于预设宽度,向所述第二输入区域方向扩充第一输入区域,从而确定所述张量中第一输入区域的起始边界坐标,其中所述第一输入区域的起始边界坐标相对于所述张量的起始边界坐标的距离为所述预设宽度的整数倍;以及
基于硬件加速器的工作参数信息,确定所述第一输入区域的终点边界坐标;
区域处理装置,用于获得所述第一输入区域对应的第一输出区域,其中所述区域处理装置被配置为:
通过所述硬件加速器对读入所述硬件加速器的所述第一输入区域执行预定处理,以获得所述第一输入区域所对应的第一输出区域。
12.一种计算机可读存储介质,其中,该计算机可读存储介质上存储有计算机程序,所述计算机程序在被执行时能够实现权利要求1至8中任一项所述的张量处理方法。
13.一种电子设备,其中,所述电子设备至少包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110458267.5A CN113159295B (zh) | 2021-04-27 | 2021-04-27 | 基于硬件加速器的张量处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110458267.5A CN113159295B (zh) | 2021-04-27 | 2021-04-27 | 基于硬件加速器的张量处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113159295A CN113159295A (zh) | 2021-07-23 |
CN113159295B true CN113159295B (zh) | 2022-07-01 |
Family
ID=76871196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110458267.5A Active CN113159295B (zh) | 2021-04-27 | 2021-04-27 | 基于硬件加速器的张量处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113159295B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111079917A (zh) * | 2018-10-22 | 2020-04-28 | 北京地平线机器人技术研发有限公司 | 张量数据分块存取的方法及装置 |
CN111667051A (zh) * | 2020-05-27 | 2020-09-15 | 上海赛昉科技有限公司 | 适用边缘设备的神经网络加速器及神经网络加速计算方法 |
CN111738433A (zh) * | 2020-05-22 | 2020-10-02 | 华南理工大学 | 一种可重配置的卷积硬件加速器 |
CN112395547A (zh) * | 2019-08-14 | 2021-02-23 | 英特尔公司 | 对张量进行图块遍历以进行卷积运算的方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
US10877812B2 (en) * | 2018-09-06 | 2020-12-29 | International Business Machines Corporation | Hardware environment and method of performing matrix multiplication in artificial intelligence applications |
CN113902921B (zh) * | 2018-11-30 | 2022-11-25 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、设备及存储介质 |
-
2021
- 2021-04-27 CN CN202110458267.5A patent/CN113159295B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111079917A (zh) * | 2018-10-22 | 2020-04-28 | 北京地平线机器人技术研发有限公司 | 张量数据分块存取的方法及装置 |
CN112395547A (zh) * | 2019-08-14 | 2021-02-23 | 英特尔公司 | 对张量进行图块遍历以进行卷积运算的方法和装置 |
CN111738433A (zh) * | 2020-05-22 | 2020-10-02 | 华南理工大学 | 一种可重配置的卷积硬件加速器 |
CN111667051A (zh) * | 2020-05-27 | 2020-09-15 | 上海赛昉科技有限公司 | 适用边缘设备的神经网络加速器及神经网络加速计算方法 |
Non-Patent Citations (2)
Title |
---|
DEEPEYE: A Deeply Tensor-Compressed Neural Network Hardware Accelerator;Yuan Cheng et al.;《IEEE》;20191231;第1-8页 * |
一种CNN网络卷积并行计算方法;宋鹤鸣;《工业控制计算机》;20191231;第32卷(第2期);第99-100、103页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113159295A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101142739B1 (ko) | 검색 영역을 제한한 이미지 복원 장치 및 방법 | |
CN113485837B (zh) | 一种基于并行分支和张量切分的张量处理方法和处理系统 | |
CN110598761A (zh) | 一种点胶检测方法、装置及计算机可读存储介质 | |
US9959670B2 (en) | Method for rendering terrain | |
JP2021532459A (ja) | 標的細胞標識方法、装置、記憶媒体及び端末デバイス | |
CN110647596B (zh) | 地图数据处理方法和装置 | |
CN110569489B (zh) | 基于pdf文件的表格数据解析方法及装置 | |
CN111209903B (zh) | 一种人脸检测的方法与设备 | |
CN103049900A (zh) | 选择候选图像帧的设备和方法以及校正损伤的设备和方法 | |
CN112232426A (zh) | 目标检测模型的训练方法、装置、设备及可读存储介质 | |
CN113159295B (zh) | 基于硬件加速器的张量处理方法和系统 | |
CN113485836A (zh) | 一种基于张量切分的张量处理方法和张量处理系统 | |
CN115272683A (zh) | 一种基于深度学习的中心差分信息滤波相位解缠方法 | |
CN113240077B (zh) | 一种张量处理方法和系统 | |
CN112634286A (zh) | 图像的裁剪方法及装置 | |
JP2009059028A (ja) | 接触解析装置、接触解析プログラム及び接触解析プログラムを記録した記録媒体 | |
CN112906708B (zh) | 一种图片处理方法、装置、电子设备和计算机存储介质 | |
US10643312B2 (en) | Smoothed image generating device, abnormality determining device, and smoothed image generating method | |
US11854177B2 (en) | Image splicing method | |
CN112835533B (zh) | 一种基于机架级别的云存储阵列扩展方法及装置 | |
CN116563521B (zh) | 目标检测的检测框处理方法及其装置、电子设备 | |
CN113554095B (zh) | 特征图处理方法、装置及计算机设备 | |
CN115601363B (zh) | 一种基于小目标检测算法的装配式建筑产品缺陷检测方法 | |
CN117576249B (zh) | 一种芯片版图数据处理方法及装置 | |
CN117372421B (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 |