CN113485837A - 一种基于并行分支和张量切分的张量处理方法和处理系统 - Google Patents

一种基于并行分支和张量切分的张量处理方法和处理系统 Download PDF

Info

Publication number
CN113485837A
CN113485837A CN202110823049.7A CN202110823049A CN113485837A CN 113485837 A CN113485837 A CN 113485837A CN 202110823049 A CN202110823049 A CN 202110823049A CN 113485837 A CN113485837 A CN 113485837A
Authority
CN
China
Prior art keywords
target
operator
operators
tensor
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110823049.7A
Other languages
English (en)
Other versions
CN113485837B (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.)
Hanbo Semiconductor Shanghai Co ltd
Original Assignee
Hanbo Semiconductor Shanghai 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 Hanbo Semiconductor Shanghai Co ltd filed Critical Hanbo Semiconductor Shanghai Co ltd
Priority to CN202110823049.7A priority Critical patent/CN113485837B/zh
Publication of CN113485837A publication Critical patent/CN113485837A/zh
Application granted granted Critical
Publication of CN113485837B publication Critical patent/CN113485837B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种基于并行分支和张量切分的张量处理方法和处理系统,该方法包括:确定用于对原始张量进行处理的多个操作算子中的目标算子;组合至少一个目标算子以及至少一个其他算子以生成目标子图,其中所述目标算子与所述其他算子具有相同的直接后继算子,所有目标算子与已组合的目标算子之差集为剩余目标算子;以及,基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。本申请能够明显提升对大尺寸张量进行复杂运算(例如运算所需的各类计算资源超出系统资源限制)的效率。

Description

一种基于并行分支和张量切分的张量处理方法和处理系统
技术领域
本申请涉及计算机信息处理领域,尤其涉及一种基于并行分支和张量切分的张量处理方法和处理系统。
背景技术
近几年来,计算机系统处理能力取得了巨大发展。在某些情况下(例如处理深度学习神经网络时),会涉及二维或更高维张量的卷积计算。以二维张量为例,在实际计算时,二维张量的某些参数有时可能会超出硬件加速器的相关限制,例如张量的高度或宽度可能超出加速器的相应限制,或者加速器对片上内存、可用的计算资源等可能会进行限制。这些限制都制约了对大尺寸张量的处理。
尤其是,在一些复杂的计算场景下,计算中的同一个二维张量可能会在进行不同的处理,即产生了分支。其中,分支是一个计算图层面的概念,表示同一个张量作为两个不同算子的输入,产生不同的输出。为了便于说明,图1以谷歌(Google)公司推出的一种基于Inception模块的深度神经网络模型GoogLeNet为例进行说明,其中从T0的Pooling开始,处理过程“分叉”(出现分支),分别经过以下4个分支分别进行计算:1)T0->T1->T2;2)T0->T3->T4;3)T0->T5->T6;4)T0->T7。最后各分支在Concat汇合。在这种情况下,对每个分支分别进行处理的过程中均有可能会遇到上面所提到的加速器对计算资源的限制。
为了在上述限制存在的情况下对大尺寸张量进行预定处理,可以将大尺寸张量进行切分(例如将二维/三维张量在高度上切分为若干部分),再分别对切分获得的各个部分进行前述预定处理,最后将各部分的处理结果进行拼接,以获得对原大尺寸张量进行预定处理的处理结果。一般而言,若需要依次对大尺寸张量进行若干次类似的处理,则需要在每次处理前切分大尺寸张量,并在处理后将处理结果合并,以供后续处理;而对于多分支的情况,则需要对每个分支分别进行相应的处理,张量计算的规模将迅速扩大。
发明内容
本申请的一个目的是提供一种基于并行分支和张量切分的张量处理方法,该方法包括:
确定用于对原始张量进行处理的多个操作算子中的目标算子;
组合至少一个目标算子以及至少一个其他算子以生成目标子图,其中所述目标算子与所述其他算子具有相同的直接后继算子,所有目标算子与已组合的目标算子之差集为剩余目标算子;
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。
根据本申请的另一方面,本申请还提供了一种基于并行分支和张量切分的张量处理系统,该系统至少包括:
目标子图获取装置,用于获取包括目标算子的目标子图,其中所述目标子图获取装置被配置为:
确定用于对原始张量进行处理的多个操作算子中的目标算子;
组合至少一个目标算子以及至少一个其他算子以生成目标子图,其中所述目标算子与所述其他算子具有相同的直接后继算子,所有目标算子与已组合的目标算子之差集为剩余目标算子;
以及,
张量处理装置,用于基于所述目标子图处理所述原始张量,其中所述张量处理装置被配置为:
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。
根据本申请的另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时能够实现如上所述的张量处理方法。
根据本申请的另一方面,本申请还提供了一种电子设备,所述电子设备至少包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现如上所述的张量处理方法。
与现有技术相比,本申请提供的基于并行分支和张量切分的张量处理方法和处理系统,将具有相同的直接后继算子(处于不同分支且这些分支于同一点汇合)的目标算子(对张量进行处理所需的各类计算资源超出系统资源限制,因而需要将待处理张量切分后进行处理的算子)组合成为一个子图(即目标子图),进而基于该子图和其他算子进行计算,从而在整体上减少了通过一系列算子对原大尺寸张量进行若干处理时的“切分-处理-合并”过程,即对于一个目标子图而言,其输入张量仅需切分一次,在分别依序处理切分所得的各个部分后,再一并合并各个输出结果即可,能够明显提升对大尺寸张量进行复杂运算(例如运算所需的各类计算资源超出系统资源限制)的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出一种含分支的张量处理的流程;
图2是本申请一个实施例中张量处理方法的流程图;
图3a和图3b示出本申请另一实施例不同分支中的目标算子;
图4a至图4d示出本申请另一实施例中目标子图的构造及处理过程;
图5示出本申请另一实施例中目标子图的构造及处理过程。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为了使本技术领域的人员更好地理解本申请的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请提供的基于并行分支和张量切分的张量处理方法、处理系统,适用于通过硬件加速器对张量、尤其是大尺寸张量进行处理,例如对张量计算卷积,该处理方法对最大池化和平均池化也同样适用。其中,分支是一个计算图层面的概念,表示同一个张量作为两个不同算子的输入,产生不同的输出。以计算张量的卷积为例,硬件加速器通常有各种限制,例如片上内存的物理限制、其他计算资源的限制,以及这些限制导致的对输入张量的高度及宽度的限制等。在计算资源有限的情况下,可以通过将具有相同的直接后继算子(处于不同分支且这些分支于同一点汇合)的目标算子(对张量进行处理所需的各类计算资源超出系统资源限制,因而需要将待处理张量切分后进行处理的算子)组合成为一个子图(即目标子图),进而基于该子图和其他算子进行计算,从而在整体上减少了通过一系列算子对原大尺寸张量进行若干处理时的“切分-处理-合并”过程,即对于一个目标子图而言,其输入张量仅需切分一次,在分别依序处理切分所得的各个部分后,再一并合并各个输出结果即可,从而能够明显提升对大尺寸张量进行复杂运算(例如运算所需的各类计算资源超出系统资源限制)的效率,且相对于通常的处理方式而言,复杂运算对应的算子越多、所涉及的复杂分支越多,上述处理方式对效率的提升越显著。
下面将以一种张量处理设备为例,详细描述本申请的各个具体实施方式。
请参图1所示,本申请提供一种基于并行分支和张量切分的张量处理方法。在此,分支是一个计算图层面的概念,表示同一个张量作为两个不同算子的输入,产生不同的输出。该方法包括步骤S100、步骤S200和步骤S300。
其中,在步骤S100中,张量处理设备确定用于对原始张量(待处理的大尺寸张量)进行处理的多个操作算子中的目标算子。其中,对于该“目标算子”(或者,在下面的描述中也可能被称为“待切分算子”),在处理其所运算的张量(或者有时也被称为该算子的输入张量)时,所需的各类计算资源超出系统资源限制,因而在对输入张量进行处理前,需要将输入张量切分为若干部分(例如,将二维输入张量在高度方向上切分为若干个子块),再基于该目标算子(或者待切分算子)分别对这若干部分进行处理,方能在计算资源的限制下完成本无法完成的对输入张量的处理工作。对张量的切分可以按实际需求进行,例如将二维输入张量在高度/宽度方向进行切分,或者将三维输入张量在长度/宽度/高度方向切分,或者将不同的切分策略进行组合,在此不再一一列举。
然后,在步骤S200中,张量处理设备组合至少一个目标算子以及至少一个其他算子以生成目标子图,其中所述目标算子与所述其他算子具有相同的直接后继算子。换言之,目标算子与此处的至少一个其他算子分别位于不同的计算分支上,且计算结果将发生汇合(如图1中的Concat)。此时将所有目标算子与已组合的目标算子之差集,称为剩余目标算子。
下文将展开对该“剩余目标算子”的处理。在之后的各图中,各步骤分别以方块表示算子;其中右上角带有标记的算子表示目标算子。例如参考图3a所示的对于待处理张量的原处理过程,待处理的输入张量经过一系列的算子(在图中以方框示出)进行处理。因为同一个待处理张量在本例中作为两个不同算子的输入,因此两个目标算子分属于两个不同的“分支”。对于各个算子中的一部分(具体指目标算子),其因为计算资源的限制而无法直接完成对其输入张量的相应处理,而需要各自将输入张量切分后(切分所得部分的数量或者切分方式等未必相同),再分别处理切分所得的各个部分,借以实现对整个输入张量的处理(可选地还需要对各部分的处理结果进行拼合已获得整个输入张量所对应的正确输出)。
对于不需要“汇合”的分支,每个分支分别进行计算即可,参考图3b。在必要时,可分别将每个目标算子各自作为目标子图,对每个目标子图的输入张量进行切分以获得若干个部分,再对这若干个部分进行计算,最后将计算结果进行拼合,以获得对完整的输入张量进行目标算子所对应运算的计算结果。为了提高这种不“汇合”的分支的计算效率,对于其中部分或全部分支,在某些情形下,会考虑将这些分支中满足特定条件的两个或更多的目标算子进行组合处理,以提高处理效率,这在后续的实施例中将具体展开。
而对于后续“汇合”的分支,参考图4a,紧邻汇合点且在汇合点前,存在目标算子(即汇合点的算子为该目标算子的直接后继算子),那么将紧邻汇合点且在汇合点前的所有算子都组合为目标子图,参考图4b。换言之,目标子图中的各个算子(包括目标算子和其他算子)均具有紧邻的汇合点算子作为其后继算子。未与其他算子组合成目标子图的目标算子,则单独作为目标子图。图4c和图4d示出的情形相似,区别在于,图4a/图4b对应于不同的输入进行计算后汇合的情形,而图4c/图4d对应于同一输入进行计算后汇合的情形。
而在步骤S300中,张量处理设备基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合的目标算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子(或者其自身也可视为另一目标子图)的输入张量分别经切分后输入。硬件加速器的硬件资源满足切分后的各部分满足目标子图、剩余目标算子处理该部分的需求。具体地,对于目标子图而言,整个目标子图的输入张量亦依原次序经由已经组合于目标子图中的目标算子进行处理;其中,在目标子图的输入张量在被处理前,首先需经过划分以获得若干部分,这若干部分再分别依次经目标子图中的各个目标算子进行处理以获得相应的处理结果,最后再将这若干部分对应的处理结果拼合而获得单一的输出,该单一的输出等效于实际对原输入张量进行处理所获得的输出。而对于未组合至任何目标子图的目标算子而言,其输入张量亦经切分成合适数量的部分后分块处理,随后处理结果再合并以获得正确的输出。而对于切分的过程而言,原各分支上组合于目标子图中算子的输入,经切分后分别输入原各分支中的算子并进行计算。
在各图中,以四维张量为例进行说明,若:以N表示输入图片数目,或者输入样本数目;以C表示张量通道数;H表示张量高度;W表示张量宽度,则一串数字(1,3,256,256)表示1幅图片,其输入通道为3,高度为256,宽度为256。各分支上的算子对切分后的输入进行处理后得到切分后的输出,而切分后的输出再经由汇合点的算子处理。这就要求汇合点的算子的输入,其N、C、H、W必须要是相等的,也就是要求各分支的输出其N、C、H、W也必须相等。同时也要求各分支的切分块数也是相等的。但是各分支切分后的输入N、C、H、W不一定相等,可以从汇合点的输入反推得到。
在此,各操作算子可能是卷积算子(用于对输入张量执行卷积计算)、池化算子(用于对输入张量执行池化计算)或其他可能的张量算子;各实施例仅作为本申请的示例性说明,而不对本申请的具体实施方式形成任何限定。
需强调的是,如前所述,直接后继算子(汇合点)的直接前驱算子(即紧邻汇合点的各个算子,包括相应的目标算子,可能还包括非目标算子的其他算子)均组合于所述目标子图。对于该种目标子图中的各个算子而言,其输入张量均根据当前目标子图中目标算子的计算需求而被切分,切分后的计算结果在该后继算子(汇合点)进行合并计算,以获得汇合点算子的输出。从而,紧邻汇合点的目标算子的输入张量在经过切分、计算后,其输出张量无需先进行合并再输入汇合点算子,大大减少了计算步骤,节约了计算资源,提升了计算效率。
其中,所述相同的直接后继算子为加算子、乘算子和拼接算子中任一,用于对来自不同分支的输入张量进行计算并获得一个相应的计算/处理结果。
在一些实施例中,上述目标算子是基于一定的筛选条件而确定的。换句话说,对于一个算子而言,其满足一定的筛选条件时,则判定该算子为目标算子,并在某些情形下与其相邻的目标算子组合而获得目标子图。上述筛选条件可以是以下任意一种(或者两种):
1)基于相应操作算子的预期输入张量的高度超出硬件允许值;或者,
2)基于相应操作算子处理其预期输入所需的内存需求超出可用片上内存。
其中,“预期输入张量”指的是即将由该操作算子进行处理(即输入该操作算子)的张量,并不一定是实际已经获得的具体张量。事实上,在操作算子已经确定的情况下,一个确定的输入张量的输出的尺寸或者所需要的计算资源的数量也是确定的,即,各个目标算子所能处理的输入张量的尺寸或处理输入张量所需的计算资源的数量是确定的。由此,即可确定一系列操作算子的预期输入张量的尺寸或者所需计算资源是否超出可用范围。
另外,对于上述第1)种情形,一个输入张量的“高度”仅为一相对概念,在不同的实施例中,实际可能会对应于“宽度”“长度”等沿着二维/三维或更高维张量的一条坐标轴的方向,在此不对具体实现方式进行任何限定。
进一步地,对于上述情形2),在一些实施例中,在上述步骤S300中,张量处理设备基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,其中基于所述目标子图处理其预期输入所需的内存需求在可用片上内存的范围之内。即,如果某个目标子图按照当前的张量切分方案分别处理其输入张量的各个部分(其中输入张量的各个部分分别依次经目标子图中的各目标算子进行处理)时,不会出现内存需求超出当前片上内存限制的情况,则按原顺序进行处理即可。
对于内存超限问题而言,如果目标子图中各个算子的输入和输出均可以保存在加速器内部存储空间(片上存储空间),虽然计算量增加,但是增加的计算量所花的时间小于:从外部存储空间取数据的时间与从内部存储空间取数据的时间之差,则很明显系统效率得到提升。
另外,为解决前述内存超限问题,亦可增加原目标子图的输入张量被切分的部分的数量,并增加用于进行相应处理的并行处理单元,此时由于并行的处理单元中每一个所处理的数据量减少,因此系统整体的处理速度会有所提升。相应地,在上述步骤S300中,基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入;若基于当前目标子图处理其预期输入所需的内存需求超出可用片上内存,增加对所述预期输入的切分数量,并基于更新后的切分数量重新切分所述预期输入。
需要说明的是,组合目标算子为子图,以及对目标算子的输入张量的切分,并不需要随着实际处理过程而进行。即,在上述步骤S300中,张量处理设备确定所述目标子图以及所述剩余目标算子的输入张量的切分数量,并基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。在实际处理前,各部分的处理方式即已先行确定,最大限度地提升处理效率,并在确定系统无法处理当前输入张量的情况下及时提示操作人员检查和采取措施,而无需在实际运行中才进行提示,从而在整体上提升处理效率。当然,为了进一步提升处理效率,张量处理设备还可动态确定所述目标子图以及所述剩余目标算子的输入张量的切分数量,以使当前硬件资源能够满足相应的计算需求。
在一些实施例中,步骤S300包括子步骤S310、子步骤S320、子步骤S330和子步骤S340(均未示出)。其中,在子步骤S310中,张量处理设备切分所述目标子图的各个输入张量(分别对应各个分支),获得多个第一切分块;在子步骤S320中,张量处理设备确定待分别输入所述目标子图中各算子的第一切分块;随后在子步骤S330中,张量处理设备切分所述剩余目标算子的输入张量,获得多个第二切分块;最后在子步骤S340中,张量处理设备将所述第一切分块分别输入所述目标子图中的相应算子(例如原分支中的算子),并将所述第二切分块分别输入相应的剩余目标算子,从而基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子。其中在目标子图中切分的时候,多分支中不同分支的卷积核大小不同,或者操作层数不同,会使输出高度相同时不同分支的输入块的顶端和底端坐标也不同。在目标子图起始于分支点之前的一个算子,并结束于一个汇合点的情况下,要求目标子图的输入N、C、H、W参数能够满足各个分支对于各自分支输出N、C、H、W参数的要求。为了在最终于汇合点进行计算处理时获得正确的处理结果,对于各分支,其输入目标子图的张量被切分为若干块,则对于每个分支,其对应待处理张量的切分块,起始坐标应定为各分支中最小的,而终点坐标应定为各分支中最大的,随后对处理结果进行相应的裁剪即可,从而使得各个分支所对应张量切分块的处理结果相匹配,不至出错。其他情况下,各分支的输入的NCHW可以不同。
现在来讨论同一分支中未紧邻汇合点的目标算子。如上所述,对于同一分支中的单一目标算子,其个别处理即可,即,根据计算需要将该目标算子的输入张量进行切分,各切分块分别经目标算子处理后,拼合为正确的处理结果。但是,在某些情形下,可能存在连续的目标算子。为进一步提升处理效率,参考图5,将连续的目标算子组合为目标子图再进行处理,或者说,将相邻的至少两个目标算子组合为目标子图。从而无需在经过前一目标算子处理后,拼合结果、再将结果切分为若干块才由后续目标算子处理,以减少不必要的反复切分、拼合操作。
以上详述了本申请的一些具体实施方式。须知,这些实施方式仅为举例,而非对本申请具体实施方式的限定。
根据本申请的另一方面,本申请还提供一种基于并行分支和张量切分的张量处理系统,其特征在于,所述系统至少包括:
目标子图获取装置,用于获取包括目标算子的目标子图,其中所述目标子图获取装置被配置为:
确定用于对原始张量进行处理的多个操作算子中的目标算子;
组合至少一个目标算子以及至少一个其他算子以生成目标子图,其中所述目标算子与所述其他算子具有相同的直接后继算子,所有目标算子与已组合的目标算子之差集为剩余目标算子;
以及,
张量处理装置,用于基于所述目标子图处理所述原始张量,其中所述张量处理装置被配置为:
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (12)

1.一种基于并行分支和张量切分的张量处理方法,其特征在于,包括:
确定用于对原始张量进行处理的多个操作算子中的目标算子;
组合至少一个目标算子以及至少一个其他算子以生成目标子图,其中所述目标算子与所述其他算子具有相同的直接后继算子,所有目标算子与已组合的目标算子之差集为剩余目标算子;
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。
2.根据权利要求1所述的方法,其特征在于,所述操作算子用于执行卷积计算或者池化计算。
3.根据权利要求1所述的方法,其特征在于,所述直接后继算子的直接前驱算子均组合于所述目标子图。
4.根据权利要求1所述的方法,其特征在于,所述相同的直接后继算子为加算子、乘算子和拼接算子中任一。
5.根据权利要求1所述的方法,其特征在于,所述目标算子满足筛选条件,所述筛选条件包括:
基于相应操作算子的预期输入张量的高度超出硬件允许值;或者,
基于相应操作算子处理其预期输入所需的内存需求超出可用片上内存。
6.根据权利要求5所述的方法,其特征在于,所述基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理的步骤,包括:
若基于所述目标子图处理其预期输入所需的内存需求在可用片上内存的范围之内,则基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理。
7.根据权利要求6所述的方法,其特征在于,还包括:
若基于所述目标子图处理其预期输入所需的内存需求超出可用片上内存,增加对所述预期输入的切分数量,并基于更新后的切分数量切分所述预期输入。
8.根据权利要求1所述的方法,其特征在于,所述基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理的步骤,包括:
确定所述目标子图以及所述剩余目标算子的输入张量的切分数量,并基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。
9.根据权利要求1所述的方法,其特征在于,所述基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理的步骤,包括:
切分所述目标子图的输入张量,获得多个第一切分块;
确定待分别输入所述目标子图中各算子的第一切分块;
切分所述剩余目标算子的输入张量,获得多个第二切分块;
将所述第一切分块分别输入所述目标子图中的相应算子,并将所述第二切分块分别输入相应的剩余目标算子,从而基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子。
10.一种基于并行分支和张量切分的张量处理系统,其特征在于,所述系统至少包括:
目标子图获取装置,用于获取包括目标算子的目标子图,其中所述目标子图获取装置被配置为:
确定用于对原始张量进行处理的多个操作算子中的目标算子;
组合至少一个目标算子以及至少一个其他算子以生成目标子图,其中所述目标算子与所述其他算子具有相同的直接后继算子,所有目标算子与已组合的目标算子之差集为剩余目标算子;
以及,
张量处理装置,用于基于所述目标子图处理所述原始张量,其中所述张量处理装置被配置为:
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。
11.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时能够实现权利要求1至9中任一项所述的张量处理方法。
12.一种电子设备,其特征在于,所述电子设备至少包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现权利要求1至9中任一项所述的方法。
CN202110823049.7A 2021-07-21 2021-07-21 一种基于并行分支和张量切分的张量处理方法和处理系统 Active CN113485837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110823049.7A CN113485837B (zh) 2021-07-21 2021-07-21 一种基于并行分支和张量切分的张量处理方法和处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110823049.7A CN113485837B (zh) 2021-07-21 2021-07-21 一种基于并行分支和张量切分的张量处理方法和处理系统

Publications (2)

Publication Number Publication Date
CN113485837A true CN113485837A (zh) 2021-10-08
CN113485837B CN113485837B (zh) 2024-05-07

Family

ID=77941619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110823049.7A Active CN113485837B (zh) 2021-07-21 2021-07-21 一种基于并行分支和张量切分的张量处理方法和处理系统

Country Status (1)

Country Link
CN (1) CN113485837B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091685A (zh) * 2021-11-08 2022-02-25 北京百度网讯科技有限公司 深度学习框架的张量切分方法、装置、设备和存储介质
CN114996008A (zh) * 2022-05-30 2022-09-02 上海壁仞智能科技有限公司 Ai计算图多后端协同计算方法及装置
CN116341642A (zh) * 2023-03-01 2023-06-27 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
WO2023141939A1 (zh) * 2022-01-28 2023-08-03 华为技术有限公司 处理计算任务方法及装置
CN117172289A (zh) * 2023-09-01 2023-12-05 苏州亿铸智能科技有限公司 张量切分方法、装置以及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180204117A1 (en) * 2017-01-19 2018-07-19 Google Inc. Dynamic-length stateful tensor array
US20190340214A1 (en) * 2017-04-20 2019-11-07 Panasonic Intellectual Property Corporation Of America Information processing method, information processing apparatus, and computer-readable recording medium
CN111078395A (zh) * 2019-11-12 2020-04-28 华中科技大学 一种基于张量的深度学习gpu内存管理优化方法及系统
KR20200068106A (ko) * 2018-11-28 2020-06-15 서울대학교산학협력단 딥러닝 신경망의 압축 방법 및 이를 수행하기 위한 장치
CN112965710A (zh) * 2019-12-13 2021-06-15 阿里巴巴集团控股有限公司 计算图的处理方法、装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180204117A1 (en) * 2017-01-19 2018-07-19 Google Inc. Dynamic-length stateful tensor array
US20190340214A1 (en) * 2017-04-20 2019-11-07 Panasonic Intellectual Property Corporation Of America Information processing method, information processing apparatus, and computer-readable recording medium
KR20200068106A (ko) * 2018-11-28 2020-06-15 서울대학교산학협력단 딥러닝 신경망의 압축 방법 및 이를 수행하기 위한 장치
CN111078395A (zh) * 2019-11-12 2020-04-28 华中科技大学 一种基于张量的深度学习gpu内存管理优化方法及系统
CN112965710A (zh) * 2019-12-13 2021-06-15 阿里巴巴集团控股有限公司 计算图的处理方法、装置和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHIEN-CHIN HUANG,ET AL: "SwapAdvisor:Pushing Deep Learning Beyond the GPU Memory Limit via Smart Swapping", ASPLOS\'20, pages 1341 - 1355 *
张定: "基于神经网络的中文文本分类技术研究", 信息科技, no. 5 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091685A (zh) * 2021-11-08 2022-02-25 北京百度网讯科技有限公司 深度学习框架的张量切分方法、装置、设备和存储介质
CN114091685B (zh) * 2021-11-08 2022-08-23 北京百度网讯科技有限公司 深度学习框架的张量切分方法、装置、设备和存储介质
WO2023141939A1 (zh) * 2022-01-28 2023-08-03 华为技术有限公司 处理计算任务方法及装置
CN114996008A (zh) * 2022-05-30 2022-09-02 上海壁仞智能科技有限公司 Ai计算图多后端协同计算方法及装置
CN114996008B (zh) * 2022-05-30 2024-05-03 上海壁仞科技股份有限公司 Ai计算图多后端协同计算方法及装置
CN116341642A (zh) * 2023-03-01 2023-06-27 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
CN116341642B (zh) * 2023-03-01 2023-11-10 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
CN117172289A (zh) * 2023-09-01 2023-12-05 苏州亿铸智能科技有限公司 张量切分方法、装置以及电子设备

Also Published As

Publication number Publication date
CN113485837B (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
CN113485837B (zh) 一种基于并行分支和张量切分的张量处理方法和处理系统
CN108154198B (zh) 知识库实体归一方法、系统、终端和计算机可读存储介质
CN113703775B (zh) 一种编译方法、装置、设备及存储介质
KR102207408B1 (ko) 이미지 처리를 위한 방법, 장치 및 컴퓨터 판독 가능한 매체
CN114841327A (zh) 计算图的处理方法、装置、可读介质及电子设备
CN113485836A (zh) 一种基于张量切分的张量处理方法和张量处理系统
CN114124567A (zh) 基于大数据漏洞挖掘的云服务处理方法及人工智能系统
CN108875914B (zh) 对神经网络数据进行预处理和后处理的方法和装置
CN111967271A (zh) 分析结果的生成方法、装置、设备及可读存储介质
Ali Next-generation ETL Framework to Address the Challenges Posed by Big Data.
CN113449842A (zh) 一种分布式自动微分方法及相关装置
CN114841309A (zh) 数据处理方法、装置以及电子设备
CN110375735B (zh) 路径规划方法和装置
CN112070227A (zh) 一种神经网络训练方法和装置以及设备
KR20220039313A (ko) 뉴럴 네트워크 연산 처리 방법 및 장치
CN111027688A (zh) 一种基于fpga的神经网络计算器生成方法及装置
CN116933841A (zh) 算子融合方法及装置、电子设备、计算机可读介质
CN113139617B (zh) 一种输电线路自主定位方法、装置及终端设备
CN115480919A (zh) 卷积优化运算方法、装置、计算机设备及存储介质
CN114462582A (zh) 基于卷积神经网络模型的数据处理方法及装置、设备
US9152611B2 (en) Trust-tech enhanced methods for solving mixed-integer optimization problems
CN110955380B (zh) 访存数据生成方法、存储介质、计算机设备和装置
CN116755714B (zh) 深度神经网络模型的运行方法、装置、设备和存储介质
CN111260038B (zh) 卷积神经网络的实现方法、装置、电子设备及存储介质
CN113240077B (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